シーゴの Excel 研究室

タイトル変更しました (旧称:今日を乗り切るExcel研究所)

Excel のセルを分割したい【フラッシュフィル編】

今回は、フラッシュフィルを使ってセルの内容を分割したり結合する方法を紹介します。

f:id:shego:20191015002727p:plain

残念ながら

残念ながら Excel で本当にセルを分割することはできません(WordやPowerPointの表ならできるのですが・・・)。

やりたいのは、セルに入力されているテキストを切り分けて、別々のセルに入れたいということです。 具体的には、名簿の表の「氏名」が入力されている列を、「姓」と「名前」の列に分けたいときなどです。

もちろん手作業で1個ずつカット&ペーストでやれなこともないですが、件数が多いと大変です。Excel なら何かいいやり方があるはずです。

セルの内容がカンマやスペースのような区切り文字のあるテキストである場合、一括で分割する方法がいくつか知られています。

それらのうち今回は特に「フラッシュフィル」を使うやり方を紹介します。 フラッシュフィルは、分割だけでなく、いろいろな入力の効率化ができる高度な機能なのですが、あまり詳しい情報がネットに見当たらないからです。

本記事では、「フラッシュフィル」がどういう機能で、何ができるのか基本の紹介も含めて、深堀していきたいと思います。

フラッシュフィルってなに?

「フラッシュフィル」は、「お手本」をもとに、セルの内容の分割や結合、抽出、挿入、削除、変換といった操作を一括で行う機能です。Excel 2013 以上で利用できます。

お手本をひとつ示すことで、Excelは元のデータのどこから取り出し、どう加工したらいいのか、そのルールを推測し、残りのデータを自動で作成してくれます。

言葉の説明より実際の操作を見たほうが早いでしょう。 具体的に何ができるのか、以下の各操作について実演GIFアニメを用意しました。

  1. 区切り文字で分割と結合
  2. 文字数による分割と結合
  3. 文字の挿入と削除
  4. 文字種の変換

フラッシュフィルのショートカットは Ctrl+E です。

1. 区切り文字で分割と結合

f:id:shego:20191006121211g:plain

フラッシュフィルで、空白やカンマのような記号文字で区切られたデータ項目を切り出す(抽出する)ことができます。

切り出したい項目のお手本を入力し、フラッシュフィルを実行すると、残りの行の項目もお手本があった場所と同じ部分から切り出してくれます。

さらに複数の列からのデータを結合したお手本を示すと、どのセルから値を持ってくればいいのかも自動で判断してくれます。

2. 文字数による分割と結合

f:id:shego:20191006120957g:plain

区切り文字がなくても、元データの文字数が固定で桁がそろっているなら、文字区切りの位置や文字数をお手本から判断して抽出が可能です。

たとえば電話番号を桁数によって、局番で分割したり、区切り文字を挿入することができます。

3. 文字の挿入と削除

f:id:shego:20191006121147g:plain

元のテキストに固定の文字を一括で追加・削除したテキストを作成することができます。

テキストの先頭や末尾に一括で文字を追加したり削除することは、これまでの「検索と置換」などでは難しかったところです。

4. 文字種の変換

f:id:shego:20191006120812g:plain

英字の大文字と小文字を変換したテキストを作成することができます。たとえば、ローマ字氏名の頭文字だけを大文字にそろえたりすることが可能です。

残念ながら、日本語の「ひらがな⇔カタカナ」変換や英数字の「全角⇔半角」変換はできません。

 



 

フラッシュフィルの使い方

【基本操作】

  1. 元データの隣にお手本を入力します
  2. そのままフラッシュフィルを実行します
    • ショートカット:Ctrl+E
  3. 残りの列に変換候補が自動入力(フィル)されます
  4. フラッシュフィルモードを解除します
    • ESCキーを押すか、別のセルで何か操作をすると解除します。

■フラッシュフィルコマンド

フラッシュフィルを実行する方法は、以下のようにいくつもあって混乱する原因となっています。 慣れれば、ショートカット以外で実行する機会はほとんどないと思います。

  • 「自動実行」する
  • 「データ」タブ⇒「フラッシュフィル」コマンド
  • 「ホーム」タブ⇒「フィル」メニュー⇒「フラッシュフィル」コマンド
  • 「オートフィル オプション」⇒「フラッシュフィル」選択
  • ショートカットのCtrl+E

f:id:shego:20191014105434p:plain

フラッシュフィルの自動実行は、デフォルトで有効になっいて、データの入力中にフラッシュフィルの判断で、自動的にお手本編集モードになることがあります。 これが大きなお世話で煩わしければ、Excelの詳細設定で無効にすることができます。

f:id:shego:20191014105943p:plain

■お手本入力

フラッシュフィルを実行できるのは表の中の列か両隣りの列です。 フラッシュフィルの対象となるセル範囲も自動で判別され、見出し行も除外されます。

お手本は、表の同じ行にあるのセルデータをもとに作成してください。 テキストデータの一部分だけや、複数のセルの値でもお手本に含めることができます。

セルにお手本を入力し、フラッシュフィルを実行すると、残りの行でもお手本通りの加工データが入力されます。 お手本を入力するセルは列内ならどこでもよく、また複数のセルに入力しても構いません。 先頭セルでうまく変換できない場合は、別の行のセルで試すか、複数個所で入力してみてください。

■フラッシュフィルモード

フラッシュフィルは、実行して終わりではなく、その後もお手本入力をやり直せる状態が続いています。 このとき再度お手本を編集すると、編集列が浮き出し表示になり、右側には「フラッシュフィル オプション」が表示されます。 名前が見つからないので、本記事ではこの状態を「フラッシュフィルモード」と呼ぶことにします。

フラッシュフィルモードは、別のセルの操作を行うまで継続されます。 明示的に解除したい場合にはEscキーを押します。

f:id:shego:20191013195114p:plain

■うまくいかないとき

・お手本が矛盾している

複数のお手本を入力したとき、共通するルールが全くないと、フラッシュフィルはご機嫌を損ねて何もしてくれなくなるか、ダイアログで文句を言ってきます。

f:id:shego:20191014094927p:plain

一つの列で異なるルールのお手本を使いたい場合には、範囲選択で部分分けしてから実行します。

・お手本があいまい

数字など同じ値が複数の列のセルにあるとき、複数の解釈ができるお手本だと意図通りの結果にならないことがあります。

あいまいさの少ないデータ行を使うか、あいまいさのない仮のデータ行を一時的に追加してお手本を示すと正確に解釈されます。

・見出しがお手本に含まれてしまっている

見出しの文字を区別できずに、お手本と勘違いすることがあります。 見出し行で色を付けたりや太字にするなどスタイルを変えれば大抵は区別されますが、 それでもだめなら、表を「テーブル」(青いシマシマの)にするか、見出しの直下に空行を挿入するなどして切り離します。

f:id:shego:20191013203119p:plain

・お手本編集で削除を繰り返している

フラッシュフィルは、同じ行内でお手本と一致する文字列を見比べるので、お手本の編集で一部を削除したり文字を置き換えたりすると、元データを見失って、推測の失敗がおこりやすくなります。

文字を削るのは、お手本編集のなるべく最後に行うようにすると失敗が減ります。

・日本語で区切り文字がない

日本語には区切り文字がないので、フラッシュフィルで単語を抽出するのが難しいです。 たとえばベタな住所録から都道府県や市区町村を一括で切り分けることなどができません。 せめて仮名と漢字の区切りぐらいは判別できると使いようがあるのですが対応されていません

また、また文字種の変換も日本語には対応していません。 「ひらがな⇔カタカナ」や英数字の「全角⇔半角」の変換など簡単にサポートできそうなのですが、これも未対応です。 ただし全角英字でも「大文字⇔小文字」の変換ならできるようです。

 



 

■応用

  • ダミーデータを生成します f:id:shego:20191014215117g:plain

  • 単語を組み合わせたリストを作成します f:id:shego:20191014214816g:plain

  • 市区町村名から末尾の文字だけ抽出します f:id:shego:20191014214116g:plain

  • 文章データの句点で改行を入れます f:id:shego:20191014214042g:plain

まとめ

フラッシュフィルは決して上級者向けのツールではありません。 むしろ初心者のほうが、データの整理や前処理など下準備的な業務を任せられているうちに、積極的に活用すべきです。

フラッシュフィルは、エクセルさんにしては珍しく「空気を読む」機能です。 使い勝手もそれまでのコマンドとは少し毛色が違います。 「データを作る」機能という意味でも新しいです。

これまでのお仕着せのお便利機能とは違い、データの新時代をにらみ、ユーザの視点に立って、高度な技術で作業の効率化をサポートするという、Excelとしては新機軸の機能です。

新参の機能に貴重なショートカット(Ctrl+E)が割り当てられていることからも、Excelの中の人の力の入れようが分かるというものです。

それなのに、少なくとも日本では、知る人ぞ知る時短テクニックのマイナー機能とみなされているのは、本当に残念なことです。

もちろんフラッシュフィルの推測は完璧ではありません。 必ずしも期待通りに働いてくれなくてイライラすることもあるでしょう。 それでも使い慣れてくるとクセが分かってきます。 そうすると、Excelがお手本からどのように推測するのかを、さらに推測してお手本を作れるようになります。

これはある意味、Excelと人間のコミュニケーションの始まりです。

実はフラッシュフィルは「お手本を介したコミュニケーション」1という新しいExcel操作のあり方を提案しているのです。

これは大げさな話ではありません。

今後、Excelにも人口知能(AI)が搭載されるかもしれません。 いつExcelがしゃべりだすのかは分かりませんが、 その前に最初にAIが適用される機能の一つはフラッシュフィルでしょう。

すでに、フラッシュフィルの精度を上げるために機械学習を応用する研究開発は進められていて、いつ公開されてもおかしくありません。

フラッシュフィルがどんどん賢くなり、複雑なルールの予測と操作が可能になるにつれ、人間のほうはExcelに誤解されにくい的確なお手本(意図)が示せること――つまりExcelとのコミュニケーション能力――が今後期待されるスキルになってきます。 そしてそれはExcelだけの話ではないかもしれません。

今のうちにフラッシュフィルでの操作感に慣れておき、今はどういうことがうまくできないのか、その歯がゆさを経験的に知っておくと、次代のエクセルさんとも早く分かりあえるでしょう。

ショートカットは Ctrl+E です。(しつこい)

参考

関連記事

www.shegolab.jp


  1. これも筆者が勝手に今作った言葉です。本来の技術用語では「例示によるプログラム合成」が相当しますが、これをユーザー視点で言い換えました。