【Excel機能】サンプルデータを基準にデータ抽出/分割/連結を自動化できる「フラッシュフィル」の使い方
AさんAさん

表データの特定の列を対象に分割や連結する作業は面倒ですね・・・。
こうした作業をもっと楽にできる方法はないですかね?

森田森田

そんな場合、「フラッシュフィル」という機能も便利ですよ!
では、詳細を解説していきますね。

気軽にデータ抽出/分割/連結したい場合は「フラッシュフィル」が有効

実務では、表の特定の列データを抽出/分割/連結したい場合があります。

たとえば、以下のようなイメージです。

  • 「氏名」の列から「氏」だけを抽出したい
  • 「氏名」の列を「氏」と「名」に分割したい
  • 「氏」と「名」の列から「氏名」へ連結したい

抽出/分割は置換+ワイルドカードや区切り文字、連結は数式で文字列演算子のアンパサンド(&)を使うことがオーソドックスですが、ある程度の手順を踏む必要があります。

もっと手軽に抽出/分割/連結を行いたい場合、Excel2013から実装された「フラッシュフィル」という機能を使うことも一手です。

フラッシュフィルは、予め設定したサンプルデータ(抽出/分割/連結の例となる値)をExcel側で読み取り、以降のセルへ抽出/分割/連結の結果となるデータを自動入力してくれる機能です。

フラッシュフィルを使うことで、データ抽出/分割/連結を気軽に実行できます。

参考記事

置換+ワイルドカードや区切り文字、数式の詳細は、以下の記事をご参照ください。



フラッシュフィルの使用イメージ

フラッシュフィルは、データ抽出/分割/連結のすべてに対応できます。

【使用イメージ①】データ抽出/分割

データ抽出/分割の例として、「氏名」の列を対象とし、「氏」と「名」に分割したイメージが以下です。

1レコード目のみ予め手入力しておき、その値をサンプルデータ(抽出/分割の例)にしています。

【使用イメージ②】データ連結

データ連結の例として、「氏」・「名」の列を対象とし、「氏名」に連結したイメージが以下です。

こちらも1レコード目のみ予め手入力しておき、その値をサンプルデータ(連結の例)にしています。

フラッシュフィルの操作手順

フラッシュフィルを実行したい場合は、以下の手順となります。

  1. 同列に抽出/分割/連結の例となる値を予め入力
    ※今回は「高橋」
  2. 抽出/分割/連結したい列のいずれかのセルを選択
  3. リボン「データ」タブをクリック
  4. 「フラッシュフィル」をクリック

手順①が漏れた場合、エラーメッセージが表示(詳細は後述)。
フラッシュフィルは1列ごとの操作のため、手順②で複数列を選択した場合、「フラッシュフィル」コマンドは非活性となる。
手順③④はショートカットキー(「Ctrl+E」)で行うことも可能。

【参考】「フラッシュフィル」のエラーメッセージ

手順①でフラッシュフィルの例となる値を設定していなかった場合は、次のエラーメッセージが表示されます。

選択範囲の周囲にあるすべてのデータを確認しましたが、値を埋め込むためのパターンが見つかりませんでした。

フラッシュフィルを使うには、結果として表示したいデータをサンプルとしていくつか入力し、フラッシュフィルを実行する列のセルをアクティブにした状態で、[フラッシュフィル]ボタンをもう一度クリックします。

このメッセージが出た際は、再度前述の操作手順をやり直しましょう。

【注意】フラッシュフィルの弱点2

フラッシュフィルはお手軽ですが、次の2点の弱点があることを念頭に置いた上で使用しましょう。

  1. 意図通りの結果が出ない場合ある
  2. 横方向のデータには対応していない

弱点①は、対象データとサンプルデータによって、うまく抽出/分割/連結できない場合があります。

その場合、うまく行かなったデータのみ手入力で修正する、あるいは一度元に戻し(「Ctrl+Z」)、サンプルデータを増やしてからフラッシュフィルを再実行する等で対応しましょう。

いずれにしても、やり直しの手間が発生するため、データ量が多い場合は確実に抽出/分割/連結できる他の機能を用いた方が無難です。

逆説的に言えば、フラッシュフィルは目検で確認できるくらいデータ量が少ない場合に使った方が良いでしょう。

弱点②は、横方向のデータに対してフラッシュフィルは使えないことです。

フラッシュフィルは、データベース形式の表を前提とした機能であり、縦方向のデータ限定で使用するものだと覚えておきましょう。

よって、横方向にデータを蓄積するタイプの表でデータ抽出/分割/連結したい場合は、置換+ワイルドカードや数式等を使うと良いですね。
横方向にデータを蓄積するタイプの表は、フラッシュフィルに限らずデータ整形しにくいため非推奨。

サンプルファイルで練習しよう!

可能であれば、以下のサンプルファイルをダウンロードして、実際に操作練習をしてみてください。

サンプルファイル_フラッシュフィル.xlsx

サンプルファイルのダウンロードには無料メルマガに登録いただく必要があります(上記リンクから登録フォームへ遷移します)。

ブックを開いたら、次の手順を実施してください(今までの解説のまとめです)。

  1. 同列に抽出/分割/連結の例となる値を予め入力
    ※今回は「高橋」
  2. 抽出/分割/連結したい列のいずれかのセルを選択
  3. リボン「データ」タブをクリック
  4. 「フラッシュフィル」をクリック

本記事の解説と同じ結果になればOKです!

さいごに

いかがでしたでしょうか?

フラッシュフィルは、サンプルデータを用意するのみで、気軽にデータ抽出/分割/連結できます。

少量のデータを手早く気軽に抽出/分割/連結したいといった場合に活用すると良いでしょう。

なお、フラッシュフィル以外にもExcelでのデータ整形の各種テクニックを拙著で解説していますので、こちらも参考にしてみてください。

ご参考になれば幸いですm(_ _)m

森田森田

フラッシュフィルとセットで覚えてほしいのは、正確に抽出/分割/連結する際に役立つ「置換」「区切り文字」「数式」です。
フラッシュフィルは一部誤った結果を返すことがあるため、多量なデータを正確に処理したい場合はこちらの機能を使いましょう。
なお、定期的にデータ分割を行う機会があるのであれば、LEFTRIGHTMIDFINDといった文字列操作関数を覚えることをおすすめします!