今回は「フラッシュフィル」という機能の使い方を紹介する。フラッシュフィルは文字の抽出や結合などを自動的に行ってくれる機能であるが、そのアルゴリズムが明確になっていないことから、「少し使いづらい……」という印象を持っている人も多いようだ。そこで、フラッシュフィルを賢く利用する方法を検討してみよう。

フラッシュフィルを使ったデータの抽出

まずは、フラッシュフィルの基本的な使い方から紹介していこう。以下の図は、ある施設の会員情報をまとめた表である。

  • 会員情報をまとめた表

    会員情報をまとめた表

フラッシュフィルは、この表にある「氏名」の列を「姓」と「名」に分割する場合などに活用できる。たとえば「姓」のデータを抜き出すときは、新たに「姓」の列を用意し、最初のデータ「長谷川」を自分の手で入力する。

  • 「姓」のデータの抽出準備

    「姓」のデータの抽出準備

続いて、「ホーム」タブにある「フィル」→「フラッシュフィル」を選択すると、2番目以降のセルにも「姓」のデータを自動抽出することができる。

  • フラッシュフィルの実行

    フラッシュフィルの実行

  • 自動抽出された「姓」のデータ

    自動抽出された「姓」のデータ

同様の手順で「名」のデータを抽出することも可能だ。この場合は、最初のデータとして「雄大」を自分の手で入力し、2番目以降のセルをフラッシュフィルで自動入力すればよい。

  • 「名」のデータをフラッシュで自動抽出した結果

    「名」のデータをフラッシュで自動抽出した結果

このように、状況にに応じで適切なデータを自動抽出してくれるのがフラッシュフィルの特長だ。ただし、フラッシュフィルが思い通りに機能してくれないケースも少なくない。

たとえば、データの「姓」と「名」の間にスペースが入力されていなかった場合は、以下の図のような結果になってしまう。

  • 「姓」のデータをフラッシュフィルで抽出しようとすると、

    「姓」のデータをフラッシュフィルで抽出しようとすると、

  • 先頭から3文字が抜き出される

    先頭から3文字が抜き出される

この結果からも分かるように、フラッシュフィルは「特定のルール」に従ってデータを抽出する機能である。AI(人工知能)によりデータの内容を見極めている訳ではないので、使える場面は少し限定的にならざるを得ない。

最初に紹介した例の場合、データの「先頭からスペースまで」が抽出条件と判断されたため、正しい結果を得ることができた。一方、次の例ではデータにスペースがなかったため、「先頭から3文字を抜き出せばよい」と判断されたというわけだ。

このように、フラッシュフィルを使ったデータの抽出は、実際に試してみないと結果を予測できない部分が多く、少し確実性に欠ける機能といえる。たいていの場合、

  • スペースやカンマなどの特殊文字を区切りとしてデータを抽出する
  • N文字目からM文字目を抽出する

といったケースが多いが、そのアルゴリズムは公開されていないので「絶対に」とは言い切れない。それが「使いづらい……」と感じる理由なのかもしれない。

フラッシュフィルを使ったデータの結合

フラッシュフィルは、複数のデータを結合する場合にも活用できる。こちらは比較的安定した挙動を示してくれるので、より実用的だといえるだろう。ここでは、「都道府県」と「住所1」のデータを1つのセルにまとめる場合の例を示しておこう。

基本的な操作手順は、これまでに解説した手順と同じである。新しい列を用意し、1番目のデータを自分の手で入力。続いて、フラッシュフィルを実行すると、2番目以降のデータを自動入力することができる。

  • 「住所」のデータの結合準備

    「住所」のデータの結合準備

  • フラッシュフィルを実行した結果

    フラッシュフィルを実行した結果

このとき、好きな文字を追加してデータを結合することも可能だ。以下の例では、先頭に「〒」の記号を追加して、「郵便番号」「都道府県」「住所1」「住所2」のデータを1つの列に結合した。また、適所に全角スペースも挿入されている。

  • 「住所」のデータの結合準備

    「住所」のデータの結合準備

  • フラッシュフィルを実行した結果

    フラッシュフィルを実行した結果

このように、特定の文字を追加してデータを結合する場合にもフラッシュフィルが活用できる。「&」の記号を使った数式でも同様の処理を行えるが、フラッシュフィルは直感的に操作できる点が便利だ。また、結合後のデータが「数式」ではなく「文字列」として記録されるため、後の作業を進めやすいのも利点の1つといえる。

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

これまでに解説してきたように、フラッシュフィルは「データの分割」または「データの結合」を自動処理してくれる機能だ。ただし、実際にExcelの中だけで活用する場面はあまり多くない。

フラッシュフィルを便利に活用できる場面は、Excelに保存されているデータを加工して、他のアプリで利用する場合だ。記録されているデータに文字を追加し、好きな順番に並べ替えて出力する、といった用途に利用するのが賢い使い方かもしれない。

たとえば、以下に示した表から「説明会の日時」が確定しているものだけを抜き出して書類を作成する場合を考えてみよう。

  • 説明会会場の候補一覧

    説明会会場の候補一覧

まずは、「状況」が「確定」のデータだけをフィルターで抽出し、「候補日」の順番に並べ替える。

  • データの抽出と並べ替え

    データの抽出と並べ替え

続いて、最初のデータを「出力したい形」に整形して入力する。この際に注意すべきポイントは以下の3点だ。

  • 同じ行にあるデータはそのまま入力する
  • データを入力する順番は入れ替えても構わない
  • 途中にスペースやカッコなどの文字を追加してもよい

これらの点に注意しながら「出力したい形」に整えてデータを入力する。

  • データ整形の準備

    データ整形の準備

あとはフラッシュフィルを使って2番目以降のデータを自動入力するだけ。すると、同じ形式に整えられた文字列データを作成することができる。

  • フラッシュフィルを実行した結果

    フラッシュフィルを実行した結果

今回の例の場合、「F列のデータ C列のデータ(B列のデータ)」という形で文字列データが作成される。このセル範囲を「Ctrl」+「C」キーでコピーし、「Ctrl」+「V」キーでWordなどのアプリに貼り付けると、以下のような結果が得られる。

  • 貼り付けられたデータ

    貼り付けられたデータ

通常の文字として貼り付けたい場合は、「貼り付けのオプション」をクリックし、「テキストのみ保持」を選択すればよい。

  • 「テキストのみ保持」に変更した場合

    「テキストのみ保持」に変更した場合

このように、Excelのデータを好きな形に加工して再利用する際にもフラッシュフィルが活用できる。各データを1つずつ手入力したり、コピー&ペーストしたりする場合と比べれば、格段に早く作業を終えられるはずだ。データの前後にタグを追加して、HTMLの作成に応用することも可能である。色々な場面に応用できるので、作業を効率化する手法の1つとして覚えておくとよいだろう。