Excelで住所などの処理を行う際、複数のセルに分かれた住所を1つのセルにまとめたりすることなどがあるだろう。大きな表では意外と面倒な作業だが、Excelのフラッシュフィル機能を使うと簡単に自動的に結合が行える。その方法を紹介しよう。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
対象:Excel 2013/2016
他人の作成したデータをCSVファイルなどで受け取って、「Microsoft Excel」で処理する場合、必要な情報が複数のセルにまたがっていたり、複数の情報が1つのセルに入っていたりすることはないだろうか。そのような場合、セル内容を複数のセルに分割したり、複数セルの内容を1つのセルに統合したり、しなければならないことがある。
手作業では、間違いが入る可能性があるため、式を使って処理している人も多いかもしれない。しかし、式の作成は、少々面倒で難しい場合も多い。場合によっては、式で処理できず、やっぱり最後は手作業で処理するということもあるだろう。
こうしたとき、Excelの「フラッシュフィル(Flash Fill)」機能を使うと、ユーザーが例示したセルの分割や統合から、Excelが残りの部分を推測してセルを埋めてくれる。フラッシュフィルは、結果を式ではなく、値としてセルに書き込むため、そのままCSVとして保存することも可能だ。このフラッシュフィルの使い方を紹介しよう。
フラッシュフィルとは、「例示」からルールを推測して、同じルールを残りの空白セルに適用するExcelの機能だ。Excel 2013から搭載されているが、知名度としてはイマイチな機能だ。しかし、その背後では、かなり高度な処理が行われている。開発はマイクロソフトの研究所であるMicrosoft Researchで行われ、以下のように論文やBlogでも取り上げられている。
フラッシュフィルは、[ホーム]タブの[編集]−[フィル]のドロップダウンリストで[フラッシュフィル]を選択するか、[データタブ]−[データツール]の[フラッシュフィル]を選択することで呼び出せる。また、キーボードショートカットを使って、[Ctrl]+[E]キーで起動することも可能だ。
フラッシュフィルでは、アクティブセルの左右に隣接するセルの値と、上にある「例示セル」を比較して、選択範囲に入るべき内容を作る。
例えば、下画面のような表の場合、フラッシュフィルはアクティブセルの上にある「例示セル」の内容から、「左側2つのセルの内容を合成する」ものだと推測して選択範囲に値を入れる。幾つかの制約条件はあるが、普通のExcelの表であれば、問題がない範囲のものだ。
Excelは、フラッシュフィルが利用可能な場合に、ポップアップでフラッシュフィルが利用可能であることを示す。しかし、ポップアップの出現条件は少々複雑で、ユーザーが直接セル内容を入力した後、フラッシュフィルが利用できそうならポップアップが出現するが、クリップボードから貼り付けたような場合には出現しない。このため、利用中にいつでも表示されるとは限らない。
また、このポップアップは、入力の推測と同じく、セル入力の途中で行われるため、ユーザーが入力を始めてしまうとポップアップは消えてしまう。入力を急いでいるようなときに「一瞬だけ何かが表示されたけどすぐに消えた」となったしまうことが結構ある。
そのため、この機能は「意図的」に使うのが便利だ。[Ctrl]+[E]キーを押せば、その時点でフラッシュフィルが「発動」される。
フラッシュフィルを起動したあと、アクティブセルの右側にメニューアイコンが表示され、クリックするとフラッシュフィルの取り消しやフラッシュフィルが追記したセルの選択などの作業が行える。期待通りの結果にならなくても、慌てずにこのメニューから「フラッシュフィルを元に戻す」を選べばよい。
具体例で試してみよう。例えば、CSVでもらった住所データが、郵便番号、都道府県、市町村と別々のセルになっていたとしよう。具体的には、郵便番号リストとして日本郵便が配布しているCSVファイルなどがこの形式になっている。
1つのセルに郵便番号や住所をまとめて入れたいという場合、空の列を挿入した後、最初の1行だけコピー&ペーストを使って例示セルを作る。
今回は、郵便番号の頭に「〒」(郵便)マークを入れ、郵便番号と市区町村の後ろに半角スペースを入れた。これで2行目にアクティブセルを置き、[Ctrl]+[E]キーを押せば、例示通り、「〒+郵便番号+" "+都道府県+市区町村+" "+町名」を統合したセルが値(文字列)として最後まで入力される。
同等の作業は、1行目に式「="〒"&C1&" "&G1&H1&" "&I1」を入れ、フィルハンドルで表の最後までドラッグすれば可能だが、フラッシュフィルに比べるとかなり面倒だ。表が非常に大きい場合には、計算式が多数になるため、ハードウェアによっては再計算の時間を取られることがある。
逆にセル内容を分割してみよう。セルにハイフンなどで区切って数値の範囲が指定されているとしよう。ここでは、開始周波数範囲と終了周波数(単位はMHz)が記述されている場合を例に使い方を解説する。このとき、開始周波数と終了周波数を別々のセルに入れたい場合には、それぞれ例示セルを作り、2行目にアクティブセルを置き、[Ctrl]+[E]キーを押せば、フラッシュフィルがセル内容を分割してセルに入れてくれる。
Copyright© Digital Advantage Corp. All Rights Reserved.