住所処理に便利、キー一発でExcelのセル内容を自動的に分割/結合Tech TIPS

Excelで住所などの処理を行う際、複数のセルに分かれた住所を1つのセルにまとめたりすることなどがあるだろう。大きな表では意外と面倒な作業だが、Excelのフラッシュフィル機能を使うと簡単に自動的に結合が行える。その方法を紹介しよう。

» 2019年09月30日 05時00分 公開
[塩田紳二]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Tech TIPS」のインデックス

連載目次

対象:Excel 2013/2016


フラッシュフィルの例 フラッシュフィルの例
どのような大きな表でも「例示」を作るだけで同様の作業を自動でやってくれる。複数のセルをまとめる、セルから一部を取り出すなど、ちょっとした編集作業なら、フラッシュフィルによって自動化できる。

 他人の作成したデータをCSVファイルなどで受け取って、「Microsoft Excel」で処理する場合、必要な情報が複数のセルにまたがっていたり、複数の情報が1つのセルに入っていたりすることはないだろうか。そのような場合、セル内容を複数のセルに分割したり、複数セルの内容を1つのセルに統合したり、しなければならないことがある。

 手作業では、間違いが入る可能性があるため、式を使って処理している人も多いかもしれない。しかし、式の作成は、少々面倒で難しい場合も多い。場合によっては、式で処理できず、やっぱり最後は手作業で処理するということもあるだろう。

 こうしたとき、Excelの「フラッシュフィル(Flash Fill)」機能を使うと、ユーザーが例示したセルの分割や統合から、Excelが残りの部分を推測してセルを埋めてくれる。フラッシュフィルは、結果を式ではなく、値としてセルに書き込むため、そのままCSVとして保存することも可能だ。このフラッシュフィルの使い方を紹介しよう。

フラッシュフィルとは?

 フラッシュフィルとは、「例示」からルールを推測して、同じルールを残りの空白セルに適用するExcelの機能だ。Excel 2013から搭載されているが、知名度としてはイマイチな機能だ。しかし、その背後では、かなり高度な処理が行われている。開発はマイクロソフトの研究所であるMicrosoft Researchで行われ、以下のように論文やBlogでも取り上げられている。

 フラッシュフィルは、[ホーム]タブの[編集]−[フィル]のドロップダウンリストで[フラッシュフィル]を選択するか、[データタブ]−[データツール]の[フラッシュフィル]を選択することで呼び出せる。また、キーボードショートカットを使って、[Ctrl]+[E]キーで起動することも可能だ。

 フラッシュフィルでは、アクティブセルの左右に隣接するセルの値と、上にある「例示セル」を比較して、選択範囲に入るべき内容を作る。

 例えば、下画面のような表の場合、フラッシュフィルはアクティブセルの上にある「例示セル」の内容から、「左側2つのセルの内容を合成する」ものだと推測して選択範囲に値を入れる。幾つかの制約条件はあるが、普通のExcelの表であれば、問題がない範囲のものだ。

フラッシュフィルで2つのセルの内容をまとめる フラッシュフィルで2つのセルの内容をまとめる
2つのセルの内容を1つにまとめたセルを作りたければ、2つのセルの横に例示となるセルを入力すれば、Excelがそのパターンを調べて、同じ作業を繰り返してくれるのがフラッシュフィルだ。表入力が劇的に楽になる。

 Excelは、フラッシュフィルが利用可能な場合に、ポップアップでフラッシュフィルが利用可能であることを示す。しかし、ポップアップの出現条件は少々複雑で、ユーザーが直接セル内容を入力した後、フラッシュフィルが利用できそうならポップアップが出現するが、クリップボードから貼り付けたような場合には出現しない。このため、利用中にいつでも表示されるとは限らない。

フラッシュフィルのポップアップ フラッシュフィルのポップアップ
ユーザーの入力中にフラッシュフィルが使えそうな場合には、ポップアップで結果を見せてくれる。ただし、例示セル部分をユーザーが直接入力した場合のみポップアップが表示される。

 また、このポップアップは、入力の推測と同じく、セル入力の途中で行われるため、ユーザーが入力を始めてしまうとポップアップは消えてしまう。入力を急いでいるようなときに「一瞬だけ何かが表示されたけどすぐに消えた」となったしまうことが結構ある。

 そのため、この機能は「意図的」に使うのが便利だ。[Ctrl]+[E]キーを押せば、その時点でフラッシュフィルが「発動」される。

 フラッシュフィルを起動したあと、アクティブセルの右側にメニューアイコンが表示され、クリックするとフラッシュフィルの取り消しやフラッシュフィルが追記したセルの選択などの作業が行える。期待通りの結果にならなくても、慌てずにこのメニューから「フラッシュフィルを元に戻す」を選べばよい。

フラッシュフィルの実行後に表示されるメニュー フラッシュフィルの実行後に表示されるメニュー
フラッシュフィルを実行すると、アクティブセル位置は変わらず、横にメニューアイコンが表示される。ここからフラッシュフィルの取り消しや、入力したセルの選択などが可能だ。

フラッシュフィルの使い方を具体例で見てみよう

 具体例で試してみよう。例えば、CSVでもらった住所データが、郵便番号、都道府県、市町村と別々のセルになっていたとしよう。具体的には、郵便番号リストとして日本郵便が配布しているCSVファイルなどがこの形式になっている。

複数のセルに分かれた住所を1つのセルにまとめる

 1つのセルに郵便番号や住所をまとめて入れたいという場合、空の列を挿入した後、最初の1行だけコピー&ペーストを使って例示セルを作る。

全国の郵便番号のリストの住所を1つのセルにまとめてみる 全国の郵便番号のリストの住所を1つのセルにまとめてみる
日本郵便が配布している全国の郵便番号のリスト(読み仮名データの促音・拗音(ようおん)を小書きで表記するものの「全国一括」)では、郵便番号や都道府県、市町村などが別々のセルに入っている。このようなとき、フラッシュフィルを使えば、表がどれだけ大きくてもキー1つで表の残りの部分を埋めてくれる。

 今回は、郵便番号の頭に「〒」(郵便)マークを入れ、郵便番号と市区町村の後ろに半角スペースを入れた。これで2行目にアクティブセルを置き、[Ctrl]+[E]キーを押せば、例示通り、「〒+郵便番号+" "+都道府県+市区町村+" "+町名」を統合したセルが値(文字列)として最後まで入力される。

 同等の作業は、1行目に式「="〒"&C1&" "&G1&H1&" "&I1」を入れ、フィルハンドルで表の最後までドラッグすれば可能だが、フラッシュフィルに比べるとかなり面倒だ。表が非常に大きい場合には、計算式が多数になるため、ハードウェアによっては再計算の時間を取られることがある。

セルの内容を分割する

 逆にセル内容を分割してみよう。セルにハイフンなどで区切って数値の範囲が指定されているとしよう。ここでは、開始周波数範囲と終了周波数(単位はMHz)が記述されている場合を例に使い方を解説する。このとき、開始周波数と終了周波数を別々のセルに入れたい場合には、それぞれ例示セルを作り、2行目にアクティブセルを置き、[Ctrl]+[E]キーを押せば、フラッシュフィルがセル内容を分割してセルに入れてくれる。

セルの内容を分割する セルの内容を分割する
フラッシュフィルは、セルから部分的に文字列を取り出すこともできる。このため、複数セルでフラッシュフィルを使うことで、1つのセルを複数セルに分割することも可能だ。

Copyright© Digital Advantage Corp. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

AI for エンジニアリング
「サプライチェーン攻撃」対策
1P情シスのための脆弱性管理/対策の現実解
OSSのサプライチェーン管理、取るべきアクションとは
Microsoft & Windows最前線2024
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。