
Microsoft Excelでインポートされたデータや外部データを扱う場合、使用する前にデータを少し整理する必要があるかもしれません。値の先頭または末尾のスペースを削除したり、列の値を文字列から数値(またはその逆)に変更したりする必要があるかもしれません。また、列に複数の値が格納されている場合は、値を解析する必要があることもよくあります。
参照:誰もが知っておくべきExcel のヒントをご覧ください。
良い例としては名前が挙げられます。名前全体が1つの列に収まっている場合が多く、その値を扱うのが難しくなります。このチュートリアルでは、ExcelのフラッシュフィルとPower Query機能を使ってデータを解析する2つの簡単な方法を紹介します。
ジャンプ先:
- 必要なもの
- Microsoft Excelの文字列関数を使って解析する方法
- Microsoft Excelでフラッシュフィルを使ってデータを解析する方法
- Power Query を使用して Microsoft Excel のデータを解析する方法
必要なもの
Windows 11 64ビットシステムでMicrosoft 365を使用しています。.xlsメニュー形式を含む以前のバージョンでは、文字列関数を使用できます。Flash FillはExcel 2013以降で、Power QueryはExcel 2010以降で利用できます。また、Web版ExcelはFlash Fillをサポートしています。既存のPower QueryクエリをWeb版Excelで開くことはできますが、ブラウザー版では作成できません。
最終バージョンをちょっと見てみたい場合は、デモ ファイルをダウンロードしてください。
Microsoft Excelの文字列関数を使って解析する方法
フラッシュフィルが導入される前は、ほとんどの解析処理でRIGHT()、LEFT()、MID()、FIND()、LEN()などの文字列関数を組み合わせる必要がありました。例えば、図Aの列Dの式は、
=IFERROR(RIGHT(B3,LEN(B3)-IFERROR(FIND(” “,B3,FIND(” “,B3)+1),FIND(” “,B3))),B3)
図A

上記の式は、列Bの値から姓を返します。IFERROR()は、2番目のスペースがない場合のエラーを処理します。幸いなことに、名前の値の形式は一貫していますが、常にそうであるとは限りません。IFERROR()を削除したとしても、この式は依然として複雑で扱いにくいものです。
フラッシュ フィルは、Microsoft Excel の最新バージョンで多くの解析タスクを完了できます。
Microsoft Excelでフラッシュフィルを使ってデータを解析する方法
Excelのフラッシュフィル機能はExcel 2013から搭載されているので、ご存知の方も多いかもしれません。解析に使用する際は、対象列の最初の値を入力すると、Excelがパターンを評価できます。フラッシュフィルでは1つの値しか必要としない場合もあります。今回のデータは一貫性があるため、この解析作業は容易です。
フラッシュ フィルを使用して、列 B の名前の値から姓を解析してみましょう。
1. C3 にHarkinsを入力します。
2. Enterキーを押します。フラッシュフィルではまだ列にデータが入力されていない可能性があります。
3. フラッシュフィルでパターンが判別できない場合は、図Bに示すように、最初の数文字をSmythで入力します。フラッシュフィルがパターンを判別し、列全体を塗りつぶすように指示するようになります。
図B

4.図Cに示すように、Enterキーを押して残りのセルに入力します。古いバージョンのExcelを使用している場合は、Ctrl + Enterキーを押す必要がある場合があります。
図C

Excelのフラッシュフィルは、文字列関数を組み合わせるよりもはるかに高速で簡単です。データに一貫性がない場合でも、この機能は数回試すだけでパターンを見つけてくれます。Web版Excelはフラッシュフィルをサポートしています。[データ]タブで探してみてください。Enterキーを押す代わりに、[データツール]グループの[フラッシュフィル]をクリックしてください。
参照: Microsoft Excel のフラッシュ フィルを使用して時間を節約する 6 つの方法をご覧ください。
Power Query を使用して Microsoft Excel のデータを解析する方法
Power QueryはMicrosoft Excel 2010以降でご利用いただけます。データの取得とクリーンアップが主な目的ですが、他にも多くの機能を備えています。Power Queryを使って列を追加し、その列に姓(ラストネーム)をパースしてみましょう。
まず、次のようにしてデータを Power Query に読み込む必要があります。
1. Power Query に読み込む Excel テーブル内の任意の場所をクリックします。
2. 「データ」タブをクリックします。
3. 「データの取得と変換」グループで、「テーブル/範囲から」をクリックします。データをテーブルとして書式設定していない場合は、Power Query によってテーブルとして書式設定するように求められます。デモ用のテーブルの名前は TablePersonnel です(図D)。テーブルに名前を付ける必要はありませんが、名前を付けると操作が少し簡単になります。
図D

データが Power Query に取り込まれたら、次のように Personnel 列に基づいて列を追加します。
1. 「Personnel」ヘッダーをクリックして列を選択し、「列の追加」タブをクリックします。
2. 「全般」グループで、「例から列を選択」ドロップダウンから「選択範囲から」を選択します(図E)。Power Queryによって新しい空白の列が追加されます。この列に新しい姓の値を入力するには、Power Query独自のフラッシュフィルを使用します。
図E

3. 新しい列の最初のセルに「Harkins」と入力します(図F)。Power Queryは、列全体の姓の値のセットを提示します。少し確認してみましょう。正しくない場合は、次の姓を入力します。Power Queryは、データのパターンを設定するために、名前が1つだけ含まれた正しいリストを返します。
図F

4. [OK] をクリックすると、図 Gに示すように、新しい列が作成され、姓が入力されます。
図G

残っているのは、次のように変更したデータを Microsoft Excel に保存することだけです。
5. [ホーム]タブをクリックします。
6. [閉じる] グループで、[閉じて読み込む] ドロップダウンから [閉じて読み込む] をクリックします。
図Hは、 Tableオブジェクトとして書式設定されたExcelシート内の、解析された姓を示しています。Power Queryは、元のテーブルの名前であるTablePersonnelを使用して、新しいシートの名前を作成します。この時点で、新しい列の名前を変更できます。データを保存する前に、Power Queryで列の名前を変更することもできます。
図H

フラッシュ フィルの方が確かに速かったですが、Power Query で既にデータを操作している場合は、Power Query メソッドを知っておくと役立ちます。
次に読む: Excel で洞察を適用する方法を学びます。