Excel Power Queryとは?パワークエリでできること。営業活動への活用例と自動化の設定手順

「Excelで複数のファイルを毎回手作業で結合している」「CSVをインポートするたびに列の並べ替えが必要」――そんな繰り返し作業に時間を取られていませんか?
Excel Power Query(パワークエリ)を使えば、データの取得・整形・統合を一度設定するだけで自動化できます。本記事では、Power Queryの基本から、営業データを活用した具体的な設定手順まで、初めての方にもわかりやすく解説します。

Zoho CRM のアカウントをご用意して読み進めることを推奨します。Zoho CRM 無料トライアル
Excel Power Queryとは?パワークエリでできること。営業活動への活用例と自動化の設定手順
目次

すべて表示する

Power Query(パワークエリ)とは

Power Query(パワークエリ)とは、マイクロソフト社が提供するExcelのデータ変換・データ準備機能です。

Excel 2016以降では標準搭載されており、追加のインストールは不要です。Power Queryを使うと、外部のExcelファイルやCSV、データベースなどからデータを取得し、加工・統合したうえでExcelのシートに読み込むことができます。

Power Queryの最大の特徴は、元データを一切変更しないことです。Power Queryは元データへの「接続」を作成し、その接続先のデータを複製・加工します。そのため、元のファイルやデータベースが壊れる心配がありません。

さらに、一度設定した加工手順は「クエリ」として保存されます。元データが更新された場合は、「すべて更新」ボタンをクリックするだけで、同じ加工処理が自動で再実行されます。これが「データ処理の自動化」と呼ばれる所以です。

Power Queryの内部処理:4つのフェーズ

Power Queryの処理は、以下の4つのフェーズで構成されています。

フェーズ

内容

1. 接続

Excel、CSV、Webサイト、データベースなど、さまざまなデータソースに接続してデータを取得する

2. 変換

列の追加・削除、データ型の変更、フィルタリング、行の並べ替えなどの加工を行う。元のソースは変更されない

3. 結合

複数のデータソースからデータを統合し、1つのテーブルにまとめる。SQLでいうJOINに相当する

4. 読み込み

加工・統合が完了したデータをExcelのワークシートに読み込む。「すべて更新」で最新データに再実行可能

Power QueryはM言語という独自の数式言語で記録されますが、Excelでは画面上の操作(クリックやドラッグ)だけで設定できるため、プログラミングの知識は不要です。

Power QueryとAccessの違い

「データベースからデータを取得して加工する」という点では、同じマイクロソフト社のAccessと似ていますが、Power Queryには以下の利点があります。

  • Excel内で完結する:Accessのように別アプリケーションを立ち上げる必要がなく、普段使っているExcelの中で操作できる
  • 直感的なUI:SQLを書かなくても、GUIの操作だけでデータの加工手順を構築できる
  • 追加コスト不要:Excel 2016以降なら標準搭載。Accessの別途ライセンスは不要

Power Query(パワークエリ)でできること8選

Power Queryが具体的にどんな作業を自動化できるのか、営業現場でよくあるシーンを中心に8つの活用例を紹介します。

No.

できること

具体例

1

複数Excelファイルの統合

各営業担当が個別に持っている商談管理ファイルを1つのマスタファイルに自動統合。月次報告のたびに手作業でコピペする必要がなくなる。

2

CSVファイルの自動インポート

展示会主催者から提供されるリードリスト(CSV)を顧客管理テンプレートに自動取り込み。文字コードやヘッダーの違いもPower Queryが吸収。

3

重複データの自動削除

複数ソースを統合した際に発生する重複行を自動で検出・削除。メールアドレスや会社名をキーにした重複排除が数クリックで完了。

4

列の分割・結合

「姓名」が1列に入っているデータを「姓」「名」の2列に分割。逆に「都道府県」と「市区町村」を結合して「住所」列を作ることも可能。

5

データ型の自動変換

日付が文字列として入っているCSVを、Excelの日付型に自動変換。「2024/01/15」「2024-01-15」「20240115」など異なるフォーマットにも対応。

6

条件によるフィルタリング

「ステータスが受注のデータだけ抽出」「金額が100万円以上の商談だけ抽出」など、条件付きのデータ絞り込みを自動化。

7

ピボット・アンピボット

横持ちの月別売上データを縦持ちに変換(アンピボット)してグラフ化しやすくする。逆に縦持ちデータを横持ちに変換(ピボット)することも可能。

8

定期的な自動更新

上記すべての処理を「クエリ」として保存し、元データが更新されたら「すべて更新」ボタン1つで再実行。月次・週次のレポート作成が数秒で完了。

上記はあくまで代表例です。Power Queryは接続できるデータソースが非常に多く、SQLサーバー、Webページ、SharePointリストなどからもデータを取得できます。まずは身近なExcelファイルやCSVの統合から始めて、徐々に活用範囲を広げるのがおすすめです。

Power Queryの基本操作4ステップ

Power Queryを初めて使う方向けに、Excelファイルからデータを取得して加工する基本操作を4ステップで解説します。

Step 1:データに接続する

Excelのリボンから、[データ]タブ →[データの取得]→[ファイルから]→[Excelブックから]を選択します。

接続したいExcelファイルを選択すると、「ナビゲーター」ウィンドウが開き、ファイル内のシートやテーブルの一覧が表示されます。取り込みたいシート(またはテーブル)を選択し、「データの変換」ボタンをクリックします。

「データの変換」をクリックすると、Power Queryエディターが開きます。ここがデータ加工の作業場です。

Step 2:データを変換する

Power Queryエディターでは、さまざまなデータ変換が直感的な操作で行えます。よく使う操作を紹介します。

不要な列の削除:

不要な列のヘッダーを右クリック →「列の削除」を選択します。または、必要な列だけをCtrl+クリックで選択し、右クリック →「他の列の削除」を選択すると、選択した列以外がすべて削除されます。

フィルタリング:

列ヘッダーの▼ボタンをクリックし、表示されるフィルタメニューから条件を設定します。例えば「ステータス」列で「受注」だけにチェックを入れれば、受注済みのデータだけに絞り込めます。

データ型の変更:

列ヘッダーの左にあるアイコン(ABCや123など)をクリックすると、データ型を変更できます。文字列になっている日付を「日付」型に、テキストの数値を「整数」や「小数」に変換しましょう。

重要なポイントは、Power Queryエディターで行ったすべての操作が「適用したステップ」として右側のペインに記録されることです。ステップを削除すれば操作を取り消せますし、ステップの順序を入れ替えることも可能です。

Step 3:複数データを結合する

2つ以上のデータソースを接続している場合、Power Queryで結合(マージ)できます。

[ホーム]タブ →「クエリのマージ」をクリックし、結合先のクエリとキー列(共通の列、例:メールアドレスや顧客ID)を指定します。結合の種類は「左外部結合」「内部結合」などSQLと同じ概念で選べます。

営業での活用例:

展示会で取得したリードリスト(CSV)と、自社の顧客管理テンプレート(Excel)をメールアドレスをキーにマージ。展示会リードのうち、すでに受注に至った顧客を自動で特定できます。この具体的な手順は、後述の「活用事例」セクションで詳しく解説します。

Step 4:Excelに読み込む

加工・結合が完了したら、Power Queryエディターの[ホーム]タブ →「閉じて読み込む」をクリックします。データがExcelのシートに読み込まれ、テーブルとして表示されます。

元データが更新された場合は、Excelのリボンの[データ]タブ →「すべて更新」をクリックするだけで、Step 1〜3の処理が自動で再実行されます。これが「自動化」の本質です。毎回同じ加工を手作業で繰り返す必要がなくなります。

活用事例:展示会リードの効果測定をPower Queryで自動化する

突然ですが、あなたの会社がこれまでに展示会に出展していたら、その展示会で取得したリードのうち、今何件受注できているかすぐに回答できますか?顧客管理・商談管理用のExcelを使っていたとしても、展示会出展で得たリード(見込み客)リストは別に持っていて、すぐに集計するのは難しいのではないでしょうか?これを解決するのがPower Queryです。

例えば、①展示会主催者から提供されるリード一覧のCSVファイル、②自社の「顧客管理・商談管理テンプレート」というExcelファイル、の2つが存在するとします。①と②にはそれぞれさまざまな顧客情報が入っています。ただそれぞれにはメールアドレス、という情報が入っているため、②の商談管理シート内にある受注企業の窓口担当者のメールアドレスが、①のリストにどれくらい存在するか、を可視化することを目的にPower Queryを使います。使用するファイルは以下の2つです。

「展示会リードサンプル.csv」をダウンロード

「顧客管理・商談管理テンプレート.xlsx」をダウンロード

ゴールはこれだ

Power Queryが設定できたExcelファイルの動作を見てみましょう。画面のExcelファイルには、上記のファイルのデータが複数のシートに分かれて入っています。画面上の商談管理シートには、ステータス(F列)が「受注」となっている商談が表示されています。さらに、これまでに存在しなかった「展示会リードチェック(J列)」が加わっています。Excelのリボンの[すべて更新]をクリックすると、それまでシートには無かった企業「△△△商事株式会社」が2行目に現れた上、J列には「展示会リストから受注!」と表示されました。この「△△△商事株式会社」の商談が、展示会で得たリードからの受注であることが分かりました。

ゴールはこの状態です。順番に解説します。

Power Queryが設定できたExcelファイルの動作動画

新規のExcelに2つのファイルを接続しよう

まず、効果測定用の新規のExcelファイルを作成します。その新規ファイル上で、先ほどの「展示会リードサンプル」と「顧客管理・商談管理テンプレート」を接続します。いきなりPower Queryの出番です。

まずは、「展示会リードサンプル」を接続します。[データ]>[データファイル指定]をクリックし、[データソースへの選択]画面で「テキスト/CSV」をダブルクリックします。

効果測定用の新規Excelファイルの作成

次に表示される[データソースへの接続]ウィンドウで、会社の共有フォルダなど、「展示会リードサンプル」を保存した場所からファイルを選択して[データの取り出し]、その後[次へ]を押下します。

データソースへの接続

[データの取得(Power Query)]ウインドウにCSVファイルのサンプルが表示されたら[読み込む]を押下します。

ファイルデータのプレビュー

画面がExcelに戻り、以下のように表示されれば接続は完了です。

エクセルファイル上での接続の確認1

次に、「顧客管理・商談管理テンプレート」を接続します。[データ]>[データファイル指定]をクリックし、[データソースへの選択]画面で「Excelブック」をダブルクリックします。

データソースへの選択

保存場所の「顧客管理・商談管理テンプレート」を選択した後、Excelの中のどのシートのデータを接続するかを選択できる画面になります。ここで、「見込み客・取引先マスタ」と「商談管理」の2つを選択してから[読み込む]をクリックします。このExcelファイルのうち、今回の効果測定に使うシートは2つだけだからです。

データの選択

これで2つのファイルの接続が完了し、効果測定用のExcelファイルに必要なデータがそろいました。

エクセルファイル上での接続の確認2

データを整形しよう

データの接続ができました。ただ、シートによっては、見出しにしたい行がきちんと認識されていなかったり、分析には不要な行、列が入っていたりします。このデータの整形にもPower Queryが力を発揮します。データの読み込みの段階で見出しの行を変更したり、不要な列を削除する設定をしましょう。

展示会リードサンプル処理不要。
見込み客・取引先マスタ5行目が見出しになるように、それより上の行を削除。
商談管理
  • 5行目が見出しになるように、それより上の行を削除。
  • 受注した商談以外は削除。
  • 分析に不要な行を削除。

見込み客・取引先マスタシートについて、以下を設定します。

見込み客・取引先マスタ5行目が見出しになるように、それより上の行を削除。

〈動画:見込み客・取引先マスタシートのPower Query設定手順〉

  1. [データファイル設定(Power Query)]アイコン右の下向き矢印のプルダウンから[Power Queryエディターの起動]を押下し[Power Queryエディター]のウインドウを立ち上げます。
  2. 画面左の[クエリ]から「見込み客・取引先マスタ」を選択します。
  3. 画面上部のリボンにある[行の削除]>[上位の行の削除]を押下し、立ち上がったウインドウで削除する凝集として「3」と入力して[OK]を押下します。すると、画面が更新され、項目名より上の行が削除されました。
  4. 表の左上のセルをクリックし[1行目をヘッダーとして使用]を選択します。すると画面が更新され、項目名がヘッダーとして認識されました。ここまでのそれぞれのステップは、[Power Queryエディター]ウインドウ右側の[適用されたステップ]という場所に記録されていて、それぞれクリックすると、リボンの下にM言語と呼ばれる数式で記録されていることが分かります。[適用されたステップ]を削除すれば、その処理を削除できます。
  5. 最後に、[Power Queryエディター]画面左上の[閉じて読み込む]を押下すると、[Power Queryエディター]が閉じ、先ほどの[適用されたステップ]に記されたPower Queryの処理が全て終わったExcel画面に戻ります。
見込み客・取引先マスタシートのPower Query設定手順動画

次に、商談管理シートについて、以下の処理を設定します。

商談管理
  • 5行目が見出しになるように、それより上の行を削除。
  • 受注した商談以外は削除。
  • 分析に不要な行を削除。

〈動画:商談管理シートのPower Query設定手順〉

  1. [データファイル設定(Power Query)]アイコン右の下向き矢印のプルダウンから[Power Queryエディターの起動]を押下し[Power Queryエディター]のウインドウを立ち上げます。
  2. 画面左の[クエリ]から「商談管理」を選択します。
  3. 画面上部のリボンにある[行の削除]>[上位の行の削除]を押下し、立ち上がったウインドウで削除する凝集として「3」と入力して[OK]を押下します。すると、画面が更新され、項目名より上の行が削除されました。
  4. 表の左上のセルをクリックし[1行目をヘッダーとして使用]を選択します。すると画面が更新され、項目名がヘッダーとして認識されます。
  5. 次に[ステータス]の列のヘッダー右の矢印をクリックし、フィルターの設定で[受注]のみにチェックマークを入れて[OK]を押下します。すると、たくさんの商談の中で、ステータスが[受注]になっているものだけが残りました。
  6. 次に不要な行の削除です。分析する上で必須で無い要素の列を選択して、リボンの[列の削除]や右クリックの[列の削除]を押下します。
  7. 最後に、[Power Queryエディター]画面左上の[閉じて読み込む]を押下すると、[Power Queryエディター]が閉じ、先ほどの[適用されたステップ]に記されたPower Queryの処理が全て終わったExcel画面に戻ります。元データは列も行もたくさんありましたが、Power Queryの処理を経て絞り込んだ情報をExcelに表示させることができました。
商談管理シートのPower Query設定手順動画

商談管理シートにメールアドレス(I列)とリードチェック列(J列)を追加しよう

商談管理シートには、これまで受注した商談が表示されています。これだけでは、受注した商談が展示会リードに該当するか判別ができません。そこで、I列には、この商談の窓口担当者のメールアドレスを見込み客・取引先マスタシートから転載するようにします。さらにJ列には、I列に表示したメールアドレスが展示会リードサンプルシートに存在するか調べる数式を入力します。

商談管理
  • I列1行目に「メールアドレス列」と入力。I2セルに、C列のNo.をキーにして、この商談の担当者のメールアドレスを「見込み客・取引先マスタ」シートから転載する式を入力。
  • J列1行目に「展示会リードチェック」と入力。J2セルに、I列のメールアドレスをキーとして、「展示会リードサンプル」シートにあるかを調べあった場合は「展示会リストから受注!」の文字列を表示、無かった場合は「該当なし」を表示する式を入力。
商談管理シートへのメールアドレス(I列)とリードチェック列(J列)の追加

I列1行目に「メールアドレス列」と入力。I2セルに、C列のNo.をキーにして、この商談の担当者のメールアドレスを「見込み客・取引先マスタ」シートから転載する式を入力。I2セルの式は次の通りです。I2セルを入力すると、I3セル以下の式も自動で入力されます。

=XLOOKUP([@[NO.]],見込み客・取引先マスタ!$A$2:$A$1048576,見込み客・取引先マスタ!$H$2:$H$1048576,"該当なし")

Excelに使われている関数

説明

XLOOKUP関数
XLOOKUP関数

I2セルを解説します。

この式は、XLOOKUP関数を使用して、特定の条件でセルの値を検索し、その結果に応じて条件分岐を行うためのものです。以下が各部分の意味です。

[@[NO.]]:テーブルのカラム NO. から取得される現在のセルの値(この式が使用されているセルの行の NO. 列の値)。

見込み客・取引先マスタ!$A$2:$A$1048576:テーブル 見込み客・取引先マスタ の A 列全体。この範囲で XLOOKUP 関数は検索を行います。

見込み客・取引先マスタ!$H$2:$H$1048576:テーブル 見込み客・取引先マスタ の H 列全体。この範囲から返り値が取得されます。

"該当なし":検索結果がない場合に表示される値。

したがって、この式は、「見込み客・取引先マスタ シートの $A$2:$A$1048576 でセル NO. の値を検索し、対応する行から H 列の情報を返す。検索結果がない場合は "該当なし" と表示する」という意味になります。

J列1行目に「展示会リードチェック」と入力。J2セルに、I列のメールアドレスをキーとして、「展示会リードサンプル」シートにあるかを調べあった場合は「展示会リストから受注!」の文字列を表示、無かった場合は「該当なし」を表示する式を入力します。J2セルの式は次の通りです。J2セルを入力すると、J3セル以下の式も自動で入力されます。

=IF(ISERROR(XLOOKUP(I2,展示会リードサンプル!$F$2:$F$1048576,展示会リードサンプル!$F$2:$F$1048576)),"なし","あり")

Excelに使われている関数

説明

IF関数
ISERROR関数
XLOOKUP関数
IF関数、ISERROR関数、XLOOKUP関数

J2セルを解説します。

この式は、XLOOKUP関数を使用して I2 の値を 展示会リードサンプル シートの $F$2:$F$1048576 の範囲で検索し、その結果に基づいて条件分岐を行います。以下が各部分の意味です。

I2:この式が適用されているセルの行の I 列の値。

XLOOKUP(I2, 展示会リードサンプル!$F$2:$F$1048576, 展示会リードサンプル!$F$2:$F$1048576):

- I2 の値を 展示会リードサンプル シートの $F$2:$F$1048576 の範囲で検索し、その結果を返します。この部分が XLOOKUP 関数で、検索対象の値が見つからない場合、ISERROR関数でエラーを検知できるようになっています。

ISERROR(XLOOKUP(...)):

- XLOOKUP関数の結果がエラー(#N / A)かどうかを判定します。エラーがあれば ISERRORは TRUE を、なければ FALSE を返します。

IF(ISERROR(XLOOKUP(...)), "該当なし", "展示会リストから受注!"):

- ISERRORの結果が TRUE(エラーがある場合)であれば、"該当なし" と表示します。エラーがなければ FALSE で、つまり検索結果が見つかった場合は "展示会リストから受注!" と表示します。

したがって、この式は、「展示会リードサンプル シートの $F$2:$F$1048576 でセル I2 の値を検索し、検索結果があれば "展示会リストから受注!"、なければ "該当なし" と表示する」という意味になります。

更新を確認しよう

以上で全ての設定が完了したので、Power Queryを設定した効果測定用の新規のExcelファイルを任意の場所に保存しましょう。データタブの[すべて更新]を押下すると、設定したPower Queryの処理が行われ、データが更新されます。

更新の確認

元データの情報がどのように効果測定用に反映されるか、を見てみましょう。分かりやすいように、動画の画面の上半分が元データとなる「顧客管理・商談管理テンプレート」、下半分が効果測定のExcelファイルを並べました。「顧客管理・商談管理テンプレート」でステータスを変更して保存し、効果測定用のファイルの[すべて更新]のアイコンをクリックすると、シートが変化することが分かります。

元データは随時営業担当者が更新し、分析の担当者は必要なタイミングで効果測定用のExcelの更新アイコンをクリックするだけで済みます。分析の担当者はこの展示会リード経由の売上実績をどうとらえるか、という「解釈」に時間を使う必要があり、本来の分析業務を効率化することができます。

更新の確認動画

Power Queryのよくあるトラブルと対処法

Power Queryを運用するなかで遭遇しやすいトラブルと、その対処法をまとめました。

「すべて更新」してもデータが最新にならない

「すべて更新」をクリックしたのに、追加したはずのデータが反映されないケースです。

対処法:最も多い原因は、元データファイルの保存場所が変わっていることです。ファイルを別のフォルダに移動したり、ファイル名を変更すると、Power Queryの接続先が見つからずエラーになります。「データ」タブ →「クエリと接続」→ 該当クエリを右クリック →「編集」で、Power Queryエディターを開き、「ソースの変更」から正しいファイルパスを指定し直してください。

文字化けが発生する

CSVファイルを取り込んだ際に、日本語が文字化けして表示されることがあります。

対処法:CSVの文字コードがUTF-8ではなくShift_JIS(SJIS)の場合に発生します。Power Queryエディターの「ソースの変更」で、エンコードを「932 - 日本語(Shift-JIS)」に変更してください。展示会主催者から提供されるCSVはShift_JISであることが多いため、最初の接続時に確認しておくとトラブルを防げます。

「クエリのマージ」で結合結果が空になる

2つのクエリをマージしたのに、結合結果にデータが1件も表示されないケースです。

対処法:キー列のデータ形式が一致していない可能性があります。例えば、一方のメールアドレスに前後の空白が含まれている、大文字/小文字が異なる、全角/半角が混在しているなどです。マージの前に、キー列に対して「トリミング」(前後の空白を削除)と「小文字に変換」を適用しておくと、一致率が大幅に改善します。

Power Queryエディターが開かない・フリーズする

Power Queryエディターを開こうとすると、画面が固まったり、エラーが表示されることがあります。

対処法:大量のデータ(数十万行以上)を一度に処理しようとしている場合に発生しやすいです。まず、フィルタリングで必要な範囲に絞り込んでからデータを読み込むようにしましょう。また、Excelのバージョンが古い場合はPower Queryの機能が制限されることがあります。Excel 2016以降、できればMicrosoft 365の最新版を使用することをおすすめします。

更新のたびに列の順序が変わってしまう

「すべて更新」を実行するたびに、列の並び順が変わってしまうことがあります。

対処法:Power Queryエディターの「適用したステップ」の最後に、「列の並べ替え」ステップを追加しましょう。ホームタブの「列の移動」を使って希望の順序に並べ替えるか、または「列の選択」で表示したい列を希望の順序で選び直せば、更新のたびに同じ列順が維持されます。

上記のトラブルは、Power Queryの基本的な仕組みを理解していれば予防できるものがほとんどです。まずは本記事の基本操作4ステップをマスターし、シンプルなファイル統合から始めてみましょう。

このセクションのまとめ

Power Query(パワークエリ)は、Excelに標準搭載されたデータ変換・統合の自動化機能です。一度設定すれば、「すべて更新」ボタン1つで同じ加工処理を繰り返し実行でき、営業データの集計やレポート作成にかかる時間を大幅に削減できます。

このセクションのポイント:

  • Power Queryは元データを変更せずに、データの取得・変換・結合・読み込みを行う
  • Excel 2016以降に標準搭載。プログラミング不要、GUIだけで操作できる
  • 複数Excelの統合、CSV取り込み、重複削除、フィルタリングなど8つの主要機能がある
  • 基本操作は「接続→変換→結合→読み込み」の4ステップ
  • 展示会リードと顧客管理テンプレートの統合など、営業データの効果測定に活用できる
  • 文字化けやマージ結果が空になるトラブルは、エンコード設定とキー列の前処理で解決できる

Excelで顧客管理する方法

Excelダッシュボードの作り方

マクロで自動化

展示会リードサンプル.csv

顧客管理・商談管理テンプレート.xlsx

Power Queryの注意点

複数のデータの変換や統合に力を発揮するのがPower Queryです。ただ、Excel2016で登場した機能のため、自在に扱える人ばかりではないでしょう。参照元に指定していたファイルを誰かが移動してしまってPower Queryによる更新が動かなくなった場合、Power Queryを理解している人と、ファイルの移動先を把握している人がいなければ復活できない、という事態を想定しておくことが必要です。

Power QueryもVBA同様、職場の複数人が対応できる状況が望ましく、さらには、重要なファイルの格納場所を安易に移動してしまわないような管理体制も必要でしょう。