[教えて]Power QueryでCSVを読み込む(2)


【2025年9月】

ども、スーパー・ウルトラExcel超初心者の田中です。今回は、前回の取得と変換(Power Query)では実現できなかった、VLOOKUP関数的な処理をやります。やりたいのは、こういうことです。

ちなみに「Area.csv」は、下図のような感じです。

さあ、それではいきますよ。AIさん、張り切ってどーぞ!

Power Queryエディタに「C:\Data\Data09.csv」を読み込んでいます。この「Data09.csv」には「記号」列があり"A-101"や"A-102"などの文字列が入力されています。これらの記号を「C:\Data\Area.csv」と照合して、記号に該当する"地域"の列を作る操作を教えてください。なお「C:\Data\Area.csv」には「記号」列と「地域」列があり、まだPower Queryエディタには読み込んでいません。照合に使用した「C:\Data\Area.csv」はExcel上に読み込みません。初心者なので、丁寧に解説してください。

私は、ハイパーExcel超初心者(X-type)なので"クエリのマージ"なんて専門用語は知りません。

Power Queryエディタで「Data09.csv」の「記号」列を「Area.csv」と照合し、
「地域」列を追加する手順を丁寧に説明します。

1. 「Area.csv」をPower Queryに読み込む
Power Queryエディタの画面で「ホーム」タブから「データの取得」→「ファイルから」→
「CSV」を選択。
「C:\Data\Area.csv」を選択して「開く」。
読み込んだら「Area」など分かりやすい名前に変更。
2. 「Data09.csv」に「Area.csv」を結合(マージ)
Power Queryエディタの左側で「Data09.csv」のクエリを選択。
「ホーム」タブの「クエリの結合」→「マージクエリ」をクリック。
「Data09.csv」の「記号」列と、「Area.csv」の「記号」列を選択。
結合の種類は「左外部(最初の行のみ)」を選択。
「OK」をクリック。
3. 「地域」列を展開
マージ後、「Area.csv」のテーブルが新しい列として追加されます。
その列の右端にある「展開」ボタン(□に矢印)をクリック。
「地域」列だけにチェックを入れて「OK」。
4. クエリを適用
「ホーム」タブの「閉じて読み込む」をクリック。
これで「Data09.csv」に「記号」に対応する「地域」列が追加されます。
Excel本体には「Area.csv」を読み込まず、Power Query内だけで照合できます。

いきなり分かりません。

Power Queryエディタの画面で「ホーム」タブから「データの取得」→「ファイルから」→
「CSV」を選択。

Power Queryエディタの「ホーム」タブに「データの取得」など存在しません。

Power Queryエディタの「ホーム」タブに「データの取得」が存在しません。どうやって「Area.csv」を読み込むのですか?
Power Queryエディタ内では「データの取得」ボタンはありません。新しいファイル
(例:Area.csv)を読み込むには、Power Queryエディタを一度閉じて、
Excelの画面に戻って操作します。

手順は以下の通りです:

Excelの「データ」タブをクリックします。
「データの取得」→「ファイルから」→「CSV/テキスト」を選択します。
「C:\Data\Area.csv」を選択して「インポート」します。
「Power Queryエディタ」が開くので、内容を確認し「閉じて読み込まない」
(または「読み込み先」→「接続のみ」)を選択します。
これで「Area.csv」がPower Query内に読み込まれ、他のクエリ
(例:Data09.csv)とマージできるようになります。

その後、Power Queryエディタで「Data09.csv」と「Area.csv」をマージしてください。

おいおい!

Power Queryエディタの画面で「ホーム」タブから「データの取得」→「ファイルから」→
「CSV」を選択。
Power Queryエディタ内では「データの取得」ボタンはありません。

ちょっと、なに言ってんのか分かりません。この調子だと、なかなか先に進まないので、一度Excelの画面に戻って「Area.csv」を読み込みます。ただ、ここでひとつ注意が。下図の画面を見ても分かりますが、ヘッダが自動認識されていません。

一般的にヘッダは文字列です。続くデータ(2行目から下)に、数値や日付など文字列ではない値が含まれていると、Power Queryは1行目の文字列をヘッダと認識してくれます。しかし今回のように、ヘッダが文字列で、下のデータもすべて文字列だったとき、Power Queryは1行目がヘッダかどうか判断できません。まぁ、それは分かります。なので、そうしたデータのときはヘッダが自動認識されません。Excelユーザーって、こいうケースに無頓着です。Excelは、ヘッダと値の違いを、文字列や数値など値の型だけでなく、書式なども含めて総合判断します。なので、Excelではあまり起こりません。これ、Power Queryあるあるなので覚えておきましょう。ここは文句を言わず「まぁ、それは分かるよね」を受け入れて「1行目をヘッダとして使用」をクリックします。ちなみに、今回のケースだったら、この処理は不要です。この後「Area.csv」に対してVLOOKUP関数的なこと(クエリのマージ)を行います。検索文字は"A-101"などですから、先頭行の"記号"がヒットすることはあり得ないからです。

「Power Queryエディタ」が開くので、内容を確認し「閉じて読み込まない」
(または「読み込み先」→「接続のみ」)を選択します。

の部分は、見なかったことにします。さて次は

2. 「Data09.csv」に「Area.csv」を結合(マージ)
Power Queryエディタの左側で「Data09.csv」のクエリを選択。
「ホーム」タブの「クエリの結合」→「マージクエリ」をクリック。
「Data09.csv」の「記号」列と、「Area.csv」の「記号」列を選択。
結合の種類は「左外部(最初の行のみ)」を選択。
「OK」をクリック。

Power Queryエディタの「ホーム」タブに「クエリの結合」は存在しません。

まぁ、ここは類推して先に進みます。「ホーム」タブの"結合"と書かれたどこかの、"マージ"と記載されている何かをクリックします。

3. 「地域」列を展開
マージ後、「Area.csv」のテーブルが新しい列として追加されます。
その列の右端にある「展開」ボタン(□に矢印)をクリック。
「地域」列だけにチェックを入れて「OK」。

このへんは丁寧なんだよな。なお、先の「1行目をヘッダとして使用」を行っていないと"「地域」列だけにチェックを入れて"は"「Column2」列だけにチェックを入れて"と、読み替えなければなりません。

さて、最後の行程です。Excelのシートに読み込むのですが、希望どおり「Area.csvは読み込まない」にできるでしょうか。最初のプロンプトには、ちゃんと

照合に使用した「C:\Data\Area.csv」はExcel上に読み込みません

と記載しています。指示は次のとおり。

4. クエリを適用
「ホーム」タブの「閉じて読み込む」をクリック。
これで「Data09.csv」に「記号」に対応する「地域」列が追加されます。
Excel本体には「Area.csv」を読み込まず、Power Query内だけで照合できます。

いや、前回もそうですが、ここは違います。「閉じて読み込む」を実行するとArea.csvもExcelに読み込まれちゃいます。

Area.csvをExcelに読み込まないには、「閉じて次に読み込む...」を実行して、表示される[データのインポート]ダイアログボックスで「接続の作成のみ」を選択しなければなりません。ここで選択した「接続の作成のみ」は、最初に読み込んでいたData09.csvのことではなく、後から読み込んだArea.csvのことです。

ずっと前の手順で、すでにPower Queryエディタに「Data09.csv」を読み込んでいて、そこに「Area.csv」を追加で読み込むってありましたよね。あのとき「一度Data09.csvを閉じて」Excelの画面でもう一度Area.csvを読み込みました。「Data09.csv」を閉じるとき「閉じて読み込む」を実行するとData09.csvがExcel上に読み込まれますので、2つめの「Area.csv」を"接続の作成のみ"にすると、下図のようになります。

今回の手順には提示されませんでしたが、実は一度Excelの画面に戻らなくても、Power Queryエディタ上から追加でArea.csvを開くことも可能です。[ホーム]タブ[新しいクエリ]グループ[新しいソース]-[ファイル]-[テキスト/CSV]を実行します。ただし、そうなると今度は、[閉じて次に読み込む...]が実行できません。

[閉じて読み込む]しか実行できないのですから、結果はArea.csvもExcel上に読み込まれます。

また、初めてExcel上に読み込む「Data09.csv」も、新しいワークシートとして読み込まれます。何を望むのかにもよりますが、「Data09.csv」は既存のワークシート上に読み込み、「Area.csv」はExcel上に読み込みたくない、のでしたら、自分でそのへんの処理をしなければなりません。それ、できますか?またAIに相談しましょうか。

まとめ

何ができるか分からないけど、Power Queryを使ってみたい、と思っているExcelユーザーは多いです。ただ、前回と今回で明らかですけど、AIの指示というのは「Power Queryエディタの動作などを知っている」という前提で書かれています。"接続のみ作成"とは何なのか?複数のCSVを同時に開く手順は?Excelに読み込んだリストを削除したり場所を変更するにはどうするのか?そもそもクエリとは?そもそもPower Queryとは?などを正しく理解していないと、試しにちょっとやってみよう、すら高いハードルになります。まずは、基礎をしっかりと学習してから始めてください。