なんでもエクセル(Nandemo Excel)

何でもエクセルでやってしまう そこのあなた。ようこそ

Power Query:クエリのマージ

そもそも「クエリのマージって何」という人もいるはずなんで書いておくと、2つのクエリ(もしくはステップ)を、それぞれ対象となる列を指定して1つにまとめること。Excel的にいうなら「VLOOKUPで別テーブルのデータをひっぱってくること」だ。これいうとミもフタもないけど。

上の2つのテーブルを使って(いうまでもないけどダミー情報)、下のように情報のマージ(結合)を行う。

そのまんま「クエリのマージ」を実行すればいいんだけど、初めてパワークエリを触る人には、そこまでのハードルが高いみたい。なので順を追って説明していきたい。

今回は「氏名マスタ」と「住所マスタ」があるものとして、これらを1つにまとめてやる。まずは2つのテーブルから「接続のみ」でクエリを作成する。


テーブル書式を設定したセル範囲を選択した状態で [データ]→データの取得と変換の[テーブルまたは範囲から]

こんな感じで、エディタ画面に読み込まれる。作成されたクエリの名前は、テーブル名(画像だと「テーブル1」)になるので、このままだと後々ややこしくなる。必ず「名前の変更」で適切なクエリ名に変更しておこう。


左ペインのクエリ名を右クリックして[名前の変更](もしくは F2キー押し) 名前を適切な名称に変更

名前の変更が終わったら、作ったクエリを読み込む。接続のみで読み込みたい時は「閉じて次に読み込む」を選択する必要がある。


[ホーム]→[閉じて読み込む]→[閉じて次に読み込む]

データのインポートダイアログで[接続の作成のみ]を選択して[OK]

これで読み込み完了。

同じように住所マスタも接続のみで読み込む。

これで準備完了。マージできる状態になったので、さっそく作ったクエリを結合してみよう。


[データ]→データの取得と変換の[データの取得] [クエリの結合]→[マージ]

上段のコンボボックスから「氏名マスタ」を選択 下段のコンボボックスから「住所マスタ」を選択 それぞれマージ対象列の「氏名コード」をクリックで選択 結合の種類はデフォルトの「左外部」のままで[OK]

「Table」と書かれた列が追加されればマージ成功。あとはこれを展開するだけ。


追加された列の見出しの右にあるアイコンをクリック 「郵便番号」「住所」にだけチェックを入れる [元の列名をプレフィックスとして使用します]のチェックを外す →[OK]

これで展開も完了。最後にこの結果を Excelのシート上に読み込めば終了。


[ホーム]→[閉じて読み込む]→[閉じて次に読み込む] データのインポートダイアログで[テーブル]を選択 [既存のワークシート]を選択し、表示させたいセルを指定して[OK]

これでクエリのマージが終了。慣れるまでは少し手間取るかもしれないが、何度か練習すれば1~2分でできるようになると思う。

ちなみに作ったテーブルを選択した状態で、

[データ]→クエリと接続の[プロパティ]
データのレイアウトの[列の幅を調整する]の
チェックを外して[OK]

としておくと、読み込みの際に列幅が自動調整されるのを防ぐことができる。