「列を揃えて結合したい」「マスタ情報を付けたい」「不一致データを洗い出したい」——Power Query を使えば、power bi クエリのマージでほとんどの“結合”仕事が片づきます。
本記事は、分かりやすさ最優先で、操作の基本、結合タイプの使い分け、多キー・ファジー結合、列の展開、そして実務でハマりがちな落とし穴と最適化のコツを手順ベースで整理しました。サンプルの M コードもそのまま流用できます。
超要約(最初の3分)
-
power bi クエリのマージは、Power Query(Desktop の Power Query エディター)で行う“テーブルどうしの結合”。
-
結合タイプは使い分けが命:LeftOuter(左外部)、Inner(内部)、Right/Full、LeftAnti/RightAnti(不一致抽出)、Fuzzy(あいまい)。
-
型合わせ・トリミング・大文字小文字統一が成功率を左右。複数キー結合で安定させる。
-
高速化は 上流で絞る→折りたたみ維持→不要列削除→キー単純化 が基本。
-
不一致検出・重複膨張・多対多の扱いが“実務の山場”。アンチ結合と集約でコントロール。
1. 基本を一枚で理解:マージとアペンドの違い
マスタ付け、属性付与、不一致チェックはpower bi クエリのマージの領域です。
2. 手順:標準的な「マスタ付け」5ステップ
目的:Sales(売上明細)に Products(商品マスタ)の商品名とカテゴリを付与(左外部結合)。
-
Power Query エディターで Sales を選択
-
ホーム > マージクエリ(Merge Queries)(既存に結合)または マージクエリ(新規作成) を選ぶ
-
上段に Sales、下段に Products を指定
-
両テーブルでキー列(例:ProductID)をクリックして選択(複数キーは Ctrl/⌘ で順番どおりに)
-
結合の種類を 左外部(Left Outer) にして OK → 追加された“ネストされた列”を 展開して、必要列(ProductName, Category)だけ選んで確定
コツ:power bi クエリのマージ直前に、キー列が同じデータ型(テキスト/整数/日付)であることを確認。型が違うと一致しません。
3. 結合タイプの使い分け(7種類)
-
Left Outer(左外部):左の全行+一致した右の列(いちばん使用頻度が高い)
-
Inner(内部):左右とも一致した行だけ(突合結果の“共通部分”)
-
Right Outer(右外部):右の全行+一致した左の列(右が主のとき)
-
Full Outer(完全外部):一致/不一致を含む全件(差分調査に)
-
Left Anti(左アンチ):左にしかない行(=右に未登録の項目の抽出)
-
Right Anti(右アンチ):右にしかない行
-
Fuzzy(あいまい):スペルゆらぎや表記差を許容して一致判定(製品名・社名などの表記ブレ対策)
実務で光るのは Left Anti(未登録・不一致検出)と Full Outer(差分棚卸)。power bi クエリのマージは照合作業の強力なレンズになります。
4. 多キー結合(複数列)で安定させる
単一キーだと重複や偶発一致に弱くなります。店舗×日付×商品など、論理的に一意になる組み合わせをキーにしましょう。
選択は 左→右テーブルで同じ順序。順番がずれると別キー扱いになります。
5. 列の展開と命名のルール
マージ後は右テーブルがネストされたテーブル列として1列追加されます。右端の 展開ボタン(↔) で必要な列だけを展開し、わかる名前にリネーム。
例)Products.ProductName → 商品名、Products.Category → カテゴリ。
後工程(モデリングや DAX)で迷わないよう、power bi クエリのマージの時点で命名を整えておくと吉。
6. ありがちな“ハマりどころ”と処方箋
6-1. 合致しない(NULLばかり)
-
型が違う(数字 vs テキスト、日時 vs 日付)→ 型を合わせる
-
前後スペース・不可視文字 → Text.Trim, Text.Clean 相当の整形
-
大文字小文字・全角半角 → Text.Upper, Text.Lower, 変換テーブルで正規化
-
先に 重複排除(キーが重複すると多対多で膨張)
6-2. 行が何倍にも膨らむ(多対多)
6-3. 速度が極端に遅い
-
結合前に 不要列を削除、期間で絞り込み(上流に寄せる)
-
可能ならソース側(SQL/ビュー)で事前に結合して件数を減らす
-
折りたたみ(Query Folding)を壊すステップを結合より後ろへ移動
-
右テーブルが小さいなら、Table.Buffer でキャッシュすると改善することも(乱用厳禁)
6-4. ファジー結合の誤検知
7. M 言語テンプレ(そのまま使える)
7-1. 左外部結合(典型例)
7-2. 不一致(左アンチ)を抽出して品質チェック
7-3. 複数列キー(店舗×日付×商品)
7-4. ファジー結合(名称ゆらぎを許容)
MappingTable は旧名→新名などの正規化用テーブル。power bi クエリのマージでファジーとセット運用すると誤一致が激減します。
8. いつマージ?いつ“関係”で済ます?
大規模モデルでは、むやみにpower bi クエリのマージで列を増やすとメモリが膨らみます。マスタはディメンション化して“関係”で参照、どうしても必要な列だけマージして持ち込むのが定石です。
9. 実務で役立つ設計パターン10
-
商品名付与:売上にマスタの正式名称・カテゴリを LeftOuter
-
未登録SKU検出:LeftAnti で差分一覧をアラートページに表示
-
計画との突合:Store×Date×SKU の Inner で実績と計画を横持ち
-
得意先名ゆらぎ吸収:Fuzzy+変換テーブル→最終は完全一致で再マージ
-
在庫引当:倉庫×SKU でマージ→不足は LeftAnti で抽出
-
配送リードタイム付与:Region×Carrier で SLA を結合し KPI 算出
-
為替レート付与:日付×通貨でマージ→金額換算
-
組織改編対応:旧→新コード変換テーブルを都度マージして歴史整合
-
住所の標準化:町名辞書をマージ→地図の粒度を統一
-
監査ログ突合:ユーザー×日時でアクティビティに権限情報を付与
どれも power bi クエリのマージ の組合せで実現できます。
10. パフォーマンス最適化の基本(短く効く)
-
早く絞る:日付範囲/必要列だけに。マージ前に削るほど速い
-
折りたたみ維持:フィルター・型指定・列削除は上流へ、カスタム列・行ごと処理は最後に
-
キーの単純化:複合キーはテキスト連結より列の複選択で指定(比較が軽い)
-
右テーブルを小さく:マスタの列/行を最小化(必要な列だけ)
-
ステップ順序:フィルター→列削除→型→マージ→展開→(必要なら)追加計算
-
検証は小さく:一時的に Table.FirstN で 1000 行に絞り、動作確認→戻す
これだけで power bi クエリのマージ の体感速度は大きく変わります。
11. 監査・品質の見える化(再発防止)
-
不一致件数をカードで表示(LeftAnti の行数)
-
最終マージ日時をテキストで明示(DateTime.LocalNow() をパラメータ化)
-
マージ結果の重複率(行数のビフォー/アフター比)で膨張検知
-
重要テーブルは キーの一意性を読み込み時に Group By → Count でチェック
power bi クエリのマージは“やって終わり”ではなく、監視で品質を守るのがプロの仕事です。
12. ケース別トラブルシュート
Q1. マージ後に展開したら同じ列名が衝突する
→ 展開時に別名を付ける。既存列と区別できる命名規則(_FromMaster など)を。
Q2. マージのプレビューが終わらない
→ 右テーブルが巨大。先にフィルターと不要列削除、場合によってはビュー化。
Q3. 文字列キーのスペース違いで一致しない
→ 事前に Text.Trim、全角スペース→半角置換、Text.Upper で統一。
Q4. 似た商品名が誤って結合される(Fuzzy)
→ しきい値↑、MaxMatchesPerRecord=1 の指定、最終的に人手レビュー用の確認ページを作る。
Q5. 多対多で数字が重複計上される
→ 左右いずれかを集約して粒度を揃えるか、マージ後に集計列だけ残して明細を落とす。
13. チェックリスト(コピペOK)
14. まとめ:正しく“くっつける”だけで、分析は一段変わる
-
power bi クエリのマージは“列を増やす前処理”。
-
成功の鍵は 型合わせ、結合タイプの使い分け、粒度の整合。
-
不一致検出(アンチ結合)とファジーの併用は、現場の“名寄せ”に特に効く。
-
速さは正義。上流で絞る・折りたたみ維持・不要列削除を癖に。
-
監視を仕込めば、品質は自動的に保たれる。
今日から、あなたのレポートづくりの最初の一歩にpower bi クエリのマージを置いてみてください。
“きちんとくっつける”だけで、ダッシュボードの説得力と作業スピードは確実に上がります。
コメント