はじめに
Power Queryは便利なデータ整形ツールですが、マージ(結合)処理を使うと、
「急に処理が遅くなった…」「いつ終わるかわからない」
そんな声もよく聞きます。
この記事では、なぜPower Queryの結合で処理が重くなるのか?
そして、**どう対策すればよいか?**をわかりやすく解説します。
目次
マージ(結合)とは?
Power Queryにおける「マージ」は、Excelで言えば VLOOKUPのような処理。
2つのテーブルを「キー列(共通項)」で結びつけて、別の列を取り出す操作です。
マージ例
商品コードをもとに、売上データと商品マスタを結合する
とても便利な反面、データ量や設定次第で極端に処理が遅くなることも…。
結合が遅くなる主な原因3つ
原因①:データ件数が多すぎる
- 10万件 × 1万件など、大量データを結合しようとすると、裏側で全件を走査して突き合わせるため、処理時間が爆発します。

10万件の売上データと1万件の商品マスタを結合するのに、
10分以上かかることもあります。
原因②:結合キーの形式がバラバラ
- 「数値」と「文字列」など、結合キーの型が一致していないと、マッチせずループ処理に。
- フォーマットが微妙に違う(空白やゼロパディング)だけでもヒット率が下がり、無駄な繰り返しが発生します。
原因③:事前のフィルタや列選択がされていない
- 不要な行や列をそのまま持ち込んで結合すると、Power Queryが無駄な処理を大量に行うことに。
- 結合前にフィルタで「使うデータだけ」に絞っておかないと、何倍もの処理時間になります。
解決策:こうすれば速くなる!
対策①:マージ前に「件数を絞る」
- 使う期間・条件で 事前にフィルタをかける。
- たとえば「今年の売上」だけにするだけで、件数が大幅に減少します。
対策②:結合キーの型と内容を揃える
- データ型(文字列/数値)を 明示的に指定して一致させる。
Text.From([列名])
などで 型変換してから結合する。
対策③:必要な列だけ読み込む
- 結合後に使わない列が多いと、その分だけ処理負荷が増えます。
- 最小限の列だけ残す/展開するように設計しましょう。
Before/Afterのイメージ(図解)
状況 | 結合処理の内容 | 結果 |
---|---|---|
Before | 10万件×1万件/全列結合/キー型不一致 | 10分以上かかる |
After | 1万件×5千件/必要列のみ/キー型揃えた | 数十秒に短縮される可能性があります(体感)。 |
※ 実行環境により異なります。
Power Queryでの操作例(プロンプト風)
① マージ前の売上データを読み込み
② 「日付列」で必要な期間にフィルタ(例:今年分のみ)
③ 商品マスタも読み込み、「商品コード列」を `Text.From()` で型揃え
④ [ホーム] → [マージクエリ] → 結合
⑤ 展開列を必要なものだけにして完了!
まとめ
Power Queryのマージ処理は、設計しだいで爆速にも地獄にもなるポイントです。
だからこそ、事前のフィルタ、キー整備、列選定が超・重要です。
- 「結合キーを整える」
- 「件数を減らす」
- 「不要な列を除く」
この3つを意識するだけで、体感で数十倍速くなるケースもあります。


あわせて読みたい




Power Queryが遅い!よくある原因5選【初心者向けやさしい解説】
Power Queryで「データの読み込みが終わらない」「複数のファイルを結合したら固まった」──そんな経験、ありませんか? Power Queryって便利って聞いたのに、遅くてイラ…
次回予告:
次回は、**「結合キーがマッチしない!原因と解決法」**についてさらに詳しくお届けします。
コメント