ADVERTISEMENT

【Excel】Power Queryで更新すると重複行が増える時のキー列確認

【Excel】Power Queryで更新すると重複行が増える時のキー列確認
🛡️ 超解決

Power Queryでデータを更新したときに、以前は存在しなかった重複行が増えて困った経験はありませんか。この問題は、多くの場合、クエリ内で結合やグループ化の基準として使っているキー列(キー)の設定が適切でないことが原因です。本記事では、重複行の発生メカニズムとキー列の確認手順を具体的に解説し、あなたのクエリを正常な状態に戻す方法をお伝えします。

【要点】この記事で確認すること

  • 最初に見る場所: Power Queryエディターの「適用したステップ」一覧、特に「結合」「グループ化」「重複の削除」の各ステップに設定されたキー列です。
  • 切り分けの軸: 重複が元データに由来するのか、クエリ内の操作で生じているのかを、データソースの直接参照とクエリステップの確認で切り分けます。
  • 注意点: 会社PCで共有データソースを直接変更する前に、必ず管理者やデータ所有者に確認してください。権限のない変更は他のユーザーに影響を与える恐れがあります。

ADVERTISEMENT

Power Queryで重複行が増える原因を理解する

Power Queryは、データの取り込み、変換、結合を自動化する強力なツールですが、更新のたびに重複行が増える現象は、以下の3つの原因に分類できます。

原因1:データソース側の重複行

元となるExcelテーブル、CSVファイル、データベースなどにすでに重複行が含まれているケースです。更新のたびに新しい重複行が追加される場合、ソースそのものが増加している可能性があります。この場合、クエリ内で重複の削除を行っていなければ、そのまま出力されます。

原因2:結合操作のキー列設定ミス

テーブル同士を結合する際に、キーとして指定した列が一意でない(重複した値を持つ)と、結合結果に重複行が発生します。例えば、顧客IDが一意でないテーブル同士を結合すると、1人の顧客に複数のレコードが結びつき、結果的に行数が増えます。

原因3:グループ化のキー列不足

グループ化操作では、集計の基準となるキー列を指定しますが、このキー列に十分な粒度がないと、本来別々の行がまとめられず、かえって重複が発生することがあります。特に、複数の列を組み合わせて一意性を確保する必要がある場合に、一部の列しか指定していないと、重複行が増える原因になります。

お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

重複行の発生パターンをチェックする

原因を特定するために、まずは重複行がどの段階で生じているのかを切り分けます。以下の2つの方法で確認してください。

データソースを直接確認する

Power Queryエディターの左ペインで対象のクエリを選択し、「データソースの設定」から元データを開きます。元データ自体に重複行があるかどうかを、Excelの「重複の削除」機能やCOUNTIF関数などで確認します。もし元データで重複がなければ、クエリ内の操作に問題がある可能性が高いです。

クエリステップを順に検証する

「適用したステップ」ウィンドウで、各ステップをクリックしながらプレビューを確認します。重複行が初めて現れるステップを特定します。特に、「結合」「グループ化」「テーブルの展開」などのステップで増えやすいです。このステップを特定できれば、キー列の設定を見直すべきポイントがわかります。

確認対象 正しい状態 誤った状態 問題の具体例
結合キー列 両方のテーブルでキー列が一意(重複なし) キー列に重複値が含まれている 注文データと顧客データを顧客IDで結合したが、顧客IDに重複があるため1人の顧客に複数の住所が紐づき、行数が増加
グループ化キー列 グループ化キー列の組み合わせで一意性が保証される キー列の組み合わせが不足している 日付でグループ化したが、同じ日に複数の店舗のデータがあるため、店舗列もキーに追加すべきところ、日付だけでは集計が不適切
重複の削除ステップ 重複の削除で正しいキー列を指定している キー列が指定されていない、または別の列を指定している 「行の重複を削除」で列を選択せずに実行すると、全列がキーとみなされ部分的な重複が除去されない

キー列の設定を確認する手順

実際のクエリを使って、キー列の設定を確認・修正する手順を説明します。以下はPower Queryエディターでの操作です。

  1. Excelの「データ」タブから「クエリと接続」をクリックし、該当するクエリを右クリックして「編集」を選択します。
  2. 「適用したステップ」ウィンドウで、各ステップを1つずつクリックし、プレビュー画面の行数を確認します。行数が増えたステップを特定します。
  3. 増えたステップが「結合」の場合、そのステップをダブルクリックして結合設定ダイアログを開きます。「結合の種類」と「キー列」を確認します。キー列として選択した列が一意であるか、結合の種類(左外部、内部など)が適切かを検討します。
  4. 増えたステップが「グループ化」の場合、グループ化のダイアログで「キー」として指定している列を確認します。データの特性を考慮し、必要な列がすべて含まれているかチェックします。例えば、日付+店舗+商品IDのように、組み合わせで一意になる列を選びます。
  5. 「重複の削除」ステップが存在する場合は、そのステップの設定を確認します。「行の重複を削除」のダイアログで、どの列をキーとして重複判定するかが指定されています。通常は一意性を保証したい列を選択します。もし全列が選択されていると、部分的な重複が削除されないため注意が必要です。
  6. 必要に応じて、キー列を追加・変更し、プレビューで結果が正しくなるまで調整します。修正後、ホームタブの「閉じて読み込む」でシートに反映します。

ADVERTISEMENT

キー列の誤設定による失敗パターンと対処法

実際によくある失敗パターンを3つ紹介します。これらに該当する場合は、該当する対処法を試してみてください。

失敗パターン1:結合キーに一意でない列を使っている

例として、売上テーブルと商品マスタを「商品コード」で結合したところ、商品マスタ側に同じ商品コードが複数行存在していたために、売上1行に対して複数行のマスタデータが紐づき、結果として行数が増加しました。この場合、商品マスタ側で重複を除去するか、結合時に「最初の一致のみを使用」などのオプションを選択する必要があります。ただし、データの正確性を損なわないように注意してください。

失敗パターン2:グループ化のキー列が不足している

日次の売上集計で「日付」のみをグループ化キーに指定したが、実際には「店舗」ごとにデータが存在していたため、同じ日付の異なる店舗のデータが別々の行として残り、見かけ上重複が増えたように見えました。この場合はキー列に「店舗」を追加することで、正しいグループ化ができます。

失敗パターン3:重複の削除でキー列を指定していない

「行の重複を削除」を実行する際に、すべての列がキーとして選択された状態だと、一部の列だけが重複している行は削除されません。例えば、顧客名と住所は同じでも注文日が異なるデータは別行とみなされます。重複を削除したい基準(キー列)を明示的に選択する必要があります。

管理者に確認すべきこと

会社の共有データやデータベースを利用している場合、以下の点を管理者またはデータ所有者に確認してください。

  • データソースの重複行の有無: 元データの更新方法やメンテナンス状況を確認します。バッチ処理の重複や、手動入力ミスがないかどうかを共有してもらいます。
  • クエリの共有設定: 複数のユーザーが同じクエリを利用している場合、自分だけ修正すると他のユーザーに影響が出ることがあります。クエリのコピーを作成して個人用に調整するか、全員で合意した上で修正する必要があります。
  • バックアップの確認: クエリを大幅に変更する前に、現在の正常な状態のクエリをエクスポート(「クエリのコピー」など)してバックアップを取っておきましょう。

よくある質問

Q1. 更新するたびに少しずつ重複行が増えていくのはなぜですか?
元データに新しい重複行が追加されている可能性が高いです。クエリ内で「重複の削除」ステップを追加するか、データソース側の管理を改善する必要があります。

Q2. キー列を確認しても問題が解決しません。他に何が考えられますか?
結合の種類(左外部、内部、右外部など)によっても結果の行数は変わります。また、データ型の不一致(数値と文字列など)が原因で正しく結合されず、重複が発生することもあります。一度、データ型を統一してみてください。

Q3. 管理者に相談すべきタイミングは?
データソース自体の重複が疑われる場合や、共有クエリを変更する必要がある場合は、必ず管理者に相談してください。特に、業務に影響する基幹データの場合は、単独で変更せずに依頼するのが安全です。

まとめ

Power Queryで更新時に重複行が増える問題は、キー列の設定を見直すことで大半が解決できます。まずは元データとクエリステップを検証し、結合・グループ化・重複削除のキー列が適切かどうかを確認してください。キー列の選択は一意性を基準に行い、必要に応じて複数列を組み合わせます。定期的にクエリの動作をチェックし、データソースの変化にも対応できるようにしておくことが重要です。


📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】

ADVERTISEMENT