ADVERTISEMENT

【Excel】Power Queryで重複削除後に必要な行まで消える時の確認手順

【Excel】Power Queryで重複削除後に必要な行まで消える時の確認手順
🛡️ 超解決

Power Queryの重複削除機能は、テーブル内の重複行を取り除く便利な機能ですが、意図しない行まで削除されてしまうケースがあります。「重複を削除したら、必要なデータまで消えてしまった」という経験をお持ちの方も少なくないでしょう。特に、複数の列をキーとして設定する場合や、データの前処理段階での誤った操作が原因で、本来残すべき行が消えてしまうことがあります。本記事では、Power Queryで重複削除後に必要な行が失われる現象の原因を切り分け、正しい確認手順と対策を解説します。

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

  • 最初に見る場所: 重複削除のキー列設定が正しいかどうかを確認します。複数列を指定している場合、すべての列が一致する行だけが重複とみなされるため、意図より多くの行が削除される可能性があります。
  • 切り分けの軸: データの前処理(結合、ピボット解除など)で行数が変わっていないか、Power Queryのステップ履歴でどの段階で行が失われたかを特定します。
  • 注意点: 元のデータを直接変更せず、Power Queryクエリの設定を確認・修正するようにしてください。会社PCで管理者権限がない場合は、クエリの編集画面から設定を変更できます。

ADVERTISEMENT

Power Queryの重複削除の動作と問題が発生するメカニズム

Power Queryの「重複の削除」機能は、選択した列をキーとして、値が完全一致する行を「重複」と判断し、最初の行を残してそれ以降を削除します。この動作はExcelの「重複の削除」と同様ですが、Power Queryでは複数の前処理ステップが積み重なるため、想定外の結果を招くことがあります。

例えば、ある列で重複を削除したつもりが、実際には別の列もキーに含まれていたために、ユニークな値を持つ行まで削除されるケースがあります。また、データの結合やグループ化の前後で行数が変化し、削除対象が増えることも問題です。さらに、データ型の違い(数値と文字列など)が原因で、見た目は同じでもPower Queryが異なる値と認識し、重複と判定されないこともあります。

このような問題を解決するには、まずクエリの各ステップで行数がどのように変化するかを把握し、重複削除のキー設定が意図通りか確認する必要があります。

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

確認手順:重複削除後に必要な行が消えた場合の切り分け方法

以下の手順に沿って、問題の原因を特定しましょう。Power Queryエディターを開き、該当クエリの各ステップを確認します。

  1. ステップごとの行数を確認する
    Power Queryエディターの左側にある「適用したステップ」ペインで、各ステップをクリックするとプレビューが更新されます。ステップ名の横に表示される行数(例:「XX行」)が、その時点のレコード数を示します。重複削除ステップ前後の行数を比較し、どの段階で行数が減少したかを特定してください。
  2. 重複削除の設定を確認する
    「重複の削除」ステップをダブルクリックするか、右クリックから「設定の編集」を選択します。表示されたダイアログで、どの列がキーとして選択されているかを確認します。複数の列がチェックされている場合、それらすべての列の値が一致する行だけが重複とみなされます。
  3. キー列のデータ型を確認する
    キー列のデータ型が適切かどうか確認します。数値として扱われるべき列が文字列になっていると、見た目は同じでも異なる値と判断されることがあります。列のデータ型は、列見出しの左側にあるアイコンで確認できます。必要に応じて「データ型の変更」ステップを追加してください。
  4. 先行ステップで行数が増加していないか確認する
    例えば、「列のピボット解除」や「行の追加」などで行数が増えていると、重複削除の対象も増えます。特に、ピボット解除は縦持ちに変換するため行数が急増します。先行ステップの結果を確認し、不必要な行が含まれていないかチェックしてください。
  5. グループ化や集計の影響を調べる
    もしグループ化のステップがある場合は、その後に重複削除を行うと、グループ化後の集計行が削除されることもあります。グループ化の設定を確認し、必要な集計内容かどうか見直します。

よくある失敗パターンとその対策

パターン1:不要な列をキーに含めてしまっている

「重複の削除」ダイアログで、デフォルトですべての列が選択されていることがあります。そのため、目的のキー列以外も含まれ、結果的に多くの行が削除されます。対策:重複削除の設定を編集し、本当に重複を判定したい列だけにチェックを入れ直します。通常は1~2列が適切です。

パターン2:前処理で意図せず重複が発生している

データを結合したり、列を追加したりする過程で、同じ行が複数存在する状態になることがあります。例えば、複数のテーブルを結合して新しくできた行が、元のデータと重複しているケースです。対策:重複削除の前に、データがどのような状態かを「行の重複チェック」などのカスタム列で確認します。または、結合条件を見直して、重複が発生しないようにします。

パターン3:データ型の不一致で重複と認識されない

キー列に「123」(数値)と「123」(文字列)が混在している場合、Power Queryはこれらを別の値と判断し、重複削除が行われません。ただし、反対に必要な行が削除されるケースもあります。対策:重複削除前に、該当列のデータ型を統一します。例えば、「データ型」を「テキスト」または「整数」に変更します。

失敗パターン 原因 対策
キー列の選択ミス すべての列が選択されている 必要な列だけに絞る
前処理後の重複 結合やピボットで重複行が発生 結合条件を見直す
データ型の不一致 数値と文字列の混在 データ型を統一する
グループ化後の重複削除 集計行が削除される グループ化の前に重複削除を行う

ADVERTISEMENT

管理者に確認すべき情報と設定

会社の共有PCや管理された環境でPower Queryを使う場合、以下の点を管理者に確認してください。Power Queryのアドインが有効か、またはデータ接続に制限がないかなど、組織のポリシーに依存する部分があります。

  • Power Queryアドインの有効状態: Excelのオプションから「アドイン」を確認し、Power Queryが有効になっているかどうかを管理者に問い合わせてください。無効になっている場合は、社内ポリシーで許可されているか確認が必要です。
  • データゲートウェイや接続設定: 外部データソースから読み込んでいる場合、ゲートウェイや認証の設定が原因でデータが期待通り取得できず、重複削除の結果が変わることがあります。管理者に接続情報を確認してもらいましょう。
  • Power Queryエディターの言語設定: 地域設定により、小数点や日付の扱いが異なり、重複判定に影響する可能性があります。必要に応じて管理者にロケール設定を確認してください。

よくある質問(FAQ)

Q1. 重複削除後に残す行を決めることはできますか?
はい、Power Queryでは「重複の削除」は最初の行を残しますが、「グループ化」や「集計」を使って任意の行を残すことが可能です。例えば、グループ化で各グループの最初の行だけを取得する、などの方法があります。

Q2. 重複削除の代わりに「重複の保持」はできますか?
標準機能では「重複の削除」のみですが、逆に重複している行だけを抽出したい場合は、「行のグループ化」でカウントが2以上の行をフィルターするなどの工夫が必要です。

Q3. 元のデータを変更せずに重複削除結果を確認するにはどうすればいいですか?
Power Queryは読み取り専用でデータを扱います。クエリのプレビュー画面で結果を確認し、問題がなければ「閉じて読み込む」でワークシートに出力できます。元のファイルは変更されません。

まとめ

Power Queryで重複削除後に必要な行が消える問題は、キー列の設定ミスや前処理の影響が主な原因です。まずはクエリの各ステップで行数を確認し、どの段階で行が失われたかを特定することが重要です。次に、重複削除のキー列が適切か、データ型が統一されているかをチェックしてください。問題が解決しない場合は、管理者にPower Queryの環境設定を確認してもらうとよいでしょう。本記事の手順を参考に、正確なデータ抽出を実現してください。


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

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

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

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

ADVERTISEMENT