【Excel】Power Queryで重複データを削除する方法

【Excel】Power Queryで重複データを削除する方法
🛡️ 超解決

Excelで大量のデータを扱っていると、意図せず重複したデータが含まれていることがあります。

これらの重複データを手作業で削除するのは非常に手間がかかり、ミスも発生しやすいです。

Power Queryを使えば、この重複データの削除作業を自動化し、効率的にクリーンなデータを作成できます。

この記事では、Power Queryを使った重複データの削除方法を、具体的な手順とともに解説します。

【要点】Power Queryで重複データを削除する手順

  • Power Queryエディターでの重複削除: Excelのテーブルから重複行を削除する基本的な方法を説明します。
  • 複数列を基準にした重複削除: 特定の列の組み合わせで重複を判定し、削除する方法を解説します。
  • 重複しないデータのみ抽出: 重複しているデータを除外し、ユニークなデータのみを残す方法を説明します。

ADVERTISEMENT

Power Queryで重複データが発生する仕組み

Power Queryは、Excelなどの様々なデータソースからデータを取得し、整形・加工するための強力なツールです。

データソース側での入力ミス、複数のシステムからのデータ統合、またはデータ更新時の不整合など、様々な要因で重複データは発生します。

Power Queryの「重複の削除」機能は、指定した列の値が完全に一致する行を重複とみなし、最初の出現行を残してそれ以降を削除する、という仕組みで動作します。

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

Power Queryで重複データを削除する基本的な手順

ここでは、Excelファイル内のテーブルから、Power Queryを使って重複データを削除する最も基本的な手順を解説します。

ExcelテーブルからPower Queryにデータを取り込む

  1. Excelテーブルの準備
    重複データを削除したいデータが、Excelのテーブル形式になっていることを確認してください。テーブルになっていない場合は、「挿STRUCTION」タブ > 「テーブル」をクリックしてテーブルに変換します。
  2. Power Queryへのデータ読み込み
    テーブル内の任意のセルを選択した状態で、「データ」タブ > 「テーブルまたは範囲から」をクリックします。Excelのバージョンによっては、「データの取得」グループにある「テーブル/範囲から」をクリックします。
  3. Power Queryエディターの起動
    「テーブルの作成」ダイアログが表示されたら、範囲が正しく選択されていることを確認し、「OK」をクリックします。Power Queryエディターが起動し、データが表示されます。

ADVERTISEMENT

Power Queryエディターで重複データを削除する

  1. 重複を削除したい列の選択
    Power Queryエディターのプレビュー画面で、重複を削除したい対象の列ヘッダーをクリックして選択します。
  2. 重複削除機能の実行
    「ホーム」タブの「行の削除」グループにある「重複の削除」をクリックします。
  3. 重複削除の完了
    選択した列の値が重複している行が自動的に削除され、ユニークなデータのみが残ります。
  4. 変更の適用と読み込み
    「ホーム」タブの「閉じて読み込む」グループにある「閉じて読み込む」をクリックします。重複が削除されたデータが新しいExcelシートにテーブルとして読み込まれます。

複数列を基準に重複データを削除する方法

単一の列だけでなく、複数の列の値の組み合わせで重複を判定したい場合もあります。例えば、「商品ID」と「注文日」が両方一致する行を重複とみなしたい場合などです。

複数列を選択して重複を削除する手順

  1. Power Queryエディターでの複数列選択
    Power Queryエディターで、重複判定の基準としたい複数の列ヘッダーを、Ctrlキーを押しながらクリックして選択します。
  2. 重複削除機能の実行
    選択した状態で、「ホーム」タブの「行の削除」グループにある「重複の削除」をクリックします。
  3. 複数列基準での重複削除完了
    選択したすべての列の値が一致する行のみが重複とみなされ、削除されます。
  4. 変更の適用と読み込み
    「ホーム」タブの「閉じて読み込む」から、結果をExcelに読み込みます。

重複しないデータのみを抽出する方法

重複を削除するのではなく、重複しているデータを除外して、ユニークなデータだけを残したい場合があります。例えば、顧客リストで一度しか購入履歴がない顧客だけを抽出したい場合などです。

重複しない行を抽出する手順

  1. Power Queryエディターでの列選択
    重複判定の基準としたい列、または複数の列を選択します。
  2. 重複しない行の抽出機能
    列ヘッダーの右側にあるフィルターボタン(▼)をクリックします。
  3. 「重複しない値」の選択
    表示されるメニューから「重複しない値」を選択します。
  4. 抽出結果の確認
    選択した列で重複していない値を持つ行のみが抽出され、プレビュー画面に表示されます。
  5. 変更の適用と読み込み
    「ホーム」タブの「閉じて読み込む」から、結果をExcelに読み込みます。

Power Queryの高度な重複データ処理

Power Queryでは、標準の「重複の削除」機能以外にも、M言語(Power Queryの関数群)を駆使することで、より複雑な重複データ処理が可能です。

M言語を使った重複データ処理の例

例えば、「特定の列が重複している行のうち、最新のレコードのみを残したい」といった要件の場合、標準機能だけでは対応が難しいことがあります。

このような場合は、「グループ化」機能と「最大/最小」などの集計関数を組み合わせたり、カスタム列を追加してソートしてから重複を削除したりといった高度なテクニックが必要になります。

M言語を直接編集できる「詳細エディター」を利用することで、これらの複雑な処理を記述できます。

Power Queryの重複削除機能における注意点

Power Queryの重複削除機能は非常に便利ですが、いくつか注意すべき点があります。

大文字・小文字の区別

デフォルトでは、Power Queryの重複削除は、大文字と小文字を区別しません。

例えば、「Apple」と「apple」は、Power Query上では同じ値として扱われます。もし、大文字・小文字を区別して重複を判定したい場合は、列を複製し、片方の列で大文字・小文字を変換するステップ(例:「テキスト操作」>「大文字」または「小文字」)を追加してから、それらの列を基準に重複削除を行う必要があります。

空白文字・全角半角の扱い

意図しない空白文字(スペース、タブなど)の混入や、全角と半角の混在も、重複とみなされない原因となります。

重複削除を実行する前に、「トリム」(前後の空白削除)や「クリーン」(改行コードなどの削除)、「テキストの置換」(全角を半角に置換など)といった前処理を適用しておくことが重要です。

データ型による影響

数値データと文字列データが混在している場合、意図しない結果になることがあります。

例えば、「123」という数値と「123」という文字列は、Power Queryでは異なるデータ型として扱われるため、重複とみなされない可能性があります。重複削除を行う前に、各列のデータ型を適切に設定しておくことを推奨します。

削除される行の順序

Power Queryの「重複の削除」機能は、条件に合致する最初の行を残し、それ以降の重複行を削除します。

どの行が残るかは、データが読み込まれた際の順序に依存します。もし、特定の基準(日付など)で並べ替えた上で、最新または最古のレコードを残したい場合は、重複削除の前に並べ替え(ソート)のステップを追加する必要があります。

Power QueryとExcel標準機能での重複削除の比較

Excelには、Power Query以外にも重複データを削除する機能があります。ここでは、両者の違いを比較します。

項目 Power Query Excel標準機能
処理の自動化 ◎ 繰り返し処理を自動化できる △ 手動での実行が必要
データソース Excelファイル、データベース、Webなど多様 Excelシート内のデータ
操作の履歴 ◎ 全てのステップが記録され、修正・再実行が容易 △ 履歴が残らず、元に戻すのが難しい場合がある
複数列基準 ◎ 容易に設定可能 ◎ 設定可能
データ量への対応 ◎ 大量データに強い △ データ量が多いと処理が遅くなる
柔軟性 ◎ 高度な加工・整形が可能 △ 基本的な重複削除のみ
学習コスト △ 初心者にはやや敷居が高い ◎ 容易に理解できる

まとめ

Power Queryを使えば、Excelの重複データを効率的かつ自動的に削除できます。

列を選択して「重複の削除」をクリックするだけで、クリーンなデータセットを素早く作成可能です。

複数列を基準にした重複削除や、重複しないユニークなデータのみを抽出する操作も簡単に行えます。

今後は、このPower Queryの重複削除機能を活用し、データの前処理にかかる時間を大幅に削減していきましょう。

さらに複雑なデータクリーニングが必要な場合は、Power Queryの「グループ化」機能やM言語の活用も検討してみてください。

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

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

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

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