整合性を維持しながらExcelの重複データを削除する8つの実証済みの方法

Excelでの正確なデータ分析には、重複レコードの管理が不可欠です。重複データは計算結果の不正確さを招き、ファイルサイズを肥大化させ、混乱の原因にもなります。Excelには、重複を削除するためのさまざまな機能が用意されています。
このチュートリアルでは、データを失うことなくExcelの重複を削除できる8つの方法を紹介します。
1. 「重複の削除」ツールを使う
Excelに標準搭載されている「重複の削除」機能は、直感的なインターフェースで素早く重複を取り除ける手軽なソリューションです。
手順:
- 見出しを含むデータ範囲を選択します。
- データタブ >> データ ツールグループ >> 重複の削除を選択します。
- チェックボックスのオン/オフで、どの列の組み合わせを重複判定の対象にするかを指定します。
- OKをクリックします。

ケース例:
- すべての列を選択した場合、1行目と完全に一致している6行目(OrderID 1002)のみが削除されます。
- 「1個の重複値が検出され、削除されました。」というメッセージが表示されます。

- OrderIDのチェックを外し、他の列をすべて選択した場合は以下のようになります。

- 5行目、6行目、8行目が重複として削除されます。

メリット:
- 視覚的なインターフェースで簡単に操作できる。
- データに対して直接実行できる。
- チェック対象の列を指定できる。
注意点:
- 重複行が完全に削除される(元に戻せない)。
- 各レコードの最初の出現だけが残る。
- バックアップがない限り、元データは復元できない。
プロのコツ: 元のデータセットを残しておきたい場合は、このツールを使う前に必ず別シートへコピーしておきましょう。
2. フィルターオプションの設定(固有のレコードのみ)
詳細フィルター(フィルターオプションの設定)を使えば、ユニークなレコードだけを別の場所へ抽出でき、より細かいコントロールが可能です。
手順:
- 見出し付きでデータを整理します。
- データタブ >> 並べ替えとフィルターグループ >> 詳細設定を選択します。
- 指定した範囲内の「リスト範囲」に A1:G12 を指定します。
- 抽出先に J1 を指定します。
- 重複するレコードは無視するにチェックを入れます。
- OKをクリックします。

重複行である6行目(OrderID 1002)は結果から除外されます。重複行を除いたデータがセルJ1以降にコピーされます。

応用例: OrderIDに関係なく、商品情報が重複している取引を特定したい場合は、次のようにします。
- 見出し(B1:G1)を使って検索条件範囲を設定します。
- この検索条件範囲を指定して詳細フィルターを適用し、同一の取引を検出します。
メリット:
- 元データが保持される。
- ユニークなレコードだけを別の場所へコピーできる。
- 必要に応じて複雑な検索条件にも対応できる。
注意点:
- 抽出結果用の空きスペースが必要。
- 元データが変わった場合は手動で再実行する必要がある。
3. Power Query(データの取得と変換)
Power Queryは、元データを保持したまま大規模データセットも処理できる強力なソリューションです。
手順:
- データを選択します。
- データタブ >> データの取得と変換グループ >> テーブル/範囲からを選択します。

- 比較対象の列を選択します(すべての列でも特定の列だけでも可)。
- ホームタブ >> 行の削除グループ >> 重複の削除を選択します。
- 閉じて読み込むをクリックすると、結果が新しいシートに出力されます。
例:
- すべての列を基準に重複を削除した場合、6行目(OrderID 1002)だけが削除されます。

- OrderIDを除外し、Customer、Product、Quantity、Price、Dateのみを基準にした場合、4行目と8行目の両方が重複として識別されます。

出力結果:

メリット:
- 更新可能な独立した結果セットを作成できる。
- 大規模データセットを効率的に処理できる。
- 元データが保持される。
- 繰り返し使えるプロセスの一部に組み込める。
- 高度なデータ変換機能を利用できる。
注意点:
- Power Queryの基本的な知識が必要。
- 非常に大きなデータセットではリソースを多く消費する。
- 複雑な重複排除ロジックには追加の手順が必要。
4. UNIQUE関数(Excel 365/2021)
新しいバージョンのExcelでは、UNIQUE関数を使って一意の値を動的に抽出できます。
重複行の削除:
- セルI1を選択し、次の数式を入力します。
数式:
スピル範囲としてすべての一意な行が返されます。このリストは元データを変更すると自動的に更新されます。重複行6行目を除く、データセット内のすべての一意な行が取得できます。

カテゴリ別の商品一覧: ProductとCategoryの一意な組み合わせを抽出します。
- 任意のセルを選択し、次の数式を入力します。
数式:
この数式は、一意な商品リストのスピル範囲を返します。

顧客の一覧表: 一意な顧客名のリストを取得します。
- 任意のセルを選択し、次の数式を入力します。
数式:
この数式は、一意な顧客名のスピル範囲を返します。

メリット:
- 元データの変更に応じて自動的に更新される動的な結果になる。
- 元データを破壊しない。
- 他の関数と組み合わせられる。
- 複数列にまたがる一意な組み合わせを返せる。
注意点:
- Excel 365およびExcel 2021でのみ使用可能。
- スピル配列数式が生成される(自動的に拡張される)。
- 作業スペースの設計が必要な場合がある。
- 非常に複雑な重複排除ロジックには対応できない。
5. 条件付き書式+フィルター
この視覚的なアプローチでは、まず重複をハイライト表示してからフィルターで絞り込みます。
手順:
- データ範囲を選択します。
- ホームタブ >> 条件付き書式 >> セルの強調表示ルール >> 重複する値を選択します。

- 書式スタイルとして「濃い赤の文字、明るい赤の背景」を選びます。
- OKをクリックします。
- Excelが列ごとに重複するセルをハイライト表示します。

- データタブ >> フィルターを選択します。
- セルの色でフィルターし、重複値または一意の値を表示します。
- 一意の値を表示する場合は自動を、重複値の場合は色を選択します。

一意の値の表示:

重複値の表示:

重複する行全体をハイライトしたい場合は、次のような数式ルールを使います。
- ホームタブ >> 条件付き書式 >> 新しいルールを選択します。
- 「数式を使用して、書式設定するセルを決定」を選択します。
- 次の数式を入力します。
=COUNTIFS($A$2:$A$12, $A2, $B$2:$B$12, $B2, $C$2:$C$12, $C2, $D$2:$D$12, $D2, $E$2:$E$12, $E2, $F$2:$F$12, $F2, $G$2:$G$12, $G2)>1
- 塗りつぶしの色を選択します。
- OKをクリックします。

メリット:
- 削除前に重複を視覚的に確認できる。
- すべてのデータが保持される。
- 選択的に削除できる。
- すべてのExcelバージョンで使える。
- 重複パターンの把握に役立つ。
注意点:
- 手順が複数ステップに及ぶ。
- 手動でのフィルター操作が必要。
- 自動更新されない。
- データ変更時はフィルターを再適用する必要がある。
6. ピボットテーブル方式
ピボットテーブルはデータを自然に集約するため、その過程で重複が効果的に排除されます。
手順:
- データを選択します。
- 挿入タブ >> ピボットテーブルを選択します。
- 既存のワークシートと配置場所を選択します。
- OKをクリックします。

- ピボットテーブルのフィールドリストから、次のフィールドを行エリアへドラッグします:
- Order ID、Customer、Product、Category、Date。
- 次のフィールドを値エリアへドラッグします:
- Quantity、Price。

重複していた行(3行目と6行目)が統合され、Quantityの合計(5+5=10)とPriceの合計(129.5+129.5=259)が表示されます。
重複する商品や顧客を表示したい場合は、OrderIDを除外します。
- まず行エリアからOrderIDを削除します。
- 作成されたピボットテーブルには、OrderID以外がすべて同じ取引だけが表示されます。

メリット:
- 重複データを単に削除するだけでなく、集約できる。
- 大規模データセットを効率的に処理できる。
- 数値を自動的に集計する。
注意点:
- ピボットテーブルの基本的な知識が必要。
- 抽出後に追加の書式設定が必要な場合がある。
- 数値はデフォルトで集計される(一部のフィールドでは望ましくない場合もある)。
7. COUNTIF補助列方式
この方法では補助列を追加し、各レコードの最初の出現を識別します。
手順:
- 「重複チェック」という見出しを付けた補助列(H列)を追加します。
- 数式を使って一意な行を識別します。
- 適切な値でフィルターし、一意なレコードだけを表示します。
完全な重複の識別:
- セルH2を選択し、次の数式を入力します。
数式:
=IF((COUNTIFS($A$2:$A$12, $A2, $B$2:$B$12, $B2, $C$2:$C$12, $C2, $D$2:$D$12, $D2, $E$2:$E$12, $E2, $F$2:$F$12, $F2, $G$2:$G$12, $G2))=1, "Unique","Duplicate")

この数式は、行全体が完全に一致する重複をマークします。
OrderIDを無視する場合: 取引内容に基づいて重複を識別したい場合は、次の数式を使います。
=IF((COUNTIFS($B$2:$B$12, $B2, $C$2:$C$12, $C2, $D$2:$D$12, $D2, $E$2:$E$12, $E2, $F$2:$F$12, $F2, $G$2:$G$12, $G2))=1, "Unique","Duplicate")

この数式では、取引内容が重複しているため、2、3、5、6、10行目が「Duplicate」とマークされます。
メリット:
- どのレコードが重複かを表示しながら、元データも保持できる。
- 複雑な条件にもカスタマイズできる。
- 重複している行を特定できる。
注意点:
- 補助列が必要。
- 複数列を扱うと数式が複雑になりがち。
- データ変更時に調整が必要。
- 新規データには数式をコピーする必要がある。
8. 数式による抽出(INDEX/MATCHまたはFILTER)
上級者向けには、INDEX、MATCHなどの関数を組み合わせて一意の値を抽出する方法があります。
INDEX/MATCHを使う(旧バージョンのExcel): 一意な顧客名を別の場所へ抽出します。
- 任意のセルを選択し、次の数式を入力します。
数式:
=IFERROR(INDEX($B$2:$B$12,MATCH(0,COUNTIF($I$1:I1,$B$2:$B$12),0)),"")

FILTERを使う(Excel 365/2021): すべての列を保持したまま一意なレコードを抽出します。
- 任意のセルを選択し、次の数式を入力します。
数式:
=FILTER(A2:G12, MATCH(A2:A12&B2:B12&C2:C12&D2:D12&E2:E12&F2:F12&G2:G12, A2:A12&B2:B12&C2:C12&D2:D12&E2:E12&F2:F12&G2:G12, 0)=ROW(A2:A12)-ROW(A2)+1)

メリット:
- 高いカスタマイズ性を持つ。
- 他の方法が使えない場面でも機能する。
- 複雑なロジックを組み込める。
- 元データを破壊しない。
- 元データの変更に応じて動的に更新される。
注意点:
- 高度なExcelの知識が必要。
- 実装とメンテナンスがやや複雑。
- 旧バージョンのExcelでは配列数式が必要な場合がある。
- 大規模データセットでは処理負荷が高くなることがある。
まとめ
Excelで重複を削除することは、危険でも難しくもありません。小規模なレポートから大規模なデータセットまで、Excelには重複を安全かつ柔軟に特定・除去する方法が複数用意されています。データの種類に応じて、これら8つの方法から最適なものを選べば、データを失うことなく重複を削除できます。最適な方法は、Excelのバージョン、データサイズ、そして数式派かツール派かによって異なります。この8つのテクニックをマスターすれば、どんな重複データのクリーンアップにも対応できるでしょう。特に元データを直接変更する方法を使う場合は、重複削除の前に必ずデータのバックアップを取ることを忘れないでください。
無料の高度なExcel演習問題と解答はこちら!
-
OutlookがOffice 365接続時にパスワードを繰り返し求める原因と対処法
OutlookがOffice 365への接続時にパスワードを繰り返し求められる問題とは Windows 10デバイスでMicrosoft Outlookを使用していて、Microsoft 365(旧Office 365)に接続するたびにパスワードの入力を何度も求められる——そんな経験はありませんか?この記事では、この不具合の原因と具体的な解決方法をわかりやすく解説します。 典型的な症状 Outlookプロファイルを作成しようとしたり、Microsoft 365のメールボックスに接続しようとしたりすると、クライアント画面に「接続を試みています…」というメッセージが表示され続け、資格情報の入力を何
-
Microsoft 365 for Businessの「アカウント通知」メッセージを無効にする方法
Microsoft Office 365 for Businessのサブスクリプションの一環としてWindows PCにOfficeソフトウェアをインストールしているユーザーは、組織が別のOffice 365 for Businessプランへ切り替える際、異なるバージョンのOfficeへの移行が必要になることがあります。移行をスムーズに行い、適切なタイミングでユーザーに知らせるため、Microsoftは1〜3日程度の猶予期間の経過後、以下のようなメッセージを表示します。 アカウント通知:お使いのOffice 365サブスクリプションには保留中の変更があります。アプリケーションを中断することなく