
上図のように重複した部分を1行だけ残して削除したいと思ったことがあるかと思います。
この記事では、下記のような色々なパターンで重複削除をする方法を解説いたします。
- 最初の1行だけ残して重複を削除
- 最後の1行だけ残して重複を削除
- 大文字小文字を区別して重複を削除
- 複数列にわたって重複を削除
- 重複削除した場合の注意点
-著者情報-
名前:Utatane
Excel使用歴:15年以上
ひとこと:初心者だった当時に戻った気持ちになって解説いたします
※わかりやすさを重視しております。厳密には解釈が異なる場合がありますことをご了承ください。
実演パソコンのスペック(ソフトやバージョンによっては、表示や結果が異なる場合があります)
- OS:Windows11 Home 64bit
- Excel:Microsoft Office Home and Business 2021
Excelデータの重複を削除した場合の注意点
すぐにでも重複削除方法をお探しかと思いますが、ちょっと待ってください。
重複を削除することで、取り返しがつかない事態に陥ることもあります。
まず初めに、下記の2つを頭に入れておきましょう。
- 元に戻せない場合がある
- セル参照(数式)に注意
元に戻せない場合がある
これから重複削除の方法をいくつか紹介いたしますが、方法によってはデータを元に戻すことができない場合があります。
重複削除後に保存してしまった場合、二度と復元できませんので注意しましょう。
実行前に必ずデータのバックアップを取っておいてください。
セル参照(数式)に注意
関数や数式などでセルが参照されている場合は注意が必要です。
参照先のセルが削除された場合、エラーとなってしまう場合があります。

出力結果などにも影響することがありますので注意してください。
Excelデータの重複を削除する方法
重複削除には「重複行を1つだけ残して他を削除」する方法と、「重複している行を全て削除」する方法があります。
まずは比較的需要のある「重複行を1つだけ残して他を削除」する方法を解説いたします。
重複行を1つだけ残して他を削除
重複行を1つだけ残して他を削除する方法もいくつかありますが、
まずは最も簡単にできる方法を紹介いたします。
(ソフトやバージョンによってはできないこともあります)
重複削除機能を使う

上図が元データです。
重複削除をしたいセルを範囲選択したら、
上部メニュー「データ」→「重複の削除」をクリックします。

「重複の削除」画面が開きますので、右下の「OK」をクリックして完了です。

重複行が最初の1つだけを残して他は削除されました。

最初でなくても、どれかが残るだけでOKという場合ならコレが一番簡単です。
最後だけを残す方法もあります(後述)
しかしながら、この方法では大文字・小文字が区別されません。
(「a」と「A」は同じものとして処理される)
大文字小文字を区別する方法もあります(後述)
複数列に適用する
重複の削除機能を複数列に適用するには、まず対象のセルを範囲選択します。

前項と同様に、上部メニュー「データ」→「重複の削除」をクリックし、
「重複の削除」画面が開いたら、OKをクリックします。

重複していた佐藤花子さんが1つだけ残りました。

このように、対象の列を連結して一致しているものが1つだけ残ります。
COUNTIF関数を使う
重複の削除機能が無い場合は、こちらの方法を使いましょう。

前項同様、A列に重複削除したいデータが入っています。
では、B列に作業列を追加しましょう。
B1に「作業」などと入力してください。

次に、B2セルに下記の数式を入力しましょう(コピペ推奨)
=IF(COUNTIF($A$2:A2,A2)>1,"削除","残す")
COUNTIFについては後述

あとは下までコピーします。

B列に「削除」「残す」が表示されたかと思います。
削除と表示された行を削除すれば、重複削除が完了します。
作業列(B列)は必要ないので削除しましょう。

これで「重複の削除機能」同様、最初の1行だけを残して他を削除できます。
【COUNTIFとは】
COUNTIFは重複が確認できる関数です。
▼基本構文
=COUNTIF(範囲, 重複を確認したいセル)
▼使用例
=COUNTIF($A$2:$A$7, A2)
上記の使用例では、A2~7の範囲に、A2と同じ値のセルがいくつあるか教えてくれます。
(合計3つあったとしたら3、1つ(重複なし)だったら1というように数値で表示される)

本編の例では、A2から現在の行まで、重複無し(1)なら残す、重複あり(1を超える場合)なら削除と表示させています。
=IF(COUNTIF($A$2:A2,A2)>1,"削除","残す")
最後の1行だけを残して他を削除
場合によっては、最後の1行だけを残したい時もあるかと思います。
そんなときは、B2セルに下記の数式を入力しましょう(コピペ推奨)
=IF(COUNTIF(A2:$A$10,A2)>1,"削除","残す")
これで、重複行の最後の1つだけ残して他を削除することができます。

大文字小文字を区別して削除
これまで紹介した方法は、いずれも大文字・小文字が区別されません。
例えば、「A」と「a」は同じものとして処理されます。

大文字・小文字を区別して処理したい場合は、下記の数式をB2に入力しましょう。
=IF(SUM(--EXACT(A2, A$2:A2))>1,"削除","残す")

これで、大文字・小文字が区別され、重複削除を実行できます。
EXACTは、2つの文字列が完全一致するかを判定する関数です。
(大文字小文字が区別されます)
完全一致していればTRUE、していなければFALSEと表示されます。
「–」は「TRUEやFALSE」を「1か0」に変換するテクニックです。
TRUEやFALSEでは計算ができないため、この方法を使っています。
SUMは、数値を合計する関数です。
完全一致のセルが合計され、1を超えると削除と表記されます。
行が進むにつれ、対象の範囲は広がるため、最初のセル(初登場)は1、2番目のセル(重複)は2と表示されるようになります。
重複した行をすべて削除
重複した行をすべて削除したい場合もあるかと思います。
例えば、1日2回以上応募したら失格となり、応募権利をはく奪するといった場合などです。
重複した行をすべて削除するには、下記の数式B2セルに入力してください。
=IF(COUNTIF(A:A, A2)>1, "削除", "残す")

重複した行はすべて「削除」と表示されます。
大文字小文字は区別されませんのでご注意ください。
最後に
Excelデータの重複削除について解説いたしました。
当ブログでは、VBAマクロやPythonなど、時間を生み出すプログラミング術を公開しております。
少し難易度は上がりますが、マクロを使えば一瞬で重複行を削除することができます。
さらに難易度が上がりますが、Pythonを使えばもっと楽に重複削除を行えます。
これらの記事がわかりやすいと感じた方は、他の記事も読んでいってください。
最後までお読みいただき、ありがとうございました。がんばってください!