Excelで重複を削除するには、データを選択してデータ > 重複の削除をクリックし、一致すべき列を選んでOKを押します。Excelは繰り返し出てくる行をすべて削除し、最初の行を残します。元のリストを残してきれいなコピーを作るなら、空いている列に=UNIQUE(A2:A9)と入力します。
| A | B | C | |
|---|---|---|---|
| 1 | Customer | Without duplicates | |
| 2 | Ana | Ana | |
| 3 | Ben | Ben | |
| 4 | Cara | Cara | |
| 5 | Ana | Dan | |
| 6 | Dan | Eve | |
| 7 | Ben | ||
| 8 | Ana | ||
| 9 | Eve |
A列の強調されたセル(5、7、8行目)が重複で、重複の削除で削除される行です。C列はそれを除いたリストで、Ana、Ben、Cara、Dan、Eveです。A6をAnaに変えると、強調もリストも更新されます。ボタンならもう一度実行する必要があります。
「重複の削除」ボタンで重複を削除する
- データの中のどれかのセルをクリックします。Excelは周りのまとまり全体を選択します。シートの一部だけを対象にするなら、その範囲を自分で選択します。
- データ > 重複の削除(「データツール」グループ)を選びます。Windowsではキーの順番はAlt、A、Mです。Excelのテーブルの中なら、同じボタンがテーブルデザインタブにもあります。
- 1行目に列名があるなら、先頭行をデータの見出しとして使用するにチェックを入れたままにして、見出しの行が比べられないようにします。
- 2つの行が重複とみなされるためにすべて一致すべき列にチェックを入れます。すべての列にチェックを入れると、完全に同じ行だけが削除されます。
- OKを押します。Excelは、見つかって削除された重複する値の数と、残った一意の値の数を表示します。
ボタンがすること、押す前に知っておくべきこと:
- 重複はその場で削除され、下のセルが上に移動します。移動するのは選択した列だけで、選択範囲の外のセルはそのまま残るので、表の幅全体を選択しないと行がずれます。結果が間違っていたら、すぐにCtrl+Z(MacではCmd+Z)で元に戻します。
- 上から見て最初のものを残します。
- 大文字と小文字は区別しません。
anaとAnaは重複です。 - 値は表示されているとおりに比べられます。あるセルで
3/15/2026、別のセルで15-Mar-26と表示された同じ日付は、2つの違う値として数えられます。
ボタンは何を削除したかの記録を残しません。それが大切なときは、先に数式で重複に印を付け、確認してから削除します。
削除する前に重複を探す
印の列があれば、どの行が重複かがわかります。=COUNTIF($A$2:A2,A2)>1は、上からこの行までの行で、この行の値を数えます。範囲の始まり$A$2は固定され、終わりのA2は固定されていないので、数式を下にコピーすると範囲が伸びていきます。TRUEは「この値はすでに上に出てきた」という意味で、重複の削除で削除される行とちょうど同じです。
| A | B | C | |
|---|---|---|---|
| 1 | Customer | Repeat? | Times in list |
| 2 | Ana | FALSE | 3 |
| 3 | Ben | FALSE | 2 |
| 4 | Cara | FALSE | 1 |
| 5 | Ana | TRUE | 3 |
| 6 | Dan | FALSE | 1 |
| 7 | Ben | TRUE | 2 |
| 8 | Ana | TRUE | 3 |
| 9 | Eve | FALSE | 1 |
B5をクリックしてください。範囲は$A$2:A5でAnaが2回入っているので、B5はTRUEです。C列は固定の範囲$A$2:$A$9を使うので、すべての出現を数えます。Anaの行はどれも3を、Cara、Dan、Eveは1を表示します。最初のものも含めて重複のすべてのコピーを探すならC列を、余分なものだけを探すならB列を使います。
印の付いた行を手で削除するには、データ > フィルターをオンにしてB列をTRUEで絞り込み、表示された行を選択して右クリックし、行の削除を選んでからフィルターを解除します。印を付ける代わりに重複に色を付ける方法は重複に色を付けるを参照してください。
2つの列を基準に重複を削除する
NameとCityの両方が繰り返されるときだけ、2つの行は重複です。「重複の削除」のダイアログでは両方の列にチェックを入れます。数式なら、UNIQUEに両方の列を渡します。=UNIQUE(A2:B8)は行全体を比べます。C列の印の列は、両方の条件が一致する行を数えるCOUNTIFSで同じことをしています。
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Name | City | Repeat? | Unique rows | |
| 2 | Ana | Lima | FALSE | ||
| 3 | Ben | Oslo | FALSE | ||
| 4 | Ana | Rome | FALSE | ||
| 5 | Ben | Oslo | TRUE | ||
| 6 | Cara | Lima | FALSE | ||
| 7 | Ana | Lima | TRUE | ||
| 8 | Dan | Rome | FALSE |
やってみよう: E2で、NameとCityの組み合わせをそれぞれ1回ずつ並べてください。
Anaは3回出てきますが、重複は1行だけです。RomeのAnaはLimaのAnaとは別の行だからです。C5とC7がTRUEになります。答えは2列の幅でスピルするので、E列とF列が空いている必要があります。
1つの列を基準に重複を削除し、ほかの列も残す
1つの列だけで決まる(都市にかかわらず顧客ごとに1行)ときは、ダイアログでその列だけにチェックを入れます。Excelは各名前の最初の行を、そのすべての列と一緒に残します。数式なら、名前が初めて出てくる行を残します。MATCH(A2:A8,A2:A8,0)は各名前が最初に出てくる位置を返し、それが行自身の位置と等しくなるのは最初の出現のときだけです。
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Name | City | Name | City | |
| 2 | Ana | Lima | Ana | Lima | |
| 3 | Ben | Oslo | Ben | Oslo | |
| 4 | Ana | Rome | Cara | Lima | |
| 5 | Ben | Oslo | Dan | Rome | |
| 6 | Cara | Lima | |||
| 7 | Ana | Lima | |||
| 8 | Dan | Rome |
結果は、LimaのAna、OsloのBen、LimaのCara、RomeのDanです。Anaの後の都市(Rome、Lima)は、ボタンと同じように除かれます。
並べ替えたリストと、1回だけ出てくる値
UNIQUEをSORTで囲むと、きれいなリストがアルファベット順になります。UNIQUEの3つ目の引数exactly_onceは別のことをします。TRUEにすると繰り返されない値だけを返すので、重複のある値は最初のコピーも含めて完全に消えます。重複の削除にはこのオプションはありません。
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Customer | Sorted | Only once | ||
| 2 | Eve | Ana | Cara | ||
| 3 | Ben | Ben | Dan | ||
| 4 | Cara | Cara | |||
| 5 | Ana | Dan | |||
| 6 | Dan | Eve | |||
| 7 | Ben | ||||
| 8 | Ana | ||||
| 9 | Eve |
C2はAna、Ben、Cara、Dan、Eveをスピルします。Eve、Ben、Anaはそれぞれ2回出てくるので、E2はCaraとDanだけを返します。降順にするには=SORT(UNIQUE(A2:A9),,-1)を使います。by_colを含め、関数そのものについてはUNIQUEのページで詳しく説明しています。
重複がいくつあるか数える
重複の削除で削除される行の数は、行数から一意の値の数を引いたものです。ROWS(A2:A9)は行を、COUNTA(UNIQUE(A2:A9))は重複を除いた顧客を数えます。重複を除いた値そのものを数えるには、重複を除いた件数を数えるを参照してください。
| A | B | C | |
|---|---|---|---|
| 1 | Customer | Repeats | |
| 2 | Ana | ||
| 3 | Ben | ||
| 4 | Cara | ||
| 5 | Ana | ||
| 6 | Dan | ||
| 7 | Ben | ||
| 8 | Ana | ||
| 9 | Eve |
やってみよう: C2で、A2:A9のうち上の行の重複になっている行がいくつあるかを数えてください。
答えは3です。上の節の印の列がすでにあるなら、=COUNTIF(B2:B9,TRUE)でも同じ重複を数えられます。
Excel 2019以前で重複を除く
UNIQUE、SORT、FILTERにはExcel 2021かMicrosoft 365が必要です。Excel 2019以前で元のデータを残す方法は2つあります:
- フィルターの詳細設定。 列を選択してデータ > 並べ替えとフィルター > 詳細設定を開き、指定した範囲を選んで抽出範囲に貼り付け先のセルを指定し、重複するレコードは無視するにチェックを入れてOKを押します。コピーは固定のリストなので、データが変わったらフィルターをもう一度実行します。
- 下にコピーする数式。 次の数式をC2に入れ、古いExcelでは配列数式なのでCtrl+Shift+Enter(MacではCmd+Shift+Enter)で確定し、空白が表示されるまで下にコピーします:
=IFERROR(INDEX($A$2:$A$9,MATCH(0,COUNTIF($C$1:C1,$A$2:$A$9),0)),"")
各行は、A2:A9の中でまだ上のリストにない最初の値を探します。Googleスプレッドシートにも=UNIQUE(A2:A9)がありますが、そこでは大文字と小文字を区別するので、anaとAnaの両方が残ります。
重複の削除で一部の重複が残る理由
同じに見える2つのセルも、片方の末尾にスペースがあれば重複ではありません。重複の削除もUNIQUEも、文字列を1文字ずつ比べる(大文字と小文字だけは無視する)ので、Anaと末尾にスペースのあるAna は2つの項目のまま残ります。
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Customer | UNIQUE | UNIQUE of TRIM | ||
| 2 | Ana | Ana | Ana | ||
| 3 | Ana | Ana | Ben | ||
| 4 | Ben | Ben | Cara | ||
| 5 | Ben | Ben | |||
| 6 | Cara | Cara |
スペースでコピーが違うものになるので、C2は5つの項目をすべてスピルします。TRIMは両端のスペースを取り除くので、E2はAna、Ben、Caraを返します。取り込んだデータでボタンを使う前に、=TRIM(A2)を下にコピーした列を作り、それを値として元の列に貼り付けてから(ホーム > 貼り付け > 値の貼り付け)、重複を削除します。Webページからコピーしたデータには、TRIMでは取り除けないノーブレークスペースが含まれていることもあります。=TRIM(SUBSTITUTE(A2,CHAR(160)," "))なら両方に対応できます。
よくある質問
Excelで重複を削除するには?
データの中のセルをクリックし、データ > 重複の削除 を選び、行が重複とみなされるためにすべて一致すべき列にチェックを入れてOKを押します。Excelは各行の最初のものを残し、ほかを削除します。
元のデータを消さずにExcelで重複を除くには?
空いている列で数式を使います。=UNIQUE(A2:A9)は各値を1回ずつ並べ、A2:A9はそのまま残します。UNIQUEにはExcel 2021かMicrosoft 365が必要です。それより古いバージョンでは、データ > 並べ替えとフィルター > 詳細設定 で重複するレコードは無視すると指定した範囲を使います。
重複の削除はどの重複を残しますか?
選択範囲の上から数えて最初のものです。代わりに最後のものを残すには、残したい行が先に来るようにデータを並べ替えてから重複の削除を実行します。
重複の削除ですべての重複が削除されないのはなぜですか?
値がまったく同じではないからです。末尾のスペース(Ana とAna)、ノーブレークスペース、2つの違う表示形式で表示された同じ日付があると、2つのセルは同じに見えて実は違います。先に=TRIM(A2)のような作業列できれいにしてください。大文字と小文字は関係なく、anaとAnaは重複として扱われます。
Excelで重複を数えるには?
=COUNTIF($A$2:$A$9,A2)は、A2の値が何回出てくるかを返します。重複の削除で削除される行数は=ROWS(A2:A9)-COUNTA(UNIQUE(A2:A9))です。