「名簿の重複を消したら、残すはずの取引先まで消えていた」「100行あったのに60行に減り、どれが消えたのか分からない」。Excelの「重複の削除」は便利な反面、こうした“消えすぎ”の事故が起きやすい機能ですよね。
原因は、重複の削除の判定ルールにあります。Excelは重複を「セルの値」ではなく「セルに表示されている内容」で見分けます。さらに「チェックした列だけで比べて行全体を消す」「最初に出てきた行を残す」ルールが重なり、思わぬ行が消えるのです。
この記事では、重複の削除で違う値まで消える原因を症状別に整理します。消えるはずの行が残るケースや条件付き書式の色が付かない問題、消す前の確認方法と戻し方までまとめました。
対応バージョン: 重複の削除は、Microsoft 365 / Excel 2024・2021・2019 などで使えます。Excel for the web(Web版)でも利用可能です。記事内で紹介する UNIQUE 関数は、Microsoft 365 / Excel 2024・2021 / Web版が対象。Excel 2019 以前では使えません。
症状から原因を逆引きする
まずは自分の症状に近い行を探してください。対処の詳細は、各セクションで順番に解説します。
| 症状 | 主な原因 | 対処 |
|---|---|---|
| 行が減りすぎた・別の人の行まで消えた | チェックした列だけで比較している | 判定に使う列をすべてチェックする |
| 小数や日時の行が消えた | 表示形式で丸めた結果が同じ表示になっている | 桁数・時刻を表示してから実行する |
| 「ABC」と「abc」の片方が消えた | 大文字小文字・全角半角の扱い | EXACT・COUNTIF で事前に確かめる |
| 残したい最新の行が消えた | 最初に出現した行が残る仕様 | 並べ替えてから実行する |
| 同じはずの行が消えない | 表示形式・スペース・データの種類の違い | 表示形式をそろえる・TRIM で整える |
| 重複の削除が実行できない | 小計・アウトラインが残っている | 小計とアウトラインを先に解除する |
| 条件付き書式の色が付かない・付きすぎる | 判定方法の違い・データの種類の混在 | COUNTIF の数式ルールに切り替える |
まず結論|Excelの重複の削除は「セルの値」でなく「表示内容」で比べる
重複の削除で違う値まで消えるとき、最初に押さえたいのがExcelの判定ルールです。ここが分かれば、多くの事故は原因の見当がつきます。
公式仕様の3点(表示内容で判定/最初の出現が残る/選択列の組み合わせで判定)
Microsoft の公式サポートページには、重複の比較について次のように書かれています。「重複する値の比較は、セルに格納されている基になる値ではなく、セルに表示される内容に依存します」。
公式が示している例は日付。同じ日付でも、片方が「3/8/2006」、もう片方が「Mar 8, 2006」と表示されていれば、別の値として扱われます。つまり判定の基準は見た目というわけです。
あわせて押さえたい仕様は、次の3点です。
- 表示内容で比較する: セルに入っている値そのものではなく、表示されている文字で比べる
- 最初に出現した行が残る: 重複が見つかると、リストの上にある行を残し、それ以外を削除する
- 選択した列で判定し、行全体を消す: チェックした列だけで重複を判断し、見つかった行はほかの列ごと削除される
3つ目は特に見落とされがち。判定に使っていない列に違う情報が入っていても、その行は丸ごと消えてしまいます。
重複の削除の基本操作
基本の操作も確認しておきましょう。手順は次のとおりです。
- 重複を削除したい表の中のセルを1つ選択します。
- [データ] タブの [重複の削除] をクリック。
- 見出しのチェックボックスと、判定に使う列のチェックを確認します。
- [OK] をクリックすると、重複と判定された行が削除されます。
削除が終わったら、残った行数が想定どおりかを必ず確かめてください。想定より少なければ、すぐに Ctrl+Z で元に戻せます(戻し方は後半で詳しく扱います)。
症状別|重複の削除で違う値まで消える原因
ここからは「消えすぎ」側の症状を見ていきます。どれも、先ほどの3つの仕様から説明がつくものばかりです。
表示形式で丸めた小数が同じ扱いになる
単価や比率の列に「小数点以下2桁」の表示形式を設定していると、実際の値と見た目がずれます。たとえば次のようなデータを考えてみましょう。
| 行 | 実際の値 | 表示(0.00) |
|---|---|---|
| 2 | 1.231 | 1.23 |
| 3 | 1.234 | 1.23 |
| 4 | 1.236 | 1.24 |
2行目と3行目は実際には別の値ですが、表示はどちらも「1.23」です。公式に小数の例はありませんが、表示内容で比べる仕様からすると、同じ表示なら重複とみなされるおそれがあります。その場合、後ろにある3行目が消えることになるでしょう。
一方、4行目は表示が「1.24」なので、1.234 との差が小さくても別の値として残ります。
対処は、実行前に表示を実際の値に近づけておくこと。対象の列の表示形式を「標準」にするか、[小数点以下の表示桁数を増やす] で桁を出します。重複の削除が終わったら、表示形式を元に戻せば問題ありません。
逆に「小数第2位で丸めた値で重複を判定したい」なら、表示形式に頼らず作業列で値そのものを丸めるのが確実です。
=ROUND(B2,2)
表示形式と実際の値の丸めの違いは、Excel端数処理の関数選びで詳しく整理しています。ROUND の引数の考え方はROUND関数の使い方も参考にしてください。
日付と日付時刻が同じ扱いになる
受付日時のように「日付+時刻」が入った列でも、同じことが起こりえます。セルに「2026/10/19 9:00」と「2026/10/19 17:30」が入っているとします。表示形式が日付だけなら、どちらも「2026/10/19」と表示されますよね。
この場合も、表示内容で比べる仕様からすると、重複とみなされる可能性があります。同じ日に受け付けた別の案件が、1件に減ってしまうおそれがあるわけです。
確認するには、表示形式を時刻まで出る形に変えるのが手軽。セルの書式設定でユーザー定義を「yyyy/m/d h:mm:ss」にすると、隠れていた時刻が見えます。表示形式を変えたくない場合は、作業列で中身を文字にして確かめましょう。
=TEXT(B2,"yyyy/m/d h:mm:ss")
時刻まで含めて比べたいなら、表示形式を時刻ありにしたまま重複の削除を実行します。日付だけで比べたいなら、=INT(B2) で時刻を切り捨てた作業列を作り、その列で判定すると確実です。
チェックした列だけで比較され行全体が消える
「違う値まで消えた」ときに、まず疑いたいのがこのパターンです。重複の削除は、ダイアログでチェックした列の組み合わせだけで判定します。
次の取引先担当者リスト(B〜D列・2〜7行目)で考えてみましょう。
| 行 | 会社名 | 担当者 | 部署 |
|---|---|---|---|
| 2 | A社 | 田中 | 営業部 |
| 3 | A社 | 佐藤 | 経理部 |
| 4 | B社 | 鈴木 | 営業部 |
| 5 | A社 | 田中 | 営業部 |
| 6 | C社 | 高橋 | 総務部 |
| 7 | B社 | 山本 | 営業部 |
「会社名」だけにチェックを入れて実行すると、各社の最初の行(2・4・6行目)だけが残ります。3行目の佐藤さんや7行目の山本さんは、担当者が違うのに会社名が同じというだけで消えてしまうのです。
「会社名」と「担当者」の両方にチェックを入れれば、結果は変わります。同じ組み合わせは2行目と5行目の「A社・田中」だけなので、消えるのは5行目の1行のみ。
| チェックした列 | 残る行 | 削除される行 |
|---|---|---|
| 会社名のみ | 3行(2・4・6行目) | 3行(3・5・7行目) |
| 会社名+担当者 | 5行(2・3・4・6・7行目) | 1行(5行目) |
対処はシンプルで、「何が同じなら重複か」を先に決めてから列をチェックすることです。迷ったら、すべての列にチェックが入った状態から外す列を選ぶと、消しすぎを防げます。
大文字小文字・全角半角の違いが同じ扱いになることがある
取引先コードの「ABC」と「abc」、商品名の「ABC」と「ABC」を別物として管理しているなら注意が必要です。
重複の削除での全角半角・大文字小文字の扱いは、公式に記載がありません。全角半角を同じに扱うという公式の記載は、条件付き書式の「重複する値」ルールについてのものです。「別の値として残るはず」と考えず、片方が消える可能性を前提に確かめておくのが安全です。
確かめ方の一例として、COUNTIF と EXACT の数え方を比べる作業列を紹介します。COUNTIF は大文字小文字を区別しない、と公式に明記されています。一方の EXACT は、大文字小文字も区別して2つの文字列が完全に同じかを比べる関数。
=IF(COUNTIF($B$2:$B$11,B2)>SUMPRODUCT(--EXACT($B$2:$B$11,B2)),"要確認","")
「要確認」と出た行は、大文字小文字など見た目の小さな違いだけで同じと数えられている値がある、というサイン。こうした行は、重複の削除をかける前に目で確認しましょう。
見出しのチェックが合っていない
ダイアログには、先頭行を見出しとして扱うかどうかのチェックボックスがあります。このチェックが表の実態と合っていないと、判定がずれる原因になります。
- 見出しがあるのにチェックが外れている: 見出し行もデータとして比較の対象になる
- 見出しがないのにチェックが入っている: 1行目のデータが比較から外れ、重複していても残る
列の一覧に見出しの名前が並んでいるかを見ると、チェックの状態を判断しやすくなります。表のすぐ上にタイトル行がくっついていると、範囲の認識がずれることもあります。表とタイトルの間は1行空けておきましょう。
症状別|重複の削除で消えるはずの行が残る・残る行が違う
今度は逆の「消えない」「残ってほしい行が消えた」症状です。こちらも原因の多くは、表示内容での比較と、最初の出現が残るルールから来ています。
表示形式・前後スペース・数値と文字列の違い
公式の日付の例のとおり、同じ値でも表示形式が違えば別の値として残ります。「2026/10/19」と「2026年10月19日」が混在しているなら、列全体の表示形式をそろえてから実行してください。
前後のスペースについては、重複の削除での扱いが公式に書かれていません。ただ、「A社」と「A社 」のように末尾にスペースが入った値は、表示内容としても別物です。重複として消えずに残ることがあるので、先に TRIM で整えておくと確実でしょう。
=TRIM(B2)
作業列に TRIM の結果を出し、値として貼り付けてから重複の削除をかける流れです。使い方はTRIM関数の使い方で解説しています。氏名や住所の表記ゆれをまとめて直したい場合は、フラッシュフィルとPower Queryで名簿を整える方法も役立つはずです。
数値の「123」と文字列の「’123」が混ざった列も要注意。見た目は同じでも、重複と判定されるかは公式に記載がありません。左上に緑の三角が出ているセルがあれば文字列の可能性が高いので、数値か文字列のどちらかにそろえてから実行しましょう。
並び順で残る行が変わる(最初の出現が残る)
重複の削除は、リストで最初に出現した行を残します。これは公式に明記された仕様です。逆にいえば、どの行が残るかは並び順で決まるということ。
たとえば顧客名簿で、同じ顧客の行が次の順に並んでいたとします。
| 行 | 顧客名 | 住所 | 更新日 |
|---|---|---|---|
| 2 | 山田商事 | 旧住所 | 2025/4/1 |
| 3 | 山田商事 | 新住所 | 2026/9/1 |
「顧客名」だけで重複の削除をかけると、上にある2行目(旧住所)が残り、最新の3行目が消えてしまいます。
最新の行を残したいなら、先に「更新日」で降順に並べ替えてから実行してください。並べ替えを挟むだけで、残る行を自分でコントロールできるようになります。
小計・アウトラインが残っていて削除できない
公式によると、[小計] 機能で集計行を入れた表や、行をグループ化した表(アウトライン)からは重複を削除できません。
この場合は、[データ] タブの [小計] で小計をすべて削除し、グループ化も解除してから実行します。元の形が必要なら、先にシートをコピーしておくと安心です。
条件付き書式「重複する値」の色が付かない・付きすぎる
消す前に重複を目で確かめたいとき、よく使われるのが条件付き書式の「重複する値」です。[ホーム] タブの [条件付き書式] から、[セルの強調表示ルール] → [重複する値] の順に設定します。
ただし、このルールも重複の削除と同じ感覚で使うと「色が付かない」「付きすぎる」と感じることがあります。適用範囲のずれやデータ型など、条件付き書式全般の反映トラブルは条件付き書式・プルダウン・フィルターが動かない原因と対処にまとめました。ここでは重複の判定に関わる点に絞って見ていきましょう。
全角半角と大小文字の扱い(COUNTIFルールで区別する)
「重複する値」ルールでは、日本語などの言語設定だと半角と全角が同じように扱われる、と公式に記載があります。「ABC」と「ABC」の両方に色が付いて「付きすぎ」に見えるなら、これが原因かもしれません。
区別したい場合は、数式を使うルールに切り替える方法が公式に示されています。[新しいルール] → [数式を使用して、書式設定するセルを決定] を選び、次の式を入力します。
=COUNTIF($A$2:$A$400,A2)>1
大文字小文字の扱いは、「重複する値」ルールについても公式に記載がありません。なお COUNTIF は大文字小文字を区別しないため、上の式でも「ABC」と「abc」は同じと数えられます。
大文字小文字まで区別したいなら、EXACT を使った式が候補です。A2:A400 を選択した状態で、次の式をルールに設定します。
=SUMPRODUCT(--EXACT($A$2:$A$400,A2))>1
条件付き書式の基本的な設定方法は、条件付き書式完全ガイドで確認できます。
数値と文字列が混在している
数値の「123」と文字列の「123」が混ざった列は、見た目が同じでも中身の種類が違います。「重複する値」でどう判定されるかは公式に記載がないため、まずはデータの種類をそろえるのが近道でしょう。
文字列になっている数値は、範囲を選択して緑の三角のエラー表示から [数値に変換する] を選ぶと、まとめて数値に直せます。逆に、先頭の 0 を残したいコード類なら、列全体を文字列にそろえましょう。
重複の削除と判定が食い違うケース
「色が付いたのに、重複の削除では消えなかった」。この食い違いでまず考えられるのは、比べる単位の違いです。
「重複する値」は、選んだ範囲のセル1つ1つを比べます。一方、重複の削除はチェックした列の組み合わせで行を判定します。会社名の列に色が付いていても、担当者の列までチェックして削除すれば、組み合わせが違う行は残るわけです。
重複の削除と同じ「組み合わせ」で色を付けたいなら、COUNTIFS を使った数式ルールにしましょう。たとえば A2:C400 を選択して、次の式を設定します。
=COUNTIFS($A$2:$A$400,$A2,$B$2:$B$400,$B2)>1
これで「会社名と担当者がどちらも同じ行」の全体に色が付きます。なお、「重複する値」はピボットテーブルの値エリアには使えない点も公式に記載があります。
消す前に確認する安全手順と戻し方
重複の削除は一瞬で終わるぶん、間違いに気づくのが遅れがちです。顧客名簿のように消えると困るデータほど、次の手順を挟んでおきましょう。
別シートへコピーしてから作業する
公式も、重複を削除する前に元の範囲やテーブルを別シート・別ブックにコピーしておくことを勧めています。Windows のデスクトップ版なら、シート見出しを Ctrl キーを押しながらドラッグするとシートを丸ごと複製できます。
コピーを残しておけば、保存したあとに間違いに気づいても、元データから行を拾い直せます。作業用シートで削除し、結果に納得してから本番の表に反映する流れが安全です。
COUNTIFの作業列で重複に印を付ける
次は、重複の削除で消える行を実行前に一覧で見ておく方法。作業列に次の式を入れて下までコピーします。
=COUNTIF($B$2:B2,B2)>1
範囲の始点だけを固定しているので、上から数えて2回目以降に出てきた行に TRUE が付きます。つまり「最初の出現を残し、残りを消す」重複の削除と同じ考え方です。複数列の組み合わせで判定するなら、COUNTIFS に変えます。
=COUNTIFS($B$2:B2,B2,$C$2:C2,C2)>1
TRUE の行をフィルターで絞り込めば、消える予定の行をまとめて確認できます。ただし、COUNTIF には公式に記載された次のような癖があるので注意してください。
- 大文字と小文字を区別しない
- 「*」「?」がワイルドカードとして働き、「~」を前に付けると文字そのものを探せる
- 255 文字を超える文字列を照合すると、エラーではなく間違った結果が返る
- 前後の余分なスペースや印刷されない文字があると、正しく数えられないことがある
「*」や「?」を含む品番などを扱う列では、記号の前に「~」を付ける形に置き換えると、正しく数えられます。
=COUNTIF($B$2:B2,SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(B2,"~","~~"),"*","~*"),"?","~?"))>1
なお、Excel の数式は原則として、表示ではなくセルに格納された値で計算します。そのため丸めた小数や時刻入りの日付では、COUNTIF で TRUE にならない行が重複の削除では消える可能性があります。小数や日時の列は、前述の方法で表示を確かめてから判定しましょう。
COUNTIF の基本はCOUNTIF関数の使い方を、複数条件で数が合わないときはSUMIFS・COUNTIFSで条件が効かない原因もあわせてどうぞ。
UNIQUEで削除後の結果を先に確認する
Microsoft 365・Excel 2021 以降・Web版なら、UNIQUE 関数で「削除したらどうなるか」を先に見られます。元の表は一切変わらないのが利点です。
=ROWS(UNIQUE(B2:C7))
先ほどの取引先担当者リストなら、会社名と担当者の組み合わせで残る行数として「5」が返ります。重複の削除の結果と行数が合うかを比べるだけでも、消しすぎに気づけるはずです。
ただし UNIQUE も数式なので、丸めた小数などでは重複の削除と行数がずれる可能性があります。大文字小文字の扱いも公式に個別の記載がないため、行数はあくまで目安として使ってください。構文や複数列での使い方はUNIQUE関数の使い方で詳しく解説しています。
戻し方の分岐(Ctrl+Z/保存後/OneDrive版履歴)
消しすぎに気づいたら、状況に合わせて戻し方を選びます。
| 状況 | 戻し方 |
|---|---|
| 削除した直後 | Ctrl+Z(または [元に戻す])で取り消す |
| 保存した・ブックを閉じた | 事前にコピーしたシートやブックから行を戻す |
| OneDrive・SharePoint に保存したファイル | [ファイル] → [情報] → [バージョン履歴] で以前の版を開き、[復元] する |
Ctrl+Z で戻せることは公式に記載があります。一方、保存したあとやブックを閉じたあとに戻せるかは、確実とはいえません。戻せない前提で事前にコピーを取るのが、いちばん確かな保険です。
バージョン履歴は、Microsoft 365 の Excel で OneDrive・SharePoint 上のファイルを開いているときに使えます。保持される版の数や期間は環境で異なる可能性があるので、事前のコピーと併用する保険と考えておきましょう。
まとめ・FAQ|重複の削除で違う値まで消えるのを防ぐ
要点のおさらい
Excelの重複の削除で違う値まで消えるのは、判定が「表示内容」と「チェックした列の組み合わせ」で行われるためです。実行前に、次の4点を確認しておきましょう。
- 小数や日時は、桁数・時刻まで表示した状態で判定する
- 「何が同じなら重複か」を決めて、判定に使う列をすべてチェックする
- 残したい行が上に来るよう、更新日などで並べ替えておく
- 元データを別シートにコピーし、COUNTIF や UNIQUE で消える行を先に確かめる
症状からの逆引きには、記事冒頭の表が使えます。元の表を残したまま重複のない一覧を作りたいなら、UNIQUE関数の使い方もチェックしてみてください。
よくある質問
Q. 重複の削除で、大文字と小文字は区別されますか?
A. 重複の削除については、公式に大文字小文字の扱いが書かれていません。区別が必要なデータなら、EXACT を使った作業列で事前に確かめてから実行すると安全です。
Q. 一番新しい行を残して重複を削除したいです。
A. 重複の削除は最初に出現した行を残す仕様です。更新日などで降順に並べ替え、新しい行を上に持ってきてから実行してください。
Q. Web版のExcelでも重複の削除は使えますか?
A. 使えます。Excel for the web でも重複する値を削除できる、と公式に記載があります。
Q. 行を消さずに、重複に印を付けるだけにしたいです。
A. 条件付き書式の「重複する値」で色を付けるか、COUNTIF の作業列で TRUE/FALSE を出す方法が向いています。全角半角や組み合わせで区別したいなら、COUNTIF・COUNTIFS の数式ルールを使いましょう。
