Excelで名前の重複チェックをする方法|COUNTIF・条件付き書式・表記ゆれ対策まで完全解説

Excelで名前の重複チェックをする方法についての図解 Excel

どうも、くまおやぢです。

「A列の名簿とB列の名簿、同じ人が入ってないか確認して」

——こんな依頼、受けたことありませんか。

100件くらいなら目視でなんとかなりそうな気がしますが、300件・500件になったら無理です。しかも厄介なのが「田中 太郎」と「田中太郎」みたいに、見た目はほぼ同じなのにExcelが別物と判定するケース。これで重複を見落としたり、逆に別人を重複と誤判定したりが起きます。

この記事では、Excelで名前の重複を正確に確認するための方法を、基本の関数から表記ゆれ対策・実務で使える応用パターンまで解説します。


⚡ 急いでいる人へ|目的別の早見表

やりたいこと方法
A列の名前がB列にあるか確認したい=IF(COUNTIF(B:B,A2)>0,"重複あり","なし")
重複セルを色で目立たせたい条件付き書式
スペースや全角半角のズレも含めて正確に比較したい正規化してから COUNTIF
同姓同名がいるので名前だけで判定したくないCOUNTIFS で複合キー判定
重複行を一気に消したい「重複の削除」(ただし名簿には非推奨)

この記事でできること

  • COUNTIF・IF関数で「A列の名前がB列にあるか」を一発判定する
  • 条件付き書式で重複セルを色で見える化する
  • 「田中 太郎」と「田中太郎」を同じとみなして比較する正規化のやり方
  • 同姓同名問題を複合キー(氏名+生年月日など)で解決する
  • 「重複の削除」機能を使っていい場面・使ってはいけない場面の判断基準

01. なぜ名前の重複チェックは難しいのか

Excelで名前を比較するとき、「見た目が同じ」と「Excelが同じと判定する」は別の話です。

Excelは文字を完全一致で判定します。1文字でも違えば別物扱いです。

Excelが「別物」と判定する典型パターン

見た目実際の違い一致するか
田中 太郎 / 田中太郎スペースの有無✗ 一致しない
タナカ / タナカ全角 vs 半角カタカナ✗ 一致しない
齋藤 / 斉藤旧字体 vs 新字体✗ 一致しない
田中太郎 / 田中太郎末尾に全角スペース✗ 一致しない
田中太郎 / 田中太郎まったく同じ○ 一致する

この「見た目は同じでもExcelには別物」現象を表記ゆれといいます。名前の重複チェックでミスが起きるほとんどの原因が、この表記ゆれです。

だから重複チェックは「とりあえずCOUNTIF」だけでは足りないケースが多い。表記ゆれをどう扱うかまで設計しないと、見落としと誤判定が残ります。

この記事では、まず基本の関数を押さえてから、表記ゆれを吸収した上での比較まで段階的に進みます。


02. 基本|COUNTIFでA列の名前がB列にあるか判定する

基本の式

最もシンプルな重複チェックはこれです。

C列に以下の式を入れて、下にコピーします。

=IF(COUNTIF(B:B, A2) > 0, "重複あり", "なし")

式の意味:

  • COUNTIF(B:B, A2):A2の値がB列に何件あるかを数える
  • > 0:1件以上あれば
  • "重複あり" / "なし":結果を表示

A列の各名前に対して「B列に存在するかどうか」を自動で判定します。

逆方向も確認する

上の式はA列→B列方向の確認です。B列の名前がA列にあるかも確認したい場合は、D列に逆の式を入れます。

=IF(COUNTIF(A:A, B2) > 0, "重複あり", "なし")

両方向を確認することで、片方にしか存在しない名前も拾えます。

同じ列内の重複を数える

1つの列の中で重複している名前を調べたい場合はこちら。

=COUNTIF(A:A, A2)

この結果が「2以上」なら、その名前は列内に複数存在しています。

=IF(COUNTIF(A:A, A2) > 1, "重複", "ユニーク")

03. 条件付き書式で重複を色で見える化する

関数で判定列を作らなくても、条件付き書式を使えば重複しているセルを直接色付けできます。視覚的に一目で分かるので、確認作業に向いています。

手順:A列の名前がB列にもある場合に色を付ける

  1. A列のデータ範囲を選択する(例:A2:A100)
  2. 「ホーム」タブ →「条件付き書式」→「新しいルール」を選ぶ
  3. 「数式を使用して、書式設定するセルを決定」を選ぶ
  4. 数式に以下を入力する
=COUNTIF($B:$B, A2) > 0
  1. 「書式」→「塗りつぶし」で色を選ぶ(例:黄色)
  2. 「OK」で完了

これで、A列の中でB列にも存在する名前のセルが自動で色付けされます。

同じ列内の重複に色を付ける

「A列の中で2回以上出てくる名前に色を付けたい」場合は、数式を変えます。

A列を選択した状態で:

=COUNTIF($A:$A, A2) > 1

これで列内に複数存在するすべての行が色付けされます。

💡 条件付き書式 vs 判定列、どちらを使うか
「ひと目で確認したいだけ」なら条件付き書式が速い。「判定結果をフィルターして作業したい」「ログとして残したい」なら判定列(COUNTIF+IF)が向いている。目的で使い分けましょう。


04. 表記ゆれを吸収した比較|正規化してからCOUNTIFする

ここが、基本の重複チェックとの一番の差です。

「田中 太郎」と「田中太郎」はCOUNTIFでは一致しません。でも人間には同じ人です。これを正確に判定するには、**比較する前にデータを正規化(統一した形に整える)**する必要があります。

正規化に使う関数

関数何を除去・変換するか使いどころ
TRIM先頭・末尾・連続した半角スペースを除去名前の前後のスペース除去
SUBSTITUTE指定した文字を別の文字に置き換える全角スペース除去、記号統一
CLEAN改行・タブなど見えない制御文字を除去コピペ由来の汚れを落とす
ASC全角英数字・カタカナを半角に変換半角に統一したいとき
JIS半角英数字・カタカナを全角に変換全角に統一したいとき

基本の正規化式

スペースと全角スペースを除去してから比較したい場合の式です。

作業列(例:E列)にA列を正規化した値を作ります:

=TRIM(SUBSTITUTE(SUBSTITUTE(CLEAN(A2)," "," "),"  "," "))

同様にF列にB列の正規化版を作り、正規化した列同士で比較します:

=IF(COUNTIF($F:$F, E2) > 0, "重複あり", "なし")

実践例:「田中 太郎」と「田中太郎」を同じと判定する

データの状態:

  • A2:田中 太郎(名前の間に半角スペース)
  • B3:田中太郎(スペースなし)

通常のCOUNTIF:

=COUNTIF(B:B, A2)  → 0(一致なし)

→ スペースの有無で別物扱いになる

正規化後のCOUNTIF:

まずE列にA2の正規化版:

=SUBSTITUTE(TRIM(A2)," ","")
→ "田中太郎"

F列にB3の正規化版:

=SUBSTITUTE(TRIM(B3)," ","")
→ "田中太郎"

比較:

=COUNTIF($F:$F, E2)  → 1(一致あり)

→ スペースを除去した上で比較するので、正しく一致する

全角・半角を統一してから比較する

カタカナの全角・半角が混在している場合は JIS または ASC を加えます。

全角に統一してから比較する場合:

=JIS(TRIM(CLEAN(A2)))

半角に統一してから比較する場合:

=ASC(TRIM(CLEAN(A2)))

どちらに統一するかは、名簿のルールに合わせて決めてください。重要なのは「比較する両方のデータを同じルールで正規化する」ことです。

⚠️ 旧字体・異体字の問題
「齋藤」「齐藤」「斉藤」のような異体字・旧字体は、関数では自動変換できません。これらを統一するには、SUBSTITUTE関数で個別に変換するか、入力時にルールを設けるしかありません。名簿で旧字体が多い場合は、フリガナ(PHONETIC)での比較も検討価値があります。


05. 同姓同名問題|複合キーで正確に判定する

重複チェックで一番危険なのは、同姓同名の別人を「重複あり」と誤判定してしまうケースです。

「田中太郎」が2人いたとき、名前だけで重複チェックしていたら、別人を削除してしまうリスクがあります。

COUNTIFSで複数条件を組み合わせる

氏名だけでなく、生年月日・社員番号・メールアドレスなど、別の情報と組み合わせて判定することで精度が上がります。

例:A列の氏名とC列の生年月日の組み合わせが、B列・D列に存在するか確認する

=IF(COUNTIFS(B:B, A2, D:D, C2) > 0, "重複あり", "なし")

COUNTIFSのルール:

  • 条件を複数指定できる
  • すべての条件を同時に満たす行の件数を返す
  • 「氏名が一致 AND 生年月日も一致」という判定ができる

実用的な複合キーの選び方

複合キーの組み合わせ精度注意点
氏名のみ同姓同名の別人を誤判定する
氏名+生年月日生年月日が入力されている場合に有効
氏名+メールアドレス非常に高メールが重複している方が問題なケースも
社員番号のみ最高IDがあれば氏名は不要なくらい強い
氏名+電話番号電話番号が変わることを考慮する

名簿にIDや社員番号があるなら、そちらを判定キーにするのが一番確実です。氏名は変わることがあるし、同姓同名もいる。IDは揺れません。

キー列を作って比較しやすくする工夫

複合キーを1つの列に結合して比較するテクニックもあります。

=A2 & "_" & C2

例:「田中太郎_19800101」という結合キーを作り、COUNTIF で比較する。

COUNTIFS でも同じことができますが、結合キー方式にしておくと条件付き書式にも使いやすくなります。


06. 「重複の削除」機能はいつ使う?いつ使わない?

Excelには「データ」タブに「重複の削除」ボタンがあります。便利そうに見えますが、名簿への使用は基本的に非推奨です。

なぜ名簿では使わない方がいいか

  • 同姓同名の別人を巻き込んで削除する可能性がある
  • 削除されたデータはCtrl+Zでしか戻せない(保存後は戻せない)
  • 「どの行を残してどの行を消したか」の記録が残らない

名簿のような重要データで「取り返しのつかない削除」が起きたとき、影響は大きいです。

重複の削除を使っていい場面

逆に使っていい場面もあります。

  • システムから重複出力された完全に同一のレコードを除去したい
  • 元データのコピーが残っていて、いつでも戻せる状態
  • IDや番号など、完全に一致するものだけを判定キーにしている
  • 1件のデータが何行にも重複している大量データを整理したい

使う前の必須手順:

  1. 元データを別シートまたは別ファイルにコピーしてバックアップを取る
  2. 削除後に件数を確認する(処理前と処理後の行数をメモ)
  3. 削除されたデータが意図通りかをバックアップと照合する

重複の削除の操作手順

  1. 対象のデータ範囲を選択する
  2. 「データ」タブ →「重複の削除」をクリック
  3. 判定に使う列にチェックを入れる(氏名だけ、または複数列の組み合わせ)
  4. 「OK」をクリック

07. よくある詰まりポイントと対処法

「COUNTIF で 0 なのに明らかに同じ名前がある」

表記ゆれが原因です。次の順番で確認します。

  1. 先頭・末尾のスペースがないか → TRIM で確認
  2. 全角・半角が混ざっていないか → LEN 関数で文字数を比較
  3. 見えない文字が混入していないか → CLEAN を適用してから再比較
  4. 記号・括弧の種類が違わないか

特定できない場合は、比較したい2つのセルを =A2=B3 で直接比較してみてください。FALSE が返れば確実に一致していないので、TRIM・CLEAN を通した値で再比較します。

「COUNTIF で重複ありなのに本当は別人」

同姓同名のケースです。05章の複合キー判定(COUNTIFS)を使って、別の情報と組み合わせて再判定してください。

「条件付き書式を設定したのに色が付かない」

数式の参照範囲を確認してください。

=COUNTIF($B:$B, A2) > 0

B列側は絶対参照($B:$B)にして、A列側は相対参照(A2)のままにするのが正しい形です。両方絶対参照や両方相対参照にすると、意図通りに動かないことがあります。

「TRIM を使ったのにまだ一致しない」

TRIM が除去できるのは半角スペースだけです。全角スペース( )は TRIM では除去されません。

=TRIM(SUBSTITUTE(A2, " ", " "))

このように SUBSTITUTE で全角スペースを半角スペースに変換してから TRIM を適用してください。


08. 実務で使える式のまとめ

よく使うパターンを一覧にします。そのままコピーして使えます。

A列がB列に存在するか確認する(基本)

=IF(COUNTIF(B:B, A2) > 0, "重複あり", "なし")

スペースを除去してから確認する(表記ゆれ対策)

=IF(COUNTIF(B:B, TRIM(SUBSTITUTE(A2," "," "))) > 0, "重複あり", "なし")

氏名+生年月日の複合キーで確認する(同姓同名対策)

=IF(COUNTIFS(B:B, A2, D:D, C2) > 0, "重複あり", "なし")

同じ列内の重複を数える

=COUNTIF(A:A, A2)

同じ列内で最初の出現か2回目以降かを判定する

=IF(COUNTIF(A$2:A2, A2) > 1, "重複(2件目以降)", "初出")

このように A$2:A2 と範囲を行ごとに広げる形式にすると、「上から数えて初めて出てくる行」なのか「すでに上に同じ値がある行」なのかを区別できます。重複を消したいときに「どちらを残すか」の判断に使えます。


09. まとめ|重複チェックは「正確に比較できる状態にする」が9割

Excelで名前の重複チェックをするとき、やることは3つです。

  1. 正規化する:比較する前にTRIM・CLEAN・SUBSTITUTE で文字を整える
  2. 適切な関数で比較する:COUNTIF(単一条件)またはCOUNTIFS(複合条件)
  3. 同姓同名を考慮する:名前だけでなく、IDや生年月日と組み合わせて判定する

「重複ありと出てるのに別人」「重複なしと出てるのに同じ人」——このどちらも、たいてい正規化と複合キーで解決できます。

用途に合わせた使い分けはこうです。

状況おすすめの方法
さっと目視で確認したい条件付き書式
判定結果を残してフィルターしたいCOUNTIF + IF で判定列を作る
表記ゆれが多いデータを比較したい正規化してからCOUNTIF
同姓同名の可能性があるCOUNTIFS で複合キー判定
大量の完全一致の重複を一括削除したい重複の削除(バックアップ必須)

重複チェックは「関数を知っているか」より「比較できる状態に整えてから使えるか」の方が重要です。この記事の手順を使えば、表記ゆれと同姓同名を意識した、精度の高い重複チェックができます。

コメント

タイトルとURLをコピーしました