概要
「このID、どこかで二重登録してないかな?」
「同じ商品コードが複数行に入っていないかチェックしたい」
「メールアドレスの重複を一発で洗い出したい」
こういう 「同じ値が2回以上出てくる=重複」 を判定する定番テクニックが
COUNTIF > 1 を使った重複判定 です。
考え方はとてもシンプルで、
- COUNTIF(範囲, 対象セル) で「その値が何件あるか」を数える
- その結果が
>1なら「同じ値が2件以上ある」=重複
というロジックです。
COUNTIF で「何回出てくるか」を数える
COUNTIF の基本
まず、COUNTIF の基本形を確認します。
=COUNTIF(範囲, 条件)
例として、A2:A100 に会員IDが入っているとします。
「A2 のIDが A2:A100 の中に何件あるか」を知りたいときは、こう書きます。
=COUNTIF($A$2:$A$100, A2)
結果の意味はこうです。
- 1 → そのIDは一覧の中に1件だけ(重複なし)
- 2以上 → そのIDを持つ行が複数ある(重複あり)
ここに >1 を組み合わせると、「重複かどうか」の TRUE / FALSE 判定になります。
COUNTIF>1 で重複判定(TRUE/FALSE)
A2 の値が重複しているかどうかを TRUE / FALSE で判定する
A2:A100 にID一覧があるとして、
A2 の値が重複しているかどうかを判定したいときの式はこれです。
=COUNTIF($A$2:$A$100, A2) > 1
この式の結果は、
- A2 の値が 2回以上出てくる → TRUE(重複している)
- A2 の値が 1回だけ → FALSE(重複していない)
となります。
この式を A2 に入力して下方向にコピーすれば、
各行が「重複しているかどうか」を一気にチェックできます。
IF と組み合わせて「重複」「OK」と表示する
重複なら「重複」、そうでなければ「OK」
TRUE / FALSE のままだと少し分かりづらいので、
IF で文字に変換するのが実務では定番です。
例:A2:A100 にメールアドレスが入っていて、
A2 のアドレスが重複していれば「重複」、そうでなければ「OK」と表示する。
=IF(COUNTIF($A$2:$A$100, A2) > 1, "重複", "OK")
この式を A2 に入力し、A100 までコピーすると、
- 同じメールアドレスが複数行あるセル → 「重複」
- その行だけのメールアドレス → 「OK」
と表示されるようになります。
特定の範囲内だけで重複判定する(縦に伸びていく入力フォーム向け)
「自分より上も含めての重複」ではなく「上だけを見る」パターン
先ほどの
=COUNTIF($A$2:$A$100, A2) > 1
だと、同じ値が3件あれば3件すべて「重複」となります。
もし、
- 最初に出てきた行 → 「OK」
- 2回目以降に出てきた行 → 「重複」
としたい場合は、範囲を「先頭〜自分の行」に変えます。
=COUNTIF($A$2:A2, A2) > 1
この式の意味は、
- A2 なら範囲は A2:A2(自分だけ) → 1 回目なので FALSE(重複なし)
- A5 なら範囲は A2:A5 → もし A2〜A4 のどこかに同じ値があれば、A5 では 2回目になるので TRUE(重複)
という動きになります。
列や表が違っても同じ考え方で応用できる
商品コードの重複判定
B2:B200 に商品コードが入っているとします。
B2 のコードが一覧の中で重複しているかどうかを判定するには、こう書きます。
=COUNTIF($B$2:$B$200, B2) > 1
IF と組み合わせれば、
=IF(COUNTIF($B$2:$B$200, B2) > 1, "重複", "OK")
顧客ID・メールアドレスなど、何にでもそのまま使える
重複判定の肝は「どの範囲で重複を見たいか」です。
そこさえ決めれば、あとは
=COUNTIF(その範囲, 対象セル) > 1
という形に当てはめるだけです。
条件付き書式で「重複セルを色付け」するときも同じ考え方
画面上で、重複セルだけ色をつけたい場合も、
条件付き書式の条件に COUNTIF>1 をそのまま使えます。
たとえば、
- A2:A100 を選択
- 条件付き書式 → 新しいルール → 「数式を使用して…」
- 数式欄に
=COUNTIF($A$2:$A$100, A2) > 1
と入力し、塗りつぶし色を指定する
これで、A2:A100 の中で重複している値を持つセルだけに色が付きます。
数式自体は、今回説明しているものと同じです。
例題
問題1
A2:A100 に会員ID一覧があります。
A2 のIDが一覧の中で 2件以上存在するかどうか を TRUE/FALSE で判定する式を書いてください。
=COUNTIF($A$2:$A$100, A2) > 1
問題2
問題1と同じ前提で、
A2 のIDが重複していれば「重複」、重複していなければ「OK」と表示する式を書いてください。
=IF(COUNTIF($A$2:$A$100, A2) > 1, "重複", "OK")
問題3
A2:A100 にメールアドレス一覧があります。
「自分より上に同じメールアドレスがすでにあったら“重複”」と判定したいとき、
A2 に入れる式を書いてください(1回目の行は「OK」、2回目以降を「重複」にする)。
=IF(COUNTIF($A$2:A2, A2) > 1, "重複", "OK")
問題4
B2:B200 に商品コード一覧があります。
B2 の商品コードが一覧の中で重複しているかどうかを TRUE/FALSE で判定する式を書いてください。
=COUNTIF($B$2:$B$200, B2) > 1
問題5
A2:A100 に顧客ID一覧があります。
条件付き書式で「重複している顧客IDのセルに色をつけたい」とき、
条件として使う数式を書いてください。
=COUNTIF($A$2:$A$100, A2) > 1
まとめ
重複判定 → COUNTIF>1 は、
Excel で「同じ値が2回以上出てきていないか?」を調べるための超基本パターンです。
型としては、次の2つを押さえておけばOKです。
=COUNTIF(範囲, 対象セル) > 1 ' TRUE/FALSE で重複判定
=IF(COUNTIF(範囲, 対象セル) > 1, "重複", "OK") ' 文字で重複判定
範囲をどこからどこまでにするかさえ決めれば、
会員ID・商品コード・メールアドレス・社員番号など、
どんな“重複させたくない値”にもそのまま使える、実務必須のテクニックです。
