Excel関数 逆引き集 | 重複判定 → COUNTIF>1

Excel VBA Excel
スポンサーリンク

概要

「この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 をそのまま使えます。

たとえば、

  1. A2:A100 を選択
  2. 条件付き書式 → 新しいルール → 「数式を使用して…」
  3. 数式欄に
=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・商品コード・メールアドレス・社員番号など、
どんな“重複させたくない値”にもそのまま使える、実務必須のテクニックです。

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