Categories: excel

Excelで重複データを簡単チェック!IF関数×COUNTIF関数の使い方を徹底解説

Excelでデータを管理していると、つい同じデータを重複して入力してしまうことがあります。大量のデータの中から重複を見つけるのは大変ですが、Excel関数「IF」と「COUNTIF」を組み合わせることで、自動的に重複をチェックすることができます。

本記事では、「IF」と「COUNTIF」の基本的な使い方から、実務で役立つ応用例までをわかりやすく解説します。関数を使ったことがない方でも安心して読める内容になっていますので、ぜひ参考にしてください。


IF関数とCOUNTIF関数の基本を知ろう

IF関数とは?

IF関数は、「もし〇〇だったら××、そうでなければ△△」という条件分岐を行う関数です。
基本構文は以下のとおりです。

=IF(論理式, 真の場合, 偽の場合)

たとえば、A1が100以上なら「合格」、そうでなければ「不合格」と表示したい場合は以下のようになります。

=IF(A1>=100, "合格", "不合格")

COUNTIF関数とは?

COUNTIF関数は、特定の範囲にある条件を満たすデータの個数を数える関数です。
基本構文は以下のとおりです。

=COUNTIF(範囲, 条件)

たとえば、A列に「東京」が何個あるかを調べたい場合は以下のようになります。

=COUNTIF(A:A, "東京")

IF×COUNTIFで重複チェックの基本テクニック

重複チェックの基本式

同じデータがすでに入力されているかを調べたい場合、「COUNTIF」を使って、そのデータが何回出てきたかを数え、「IF」で条件判定をします。

たとえば、A列に入力された名前に重複がないか確認するには、B列に以下のような式を入れます。

=IF(COUNTIF(A:A, A2)>1, "重複あり", "OK")

この式は、A列の中にA2の値が何回出てきているかを調べ、1回より多ければ「重複あり」と表示します。

結果の見え方

A列(名前)B列(重複チェック)
田中OK
山田重複あり
佐藤OK
山田重複あり

このように、どのデータが重複しているかが一目で分かります。


行ごとの重複を検出したいときのテクニック

特定範囲だけで見たい場合

すべての行ではなく、特定の範囲、たとえばA2:A10の範囲内で重複をチェックしたい場合、以下のように書きます。

=IF(COUNTIF($A$2:$A$10, A2)>1, "重複あり", "OK")

※セル参照を絶対参照($A$2:$A$10)にすることで範囲が固定され、行ごとに正しく重複判定できます。


重複の最初の1つだけを「OK」にしたい場合

「重複あり」が何行にも表示されるとわかりにくい場合、最初の1件だけ「OK」、それ以降を「重複あり」と表示する方法があります。

=IF(COUNTIF($A$2:A2, A2)=1, "OK", "重複あり")

この式は、上から順番に見ていき、初めて出てくる値には「OK」、2回目以降の同じ値には「重複あり」と表示します。

表の例

A列(社員番号)B列(チェック)
1001OK
1002OK
1001重複あり
1003OK

応用編:複数列を組み合わせて重複チェック

「名前」と「日付」が同じ場合に重複と見なすなど、複数の条件で重複を確認したいケースもあります。

その場合は、&(アンパサンド)を使って2つの列をつなげてCOUNTIF関数に渡します。

たとえば、名前がA列、日付がB列の場合、以下の式を使います。

=IF(COUNTIF($A$2:$A$100&$B$2:$B$100, A2&B2)>1, "重複あり", "OK")

※これは配列数式として扱う必要があります。古いExcelでは Ctrl + Shift + Enter を使います。新しいバージョンではそのまま動作することもあります。


見た目で分かりやすくするために「条件付き書式」と併用する

関数だけではなく、条件付き書式を使うことで、重複がすぐに見えるようになります。

手順

  1. A列のデータを選択
  2. 「ホーム」タブ → 「条件付き書式」 → 「新しいルール」
  3. 「数式を使用して~」を選択
  4. 数式に以下を入力: excelコピーする編集する=COUNTIF(A:A, A1)>1
  5. 書式(赤色や太字など)を設定してOK

これで、重複しているセルが自動で色付けされ、視覚的にもわかりやすくなります。


よくあるミスと対処法

COUNTIFの範囲に絶対参照がない

COUNTIF(A2:A10, A2) のように書いていると、コピーした際に範囲がずれてしまうことがあります。
$A$2:$A$10 のように固定しておくことが大切です。

空白も「重複」として認識されてしまう

空白行が複数あると、それも「重複」とカウントされます。
対策として、IF文で空白チェックを追加するとよいです。

=IF(A2="", "", IF(COUNTIF($A$2:$A$10, A2)>1, "重複あり", "OK"))

まとめ

IF関数とCOUNTIF関数を組み合わせることで、Excelでの重複チェックが驚くほど簡単に行えます。

  • 単純な重複チェックには =IF(COUNTIF(..., ...)>1, ...)
  • 最初の1件だけOKにしたい場合は =IF(COUNTIF($A$2:A2, A2)=1, "OK", "重複あり")
  • 複数列を組み合わせたい場合は A&B を使った応用方法

さらに条件付き書式と組み合わせれば、見た目も一目でわかる便利なツールになります。
ぜひ、日々のデータ整理や管理に活用してみてください。

upandup

Web制作の記事を中心に、暮らし、ビジネスに役立つ情報を発信します。 アフィリエイトにも参加しています。よろしくお願いいたします。