エクセルの技が凝縮された名簿 (その2)

重複を見逃さない COUNTIFと OR

エクセルの技が凝縮された名簿 (その2)~リストが重複しているかどうかを見つける

今回は、10月2日号の続きになります。
名簿のようなリスト形式の表を作成していると、重複して入力するという
ミスが起こりがちです。

「どうも同じデータがダブって入力されているようだけれど、いったいいくつダブっているのか、見つけるのが大変だ。
とても一人ではやってられない、皆で手分けして探そう・・・」
なんて、ことにもなりかねません。

どんなに早く入力できる人でも、リストの見直しは時間がかかるもの。
ましてミスがあればなお更です。なんとか、時間を短縮したいものです。
そのためには、どうやったらミスを早く発見できるでしょう。

重複しているかどうかを見つけるには、通常名前で判断しますね。
そこで、下図では、重複を発見するためにB列に、“ COUNTIF関数”を使った式を入力しています。

B9セルとB16セルにFALSEと表示されています。
これにより、重複がわかるのです。

COUNTIF関数を使って重複を判断

セルB6には、以下の式が入っています。
=COUNTIF($C$6:$C$16,C6)=1
式の意味は、

$C$6:$C$16の中に、C6が何個あるか数えてその値が1に等しい

ということになります。

結果、1であれば、TRUEを返し、
1以外ならFALSEを返します。
COUNTIF 関数

COUNTIF 関数は、COUNT 関数に IF 関数を結合したような関数です。
指定した範囲内で検索条件に一致したセルの個数を求める(返す)関数です。

【書式】 COUNTIF(範囲,検索条件)

でもこれだけは、ほんとうに重複しているかどうかわかりません。
同姓同名ということもありますから。

次に、生年月日のチェックもしてみましょう。

重複チェック~名前と生年月日

 今度は、名前のチェックの後に、生年月日のチェックもしてみましょう
 生年月日まで同じ人はまずいませんからね。
 名前をチェックしたのと、同様に、H列に入っている生年月日を
 チェックします。
H6セルと同じ値のセルがないか調べる生年月日のチェックは、COUNTIF関数を使って

 =COUNTIF($H$6:$H$16,H6)=1

と入力すればいいですね。
ただ、これをさらにチェック用の列をつくるのではなく、
以下のB列に入力された式と合体してしまいます。
 B6に入っている式 氏名のチェック
  =COUNTIF($C$6:$C$16,C6)=1
追加したい式
 生年月日のチェックは、
  =COUNTIF($H$6:$H$16,H6)=1

そこで、A列がブランクでない時に、
氏名が一致しないか、生年月日が一致しなければ、重複ではない
間違っていないという意味で、TRUEを返すようにします。
つかうのは、IF関数です。

=IF(A6<>"",OR(COUNTIF($C$6:$C$16,C6)<=1,=COUNTIF($H$6:$H$16,H6)<=1),"")

COUNTIFをOR関数の中で2つつなげて合体しました。

OR(A,B)は、AまたはBということです。
どっちかが、TRUEであれば、結果はTRUEです。

両方ダブっていると、OR(FALSE , FALSE)になって、式全体がFALSE(偽)となります。

式をオートフィルでコピーしたら、
条件付書式設定で、FALSEの時にセル色が変わるように設定します。
このように、氏名と生年月日の両方を自動でチェックしてしまえば、入力ミスの発見も楽になります。
スポンサーリンク
スポンサーリンク