【エクセル】関数でリストに重複があるか判定する方法!

エクセル
この記事は約2分で読めます。
スポンサーリンク
スポンサーリンク

関数でリストに重複があるか判定する方法!

リストの中に重複が含まれているか判定したい場合、

・SUMPURODUCT
・COUNTIIF

を使用し、下記の計算式で判定することができます。

=SUMPRODUCT(COUNTIF(データ、データ)- 1 )> 0

関数で重複を判定する

数式の説明 

COUNTIFは検索条件と一致するセルの数を数えることができる関数で、

COUNTIF(検索範囲,検索条件)

と記載します。

通常は、検索条件は一つの数字や、文字を指定すると思いますが、
この検索条件を配列で指定することも可能で、

COUNTIF(検索範囲,[“A”,”B”,”C”])

とすると、

[セルの値のがAの数、セルの値のがBの数、セルの値のがCの数]

という結果が配列で返されます。
ここで、条件を検索範囲と等しくした場合、

COUNTIF(検索範囲、検索範囲)

[1,1,2,1,3,3,3,2] 重複がない場合は1、そうでない場合は2以上

の配列が返されます。さらに

COUNTIF(検索範囲、検索範囲)-1 とすることで、

[0,0,1,0,2,2,2,1] 重複がない場合は0、そうでない場合は1以上

という配列を得ることができます。

この配列をSUMPRODUCTと組み合わせて計算すると、

重複のない場合は、
[0,0,0,0,0,0,0…]
を計算することになるので、結果は0に。

リストに重複が含まれる場合は常に、
SUMPRODUCTによって合計された配列に少なくとも1つの1があるため、
重複がある場合は、値が残り、計算結果が0以上になりますので、
リストに重複があることが判断できます。

空白セルがある場合

データの中に空白セルがある場合、

COUNTIF(検索範囲、検索範囲)-1 

の計算結果に[-1]が含まれてくるため、計算結果がうまく表示されなくなります。
※COUNTIFの結果が0になるため

ですので、空白セルがある可能性がデータの場合は、
空白セルの時に0が返るように、(データ<>””)をかけ合わせた、下記の式をご使用ください。

=SUMPRODUCT((COUNTIF(データ、データ)- 1 )*(データ<>””))> 0

コメント欄

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