Excelでの重複レコードを発見する方法(COUNTIFとCOUNTIFS関数)

Excelでの重複レコードを発見する方法: COUNTIF関数とCOUNTIFS関数の使い方

データの中で同じ値を持つレコード(行)がないか確認することは、データの正確性や整合性を保つために非常に重要です。Excelには、このような重複レコードを発見するための関数がいくつかあります。今回は、COUNTIF関数COUNTIFS関数を使用して、同じ値を持つレコードを発見する方法について詳しく解説します。

テーマ表:COUNTIF関数とCOUNTIFS関数の基本

COUNTIF関数は、指定した範囲内で条件(1つのみ)を満たすセルの数をカウントするための関数です。一方、COUNTIFS関数は複数の条件を指定してカウントできる関数です。これらの関数を使用することで、特定の条件に合致するデータが何回現れるかを簡単に調べることができます。

重複レコードを調べるならばCOUNTIFS関数を使うようにするのがよいでしょう。条件は1つでも複数でも同じように使用することができます。

この記事では下のサンプル表(A1:H21)を用いて以下の2テーマを紹介します。それぞれCOUNTIFSを用いて解決しますが、条件が1つのケースのみCOUNTIFも利用できます。

  1. 同じ「日付」を持つ行(レコード)を発見する。
  2. 同じ「納入年」「納入月」「納入先」を持つ行(レコード)を発見する
売上番号日付納入年納入月納入日納入先商品納入金額
100012021/10/1820211018ニシノ弁当定期雑誌28000
100022022/1/9202219ナイトウフルーツ梱包材8000
100032022/2/112022211ニシノ弁当梱包材30000
100042021/12/1020211210イマガワシューズ事務機28000
100052022/1/202022120ナイトウフルーツ定期雑誌28000
100062022/2/212022221ホリ薬局定期雑誌35000
100072022/1/112022111ニシノ弁当定期雑誌35000
100082022/2/172022217イマガワシューズ梱包材20000
100092021/12/2220211222ホリ薬局梱包材45000
100102021/11/2120211121ホリ薬局事務機21000
100112022/1/152022115ホリ薬局梱包材20000
100122021/12/1520211215サナダ歯科定期雑誌23000
100132021/11/2520211125ニシノ弁当定期雑誌47000
100142022/1/9202219サナダ歯科梱包材6000
100152021/12/2120211221ニシノ弁当事務機38000
100162022/2/212022221ホリ薬局事務機32000
100172021/10/1520211015サナダ歯科梱包材50000
100182021/12/72021127イマガワシューズ定期雑誌29000
100192022/2/212022221ナイトウフルーツ事務機35000
100202022/1/192022119ナイトウフルーツ定期雑誌15000

COUNTIFS関数の構文は以下の通りです。

COUNTIFS(検索条件範囲1, 検索条件1, [検索条件範囲2, 検索条件2], ...)

COUNTIFS関数には以下の引数があります。

  1. 検索条件範囲1:検索条件1を適用するセルの範囲です。
  2. 検索条件1:検索条件範囲1で検索する条件です。数値、文字列、数式を使用できます。
  3. 検索条件範囲2, 検索条件2, …:追加の検索条件範囲と検索条件を指定できます。これらはオプションで、必要に応じて複数の条件を指定できます。

以下が使用例です。上は通常の設定、下は各列に名前を付けた場合の設定サンプルです。

対象が1つ

=COUNTIFS($B$2:$B$21,B2)
=COUNTIFS(日付,B2)

対象が3つ

=COUNTIFS($C$2:$C$21,C2,$D$2:$D$21,D2,$E$2:$E$21,E2)
=COUNTIFS(納入年,C2,納入月,D2,納入日,E2)

それではより詳しくみていきましょう。

同じ値を持つレコードの発見方法(1種)

それでは上の表を用いて【同じ「日付」を持つ行(レコード)を発見する。】を実行しましょう。以下の手順で、COUNTIFS関数を使用して同じ値を持つレコードを発見することができます。

  1. ヘルパー列を作成します。新しい列(例: I列)を追加します。
  2. I2セルに次の式を入力します。下へコピーすることを考慮し、「検索条件範囲」には絶対参照を設定しておきます。
=COUNTIFS($B$2:$B$21, B2)

この式は、B列の各セルの値がB2からB21の範囲内で何回現れるかをカウントします。

  1. I列の下のセルまで式をコピーします。
  2. I列で「2」以上の値を持つセルは、その値が重複していることを示しています。
  3. オートフィルターなどを使って「ヘルパー列:2以上」で抽出すれば重複レコードを容易に発見できます。

また、各列に名前を付けておけば下記のように読みやすい式にすることができます(範囲名を設定しておく)。検索条件範囲に対する絶対参照の設定も不要です。

=COUNTIFS(日付,B2)

なお、条件が1つの場合はCOUNTIF関数でも同じ結果が得られます。

=COUNTIF($B$2:$B$21, B2)
=COUNTIF(日付,B2)

同じ値を持つレコードの発見方法(複数種)

COUNTIFS関数を使用すると、複数の条件を指定して重複を検出することもできます。ここでは【同じ「納入年」「納入月」「納入先」を持つ行(レコード)を発見する】の操作を実行します。COUNTIFS関数では複数の条件を設定することでAND条件検索が実行されます。

  1. ヘルパー列を作成します。新しい列(例: J列)を追加します。
  2. J2セルに次の式を入力します。下へコピーすることを考慮し、「検索条件範囲」には絶対参照を設定しておきます。
=COUNTIFS($C$2:$C$21,C2,$D$2:$D$21,D2,$F$2:$F$21,F2)

この式は、C列とD列とF列の値の組み合わせが何回現れるかをカウントします。

  1. J列の下のセルまで式をコピーします。
  2. J列で「2」以上の値を持つセルは、その値が重複していることを示しています。
  3. オートフィルターなどを使って「ヘルパー列:2以上」で抽出すれば重複レコードを容易に発見できます。

また、各列に名前を付けておけば下記のように読みやすい式にすることができます(範囲名を設定しておく)。検索条件範囲に対する絶対参照の設定も不要です。

=COUNTIFS(納入年,C2,納入月,D2,納入先,F2)

なお、条件が1つの場合はCOUNTIF関数でも同じ結果が得られます。

まとめと参考情報

ExcelのCOUNTIF関数とCOUNTIFS関数を使用することで、簡単にデータ内の重複を発見することができます。

また、重複データの発見には「条件付き書式」の利用も有効です。以下にその記事を紹介します。

条件付き書式を用いた重複データの発見

Excelでの重複レコードのハイライト方法(条件付き書式を使う)
Excelでの重複レコードのハイライト方法(条件付き書式を使う)Excelの条件付き書式は、特定の条件を満たすセルを視覚的に強調表示するための非常に便利なツールです。この記事では、Excelのシート内で同じ日付が使われているセルをハイライト...

 

コメント