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

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

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

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

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

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

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

  1. 同じ「日付」を持つ行(レコード)を発見する。
  2. 同じ「納入年」「納入月」「納入先」を持つ行(レコード)を発見する
売上番号 日付 納入年 納入月 納入日 納入先 商品 納入金額
10001 2021/10/18 2021 10 18 ニシノ弁当 定期雑誌 28000
10002 2022/1/9 2022 1 9 ナイトウフルーツ 梱包材 8000
10003 2022/2/11 2022 2 11 ニシノ弁当 梱包材 30000
10004 2021/12/10 2021 12 10 イマガワシューズ 事務機 28000
10005 2022/1/20 2022 1 20 ナイトウフルーツ 定期雑誌 28000
10006 2022/2/21 2022 2 21 ホリ薬局 定期雑誌 35000
10007 2022/1/11 2022 1 11 ニシノ弁当 定期雑誌 35000
10008 2022/2/17 2022 2 17 イマガワシューズ 梱包材 20000
10009 2021/12/22 2021 12 22 ホリ薬局 梱包材 45000
10010 2021/11/21 2021 11 21 ホリ薬局 事務機 21000
10011 2022/1/15 2022 1 15 ホリ薬局 梱包材 20000
10012 2021/12/15 2021 12 15 サナダ歯科 定期雑誌 23000
10013 2021/11/25 2021 11 25 ニシノ弁当 定期雑誌 47000
10014 2022/1/9 2022 1 9 サナダ歯科 梱包材 6000
10015 2021/12/21 2021 12 21 ニシノ弁当 事務機 38000
10016 2022/2/21 2022 2 21 ホリ薬局 事務機 32000
10017 2021/10/15 2021 10 15 サナダ歯科 梱包材 50000
10018 2021/12/7 2021 12 7 イマガワシューズ 定期雑誌 29000
10019 2022/2/21 2022 2 21 ナイトウフルーツ 事務機 35000
10020 2022/1/19 2022 1 19 ナイトウフルーツ 定期雑誌 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のシート内で同じ日付が使われているセルをハイライ...

 

コメント

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