Microsoft 365のExcelでは、FILTER関数とCOUNTIF関数を組み合わせることで、2つのリストを比較し、一致しないデータだけを簡単に抽出できます。重複データを取り出す方法はよく紹介されていますが、「逆に一致しないものだけを表示したい」というケースも実務では非常に多いです。
たとえば顧客一覧の差分確認、商品コードの照合、名簿比較などでも活用できます。
今回のサンプルデータ
| A列 | B列 |
|---|---|
| 赤 | 赤 |
| 緑 | 黄色 |
| 青 | 青 |
この場合、「A列にあってB列に存在しないもの」は「緑」になります。
逆に「B列にあってA列に存在しないもの」は「黄色」です。
A列にあってB列にないデータを抽出する関数
Microsoft 365では次の式で抽出できます。
=FILTER(A1:A3,COUNTIF(B1:B3,A1:A3)=0)
この式の意味は以下の通りです。
- COUNTIF(B1:B3,A1:A3) → B列にA列の値が存在するか確認
- =0 → 存在しないものだけTRUE
- FILTER → TRUEになったデータだけ表示
結果として「緑」が表示されます。
B列にあってA列にないデータを抽出する場合
逆方向で比較したい場合は、範囲を入れ替えるだけです。
=FILTER(B1:B3,COUNTIF(A1:A3,B1:B3)=0)
この場合は「黄色」が抽出されます。
FILTER関数とCOUNTIF関数の相性が良い理由
FILTER関数は条件に一致したデータだけを一覧表示できるため、COUNTIFとの組み合わせで「存在確認」が簡単にできます。
従来のExcelではIF関数やMATCH関数を複雑に組み合わせる必要がありましたが、Microsoft 365ではかなりシンプルになりました。
よくある活用例
- 名簿の差分チェック
- 在庫一覧の比較
- 重複除外リスト作成
- CSVデータの照合
- 未登録データ抽出
データ件数が多い場合の注意点
数千〜数万件規模のデータでも使用できますが、COUNTIFを大量データに使うと少し重くなることがあります。
その場合は、テーブル化やPower Queryを利用するとさらに高速になります。
ただし、通常の業務レベルであればFILTER×COUNTIFだけでも十分実用的です。
一致するデータだけ抽出する式との違い
重複データを表示する場合は次のようになります。
=FILTER(A1:A3,COUNTIF(B1:B3,A1:A3)>0)
「>0」を「=0」に変えるだけで、「一致する」から「一致しない」に切り替えられるのがポイントです。
まとめ
Microsoft 365では、FILTER関数とCOUNTIF関数を組み合わせることで、2つのリストを比較し、一致しないデータだけを簡単に抽出できます。
=FILTER(抽出範囲,COUNTIF(比較範囲,抽出範囲)=0)
この形を覚えておくと、名簿照合や差分チェックなど幅広い業務で活用できます。


コメント