Excel

【Excel実務】IF関数とCOUNTIF関数でリストの差分比較をする

ねぇもりさん、2つのリストを目で見比べて、違いを確認する作業をやってるんだ。なんか良い方法ないかな~?
もりさん
もりさん
それなら、関数を使ってサクッと調べちゃおう!

Excel作業で、列同士の文字列や数字を比較して、差分チェックをすることってありますよね。

たとえば、A列とB列の文字列を比較して、

  • A列にあってB列にないもの
  • B列にあってA列にないもの
  • A列B列両方にあるもの

まさかこれを全件目視でチェックするなんて・・・苦行ですよね。

ここはサクッと関数でチェックしちゃいましょう。

Excelシートの二つのリストを比較する

「X月15日締めの伝票番号一覧」と「X月末日締めの伝票番号一覧」を比較して、「15日~末日の間に増加した伝票一覧」を抽出します。

Excelリスト比較サムネイル

「両方の列を昇順ソートして同じ行の値比較する」方法がありますが、上記の例の場合、伝票の種類によって番号の先頭が「1からはじまる」「2からはじまる」「3からはじまる」の3種類存在するので、昇順ソートでは比較できないのです。

使用する関数

この作業で使用するのは、毎度おなじみこの2つです。

  • IF関数
  • COUNTIF関数

IF関数とCOUNTIT関数を入れ子にして使用します。

Excelリスト比較2

「C列の伝票番号」が「B列の一覧」に存在するか、COUNTIF関数で件数を確認します。

もし、COUTIF関数の結果が0件であれば、C列の伝票番号はB列に存在しないことがわかります。

つまり、それは15日~末日までの間の”追加伝票”となります。

Excelリスト比較3

「C列にあってB列にない伝票番号」が7件ありますね。

関数のチェックだけでなく、念には念を、件数確認もしましょう!

  • 15日伝票:15件
  • 末日伝票:21件

追加伝票は6件のはずなのですが、なぜか7件ありますね。

ここから考えられるのが、「15日時点で存在した伝票のうちの1件が、末日までの間に削除されている」ことです。

これも関数でチェックしてみましょう。
C列に列を追加します。

「B列の伝票番号」が「D列の一覧」に存在するか、COUNTIF関数で件数を確認します。

Excelリスト比較4

やはり1件削除されていました。
15日時点では存在した20005が末日には消えています。

Excelリスト比較5

これで件数チェックの整合性もOKですね。

差分チェックは関数を使ってサクッと、正確に、片づけちゃいましょう。

もりさん
もりさん
目視点検なんてぜったいダメだよ!
そもそも人間の目はあてにならないし、時間もかかるからね