Excel作業で、列同士の文字列や数字を比較して、差分チェックをすることってありますよね。
たとえば、A列とB列の文字列を比較して、
- A列にあってB列にないもの
- B列にあってA列にないもの
- A列B列両方にあるもの
まさかこれを全件目視でチェックするなんて・・・苦行ですよね。
ここはサクッと関数でチェックしちゃいましょう。
Excelシートの二つのリストを比較する
「X月15日締めの伝票番号一覧」と「X月末日締めの伝票番号一覧」を比較して、「15日~末日の間に増加した伝票一覧」を抽出します。
「両方の列を昇順ソートして同じ行の値比較する」方法がありますが、上記の例の場合、伝票の種類によって番号の先頭が「1からはじまる」「2からはじまる」「3からはじまる」の3種類存在するので、昇順ソートでは比較できないのです。
使用する関数
この作業で使用するのは、毎度おなじみこの2つです。
- IF関数
- COUNTIF関数
IF関数とCOUNTIT関数を入れ子にして使用します。
「C列の伝票番号」が「B列の一覧」に存在するか、COUNTIF関数で件数を確認します。
もし、COUTIF関数の結果が0件であれば、C列の伝票番号はB列に存在しないことがわかります。
つまり、それは15日~末日までの間の”追加伝票”となります。
「C列にあってB列にない伝票番号」が7件ありますね。
関数のチェックだけでなく、念には念を、件数確認もしましょう!
- 15日伝票:15件
- 末日伝票:21件
追加伝票は6件のはずなのですが、なぜか7件ありますね。
ここから考えられるのが、「15日時点で存在した伝票のうちの1件が、末日までの間に削除されている」ことです。
これも関数でチェックしてみましょう。
C列に列を追加します。
「B列の伝票番号」が「D列の一覧」に存在するか、COUNTIF関数で件数を確認します。
やはり1件削除されていました。
15日時点では存在した20005が末日には消えています。
これで件数チェックの整合性もOKですね。
差分チェックは関数を使ってサクッと、正確に、片づけちゃいましょう。
そもそも人間の目はあてにならないし、時間もかかるからね