システム開発をしていると、あるシステムとあるシステムで保有しているデータを比較し、差分(片方に存在して片方に存在しないもの)はどれなのかを確認する場面はかなり多いと思っています。
例えばそのような状況で、Googleスプレッドシートを利用して対象データの差分比較を行う方法を以下共有します。
やりたいこと
以下キャプチャのように、A列の対象①とB列の対象②が存在するときに、対象データ①に存在し対象データ②に存在しない文字列を確認したい。

方法
IF関数とCOUNTIF関数を用いて確認を行う。
関数の記入
C2セルに以下の関数を記入する。
※中身の解説は後述
=IF(COUNTIF($B$2:$B$21,A2)=0,A2,””)

関数のコピー
先程記入した関数を、対象①の列分コピーする。
Macなら⌘+D、WindowsならControl+Dで一括コピーができます。
↓コピー後

この時点でC列に記載されているものが、A列にあってB列にない対象のデータになります。
少し解説
記入した関数について少し解説します。
=IF(COUNTIF($B$2:$B$21,A2)=0,A2,””)
それぞれの関数の概要は以下。
▪️IF関数
できること:論理式が TRUE の場合はある値を返し、FALSE の場合は別の値を返す
書式:IF(論理式, TRUE値, FALSE値)
例:IF(A2=100,”OK”,”NG”)
A2のセルに値が「100」の場合OKと記載し、そうでない場合NGと記載する
▪️COUNTIF関数
できること:範囲内で条件に一致する要素の個数を返す
書式:COUNTIF(範囲, 条件)
例:COUNTIF(A1:A10,”OK”)
A1~A10の範囲で「OK」と記載がある個数を返す
上記の関数概要を踏まえると、「=IF(COUNTIF($B$2:$B$21,A2)=0,A2,””)」の関数は、「B2からB21までの範囲でA2と同様の記載があるものの個数が0個の時、A2の値を出力し、1個以上の場合は空白にする」という意味になります。
終わりに
Vlookup関数などを利用しても差分比較はできると思いますが、簡単な関数で確認できるという意味ではこれが一番使いやすいのかなと思っています。
もし他にもっとやりやすい方法があればまた共有していこうと思います。
みていただきありがとうございました!
コメント