ヘルプの森~Excel・Access・Office全般ヘルプデスクサイト

No.014

2つのデータを比較し、他方にない(両方にある)データを探す 《VLOOKUP・COUNTIF》

2003/2007/2010/2013

お仕事ではよくあるのではないでしょうか。
例えば本年度と昨年度のデータがあり、あるデータが本年度にあるが昨年度にはないとか、本年度昨年度両方にあるデータを調べたい、といった場合です。

2つのデータを比較するには、いろいろな方法がありますが、今回は関数を利用して判断する方法を2つご案内します。

<VLOOKUP関数>

VLOOKUP関数(関数の分類: 検索/行列)を使うと「他方のデータにあるかないか」を確認することができます。
ポイントは、引数[範囲]に相手の(他方の)データを指定することです。

B列のデータがF列にあるかどうかは、範囲にF列を指定します。

  =VLOOKUP(B2,$F$2:$F$10,1,0)

F列のデータがB列にあるかどうかは、範囲にB列を指定します。

  =VLOOKUP(F2,$B$2:$B$11,1,0)

VLOOKUP比較

VLOOKUP関数では該当がなければエラーを出しますので、エラー値「#N/A」が返ったということは相手方のデータに存在しないということになります。

<COUNTIF関数>

COUNTIF関数(関数の分類: 統計)を使って相手方データに何件あるかを求める方法です。
この場合もVLOOKUP関数のときと同様、引数[範囲]に相手のデータを指定します。

B列のデータがF列に何件あるかは、範囲にF列を

  =COUNTIF($F$2:$F$10,B2)

F列のデータがB列に何件あるかは、範囲にB列を指定します。

  =COUNTIF($B$2:$B$11,F2)

COUNTIF比較

COUNTIF関数では件数が答えですので、0と返った場合は相手方にのデータに存在しないということです。

どちらの方法においても、互いのデータの場所が別シートや別ブックとなる場合は(普通そうでしょうね)、もちろん引数[範囲]は別シート、別ブックの範囲を指定します。

関連ヘルプ

新規メールが開くハイパーリンクをまとめて設定するには 《HYPERLINK》
重複データを調べる 《COUNTIF》
設定されているリンクを保ちながら、行と列を入れ替えて表を貼り付けたい 《配列数式/TRANSPOSE》
VLOOKUP関数の結果がエラー値の場合には空白で表示させる 《IFERROR・IF・ISERROR》
0を抜いた最小値を調べるには 《MIN・SMALL・COUNTIF・IF》
3つ以上ある範囲に条件分岐するには(多分岐) 《IF》
データに連番をふる、同じデータには同じ番号 《INDEX・MATCH・COUNTIF・MAX》
規則性がない空白セルを除いた行に連番をふるには 《IF・COUNTA・COUNTIFS》
複数条件を満たすデータの件数を求めるには 《COUNTIF・COUNTIFS・SUMPRODUCT》
奇数行の合計、偶数行の合計、n行おきの合計を求める 《配列数式/IF・SUM・MOD》
時刻を5分単位で切り上げまたは切り捨てて表示するには 《CEILING・FLOOR・ROUNDUP》
参照式の参照セルが移動しても固定されるようにしたい 《INDIRECT》
VLOOKUP関数で、複数テーブルから検索したい 《VLOOKUP・アンパサンド》
OR条件に当てはまるデータの合計を求める 《SUMIF・SUMIFS・SUMPRODUCT・DSUM》
日付を表す8桁の数値データを、6桁の和暦にしたい 《DATE・TEXT》
twitter hatena line pocket