いきなり答える備忘録

Google Workspace(旧G Suite)・Microsoft 365・LibreOfficeなどに関するメモ

(Excel)2つの列で重複する値(しない値)を抽出する

 Excelで2つの列を比較して、一方の列に存在する値のうち、もう一方の列にも存在するもの(または存在しないもの)を抽出する方法です。

  • FILTER関数とCOUNTIF関数を用いて、ある列を別の列と比較して値が一致するもの・しないものをそれぞれ抽出できます。

手順

f:id:accs2014:20201128155247p:plain:right:w600

 2つの列にグループA、グループBとしてそれぞれ魚介類の名前が並んでいます。
 E3セルには次のような式を入力し、「グループAのうちグループBにも存在するもの」を抽出しています。

 E3セル

=FILTER(B3:B9,COUNTIF(C3:C8,B3:B9)>0)

 「COUNTIF(C3:C8,B3:B9)」により、B3:B9の各値がC3:C8の範囲にそれぞれ何個ずつ存在しているのかを一括して取得しています。その結果をFILTER関数と組み合わせることにより、1個以上存在しているものだけを抽出しています。
 結果的に2つの列で一致するものを求めていますので、(「B3:B9」と「C3:C8」を入れ替えて)「グループBのうちグループAにも存在するもの」を求めても同じ結果になります(順番は変わりますが)。
 

f:id:accs2014:20201128155251p:plain:right:w600

 こちらではE3セルには式を入力し、「グループAのうちグループBに存在しないもの」を抽出しています。

 E3セル

=FILTER(B3:B9,COUNTIF(C3:C8,B3:B9)=0)

 上記の式中の「>」が「=」になっただけです。つまりB3:B9の各値がC3:C8の範囲にそれぞれ何個ずつ存在しているのかを一括して取得し、0個であるものだけを抽出しています。
 あくまでグループAに存在するものを基準として判定していますので、(「B3:B9」と「C3:C8」を入れ替えて)「グループBのうちグループAに存在しないもの」を求めると全く異なる結果となります。