VLOOKUP関数 複数列の条件に一致するものを抽出したい

抽出したいものが数値で合計を出したい場合はSUMIFS関数を使えば簡単にできますが、抽出したい値が文字列だった場合はどうしたら良いか?

VLOOKUPをそのまま使うと検索値はひとつだけしか指定できません。

これを応用して、複数列の中から検索値に合致する値の文字列を抽出する方法です。

例えば下図のような表があります。

左端には必ず番号を振っておくのがポイントです。

20180420

ここから下図のようなデータに一致するE列の値を抽出してみます。

20180420a




J2に以下の関数を挿入します。

=VLOOKUP(SUMPRODUCT(((($B$2:$B$11=G2)*($C$2:$C$11=H2)*($D$2:$D$11=I2)*($A$2:$A$11)))),$A$2:$E$11,5,0)

J3にコピーすると、下図のように値が抽出されます。

20180420b

SUMPRODUCTでB列に一致する条件、C列に一致する条件、D列に一致する条件を指定し、A列を合計するようにしています。(重複がない前提なので番号は合計されずそのまま番号の数値が返ります)

VLOOKUPの検索値に番号が返ってきますので、あとは通常のVLOOKUPと同じようにデータ範囲を選択し、何列目を返すか指定し(今回は5)、完全一致の意味で「0」を指定します。

これで複数列の条件に合致した値が抽出できるようになります。