VLOOKUPではできない、検索値を2列以上のセルの中から指定して重複にも対応する

検索値に紐づいた値を抽出するのにVLOOKUP関数が便利です。
しかし検索値は1列しか指定できません。

隣のセルどおしをそのまま使って良いならばセルを繋げるだけなので簡単ですが、セルがバラバラで抽出したいものがどこにあるかわからない、さらに重複もある場合は困難です。

そういった場合の指定方法はVLOOKUPを使わずに以下のような式で対応すると良いです。

例えば下図があります。
この中から「担当者が山田」「評価がA」のものを抽出したいとき、単純にA列とB列を繋げただけでは対応できません。
重複するものが出てきてしまいます。

0403

ではどうしたらよいか。
以下のように配列を使っていきます。

H2へ式を挿入します。

=IFERROR(INDEX($C$2:$C$10,SMALL(IF(($A$2:$A$10=$F2)*($B$2:$B$10=$G2),ROW($A$2:$A$10)-1),COLUMN(A1))),"")

「Ctrl+Shift+Enter」で確定します。
式の前後に{}がついて値が返るようになります。

0403_2

残りのセルには横方向、下方向へはオートフィルコピーするだけです。
抽出件数が何件あるかわからないので、横方向へコピーしました。

もし下方向へコピーする場合は、式の最後にあるCOLUMNをROWへ変更します。
また参照させるセルの「$」を変更すればコピーできます。