GoogleスプレッドシートのVLOOKUP関数に複数条件を指定する方法

GoogleスプレッドシートのVLOOKUP関数で複数条件に一致するデータを抽出する方法をご紹介します。条件と一致する複数列またはすべての行を抽出する方法についても解説しているので、ぜひ参考にしてみてください。

前提として、現在GooogleスプレッドシートではVLOOKUP関数の完全上位互換であるXLOOKUP関数が使えます。今回紹介する内容も、XLOOKUP関数を使った方が簡単です。

スポンサーリンク

複数条件に一致するデータを抽出する方法

スプレッドシートのVLOOKUP関数に複数条件を指定する方法

まず例のように複数の検索条件をアンパサンド(&)で結合し、それに対応する範囲も結合します。

例:VLOOKUP(E2&F2,{A2:A7&B2:B7,C2:C7},2,FALSE)

次に配列を使用していることを明示するため、[Ctrl]+[Shift]+[Enter] キーを押して先頭にArrayFormula関数を追加してください。

VLOOKUP(検索条件, 検索範囲, 指数, [並べ替え済み])

スプレッドシートのVLOOKUP関数に複数条件を指定する方法

中括弧内の {A2:A7&B2:B7, C2:C7} は、ひとまとまりで検索範囲です。記号と番号を結合しているので、仮にセルに入力すると AAA100 のように1列のセルに表示されます。

そのため範囲の先頭列を 1 として数えたときに、指数 2 に当たるのはC列のIDです。

指数とは値を抽出する列番号のことで、範囲の先頭列を 1 として数えます。

スプレッドシートのVLOOKUP関数に複数条件を指定する方法

同様に検索キーの結合結果(E2&F2) は、CCC200 になります。

VLOOKUP関数はこれらの結合された範囲の 1 列目から条件と一致する行を検索し、指数に指定した2列目の値 6 を返します。

 並べ替え済みとは、検索対象の列が並べ替え済みであるかどうかです。TRUE の場合は検索キーに最も近い値を返すため、基本的に FALSE を指定します。

スプレッドシートのVLOOKUP関数に複数条件を指定する方法

以下の通り検索範囲を固定すると、数式をオートフィルでコピーできます。このとき検索条件は1行ずつ移動させたいので、固定しないでください。

例:ArrayFormula(VLOOKUP(F2&G2, {$B$2:$B$7&$C$2:$C$7,$A$2:$A$7},2,FALSE))

スポンサーリンク

条件に一致する複数列のデータを抽出する方法

スプレッドシートのVLOOKUP関数で複数列を抽出する方法

記入例:VLOOKUP(E2, $A$2:$C$7,{2,3},FALSE)

まず検索条件と検索範囲を通常通り指定し、例のように指数に複数の列番号を入力してください。このとき{2,3}のように、中括弧にカンマで区切りながら入力します。

スプレッドシートのVLOOKUP関数で複数列を抽出する方法

抽出する複数列の結果を配列として展開するため、[Ctrl]+[Shift]+[Enter] キーを押して先頭にArrayFormula関数を追加します。

条件 3 と一致する行の2列目と3列目のセルを抽出するので、CCC と 150 を返します。

スプレッドシートのVLOOKUP関数で複数列を抽出する方法

条件と一致する行が複数あり、そのすべてを抽出したい場合は FILTER関数 が便利です。

FILTER関数 は指定した範囲を、条件を満たす行または列のみにフィルタ処理して返します。

例えばFILTER(B2:C6,A2:A7=E2)なら、記号がAAAと一致する行を検索し、フィルタ処理した結果を指定した範囲から返します。

FILTER関数の構成要素:(範囲, 条件1, [条件2, …])

タイトルとURLをコピーしました