VLOOKUPで複数条件を指定する方法|作業列・XLOOKUP・FILTER
※写真はイメージです
書き方
=VLOOKUP(条件1&条件2, 作業列からの範囲, 列番号, FALSE)VLOOKUPは検索値を1つしか持てません。そこで表の左に「条件をつないだ列(作業列)」を作り、検索値も同じようにつないで探します。Microsoft 365なら作業列なしで XLOOKUP や FILTER が使えます。
この図の表をExcelファイルでダウンロード(問題と答えのシートつき)
作業列の作り方
表のいちばん左に列を挿入し、=B2&C2 と入れて下までコピーします。VLOOKUPは範囲のいちばん左の列で探すので、作業列は必ず左に置きます。
見せたくなければ、作業列を右クリック →「非表示」にしておけます。
作業列なしで:XLOOKUP
=XLOOKUP(F2&G2,B2:B4&C2:C4,D2:D4)検索する範囲の側も B2:B4&C2:C4 とつなげば、作業列がいりません。Microsoft 365・Excel 2021以降で使えます。
作業列なしで:FILTER
=FILTER(D2:D4,(B2:B4=F2)*(C2:C4=G2))条件どうしを *(掛け算)でつなぐと「かつ」になります。当てはまる行が複数あれば、全部が並んで出ます。
古いExcelで作業列なし:INDEX+MATCH
=INDEX(D2:D4,MATCH(1,(B2:B4=F2)*(C2:C4=G2),0))Excel 2019以前は、式を入れたあと Ctrl+Shift+Enter で確定します(配列数式)。
取り出すのが数字なら SUMIFS でも引ける
ただし、同じ組み合わせが2行あると足された数が出ます。重複がない表でだけ使います。
うまくいかないとき
1#N/A になる
つないだ文字が作業列と一致していません(間に空白がある、全角・半角の違いなど)。
直し方=F2&G2 を別のセルに出して、作業列の値と見比べます。
2違う行の値が出る
「東京」&「1」と「東京1」&「」のように、つないだ結果が同じになる組み合わせがあります。
直し方=B2&"|"&C2 のように、間に区切りの記号を入れてつなぎます。
サンプルファイルで試す
「問題」のシートの黄色いセルに式を入れて、「答え」のシートと比べてください。
vlookup-fukusu.xlsx をダウンロード(無料・登録なし)
よくある質問
条件が3つ以上でもできますか?
はい。作業列を <code>=B2&C2&D2</code> とし、検索値も同じ順でつなぎます。
Googleスプレッドシートでも同じですか?
作業列のやり方とFILTERは同じです。XLOOKUPも使えます。
一緒に覚えたい関数・操作
このページについて
操作の説明は Microsoft 365 の日本語版Excel(Windows)に合わせています。図はこのサイトで作ったもので、表の会社名・商品名・人名は架空です。運営者情報