XLOOKUPで2つの条件を検索|&連結と条件比較の使い分け

2つの条件で 商品名を探す。無料Excelサンプル付き。

XLOOKUPで2条件を指定する方法は、検索値と検索列をそれぞれ&でつなぐ方法と、2つの比較式を掛け合わせる方法があります。文字列を単純連結すると別の組み合わせが同じ値になることがあるため、区切り文字を入れるか条件ごとに比較します。

XLOOKUP で 2 つの条件を指定する式は、次の 2 通りです。B2 の分類と B3 の番号の両方に合う行を探し、名称(G3:G7)を返します。

B4に入力:分類と番号を「/」でつないで探す
数式=XLOOKUP(B2&"/"&B3,E3:E7&"/"&F3:F7,G3:G7,"該当なし",0)
ひとことで2 つの条件を 1 つの値にして、同じようにつないだ表から探す
B2&"/"&B3
探す値です。分類(B2)と番号(B3)を「/」でつなぎます
E3:E7&"/"&F3:F7
探す列です。分類の列と番号の列を、同じ順番でつなぎます
G3:G7
返す列です。名称
補足「/」を入れるのは、別の組み合わせが同じ文字にならないようにするためです。
B4に入力:条件ごとの比較を掛け合わせて探す
数式=XLOOKUP(1,(E3:E7=B2)*(F3:F7=B3),G3:G7,"該当なし",0)
ひとことで両方の条件に合う行が 1 になるので、その 1 を探す
(E3:E7=B2)
条件1:分類の列が B2 と同じ
*
「かつ」。両方に合う行だけが 1 になります
(F3:F7=B3)
条件2:番号の列が B3 と同じ
1
探す値です。両方に合う行(1)を探します
補足条件が 3 つ以上なら *(列=条件) を足します。当てはまる行を全部出したいときは、FILTER で複数該当を抽出します。
練習用Excelファイル(無料ダウンロード)
B2が分類、B3が番号、B4が検索結果です。E3:E7とF3:F7を条件列、G3:G7を名称として検索します。B・103の初期条件ではぶどうが返ります。Microsoft 365向け。XLOOKUP・FILTER・UNIQUEの例はExcel 2024・2021でも利用できます。本文の対応版もご確認ください。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り
目次

サンプルの基本式

B4に入力:分類と品番を「&」でつないで検索する
数式=XLOOKUP(B2&B3,E3:E7&F3:F7,G3:G7,"該当なし",0)
ひとことで分類と品番を1つの文字列にして、同じようにつないだ表から名称を探す
B2&B3
検索値です。分類(B)と品番(103)をつなげた「B103」になります
E3:E7&F3:F7
検索範囲です。分類の列と品番の列を、1行ずつつなげます。同じ順番でつなぐのがポイントです
G3:G7
戻り範囲です。見つかった行の名称を返します
"該当なし"
条件に合う行が無いときの表示です。省略すると #N/A になります
0
一致モードです。0は完全一致で、省略しても同じです
データの流れ
① 分類と品番をつなげた検索キーで、同じキーの行を探す結果
検索キーB103G5ぶどう
ポイントB2の分類とB3の番号を1つの検索値にし、表側でもE列とF列を同じ順番につなぎます。サンプルのB・103ではぶどうが返ります。分類と番号の順番を片側だけ逆にすると一致しません。
分類と品番の2つの条件で検索する(XLOOKUPと&)式 =XLOOKUP(B2&B3,E3:E7&F3:F7,G3:G7,"該当なし") の解説図。B4に入力する
B4に =XLOOKUP(B2&B3,E3:E7&F3:F7,G3:G7,"該当なし") を入力。B と 103 をつないだ B103 を 分類&品番の列から探す → 3行目の名称 ぶどう

まず動かしてみよう|この記事のサンプルをその場で試せます

練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。

XLOOKUP の基本(書き方・一致モード・下から検索・VLOOKUP との違い)は、XLOOKUP関数の使い方にまとめています。

区切り文字を入れて識別する

B6に入力:間に区切り文字「/」を入れてつなぐ
数式=XLOOKUP(B2&"/"&B3,E3:E7&"/"&F3:F7,G3:G7,"該当なし",0)
ひとことでつなぐ間に「/」を挟んで、別々の値が同じ文字列になるのを防ぐ
B2&"/"&B3
検索値です。「B/103」のように、間に「/」が入ります
E3:E7&"/"&F3:F7
検索範囲も、同じ区切りでつなぎます。検索値と同じルールにそろえます
G3:G7
戻り範囲です。見つかった行の名称を返します
データの流れ
① 区切りなしでは同じになる値が、別の文字列になる結果
AB+CAB/CA+BCA/BC
注意ABとC、AとBCは単純連結ではどちらもABCですが、区切りを入れるとAB/CとA/BCになります。ただし元の値に/が含まれる場合、この方法でも衝突する可能性があります。区切り文字はデータに含まれないものを選びます。

2つの比較式で検索する

B7に入力:2つの比較式を掛け算して検索する
数式=XLOOKUP(1,(E3:E7=B2)*(F3:F7=B3),G3:G7,"該当なし",0)
ひとことで条件ごとに TRUE/FALSE を作って掛け算し、両方満たす行の「1」を探す
E3:E7=B2
分類がB2と同じ行が TRUE になります
F3:F7=B3
品番がB3と同じ行が TRUE になります
*
掛け算です。TRUE=1・FALSE=0 なので、両方満たす行だけが 1 になります
1
検索値です。掛け算の結果から、最初の 1 の行を探します
データの流れ
① 分類も品番も一致した行だけが 1 になる
3行目04行目05行目16行目07行目0
▼
② 1 の行の名称を返す結果
G5ぶどう
ポイント各条件の一致を個別に調べるので、連結後の文字列が同じになる問題を避けられます。数値と文字列は別として比較されるため、番号の型をそろえてください。数字に見える文字列を扱う場合も、IDとしての先頭0を消してよいかを先に決めます。

3条件に増やす場合

説明用にH3:H7を拠点、B5を拠点の検索値として追加します。

B8に入力:3つめの条件を掛け算で足す
数式=XLOOKUP(1,(E3:E7=B2)*(F3:F7=B3)*(H3:H7=B5),G3:G7,"該当なし",0)
ひとことで比較を「*」で1つ足すだけで、条件を増やせる
H3:H7=B5
追加した3つめの条件です。拠点がB5と同じ行が TRUE になります
E3:E7=B2
分類の条件です。2条件のときと同じです
F3:F7=B3
品番の条件です。2条件のときと同じです
補足各範囲は、3行目から7行目にそろえます。行数が違うと、正しく計算できません。

各範囲は3行目から7行目にそろえます。3条件すべてが一致する行だけ1です。部分一致を使う条件は通常の等号比較とは別に設計する必要があります。

重複する条件がある場合

ポイント同じ分類・番号が複数行にあれば、通常は先頭の1件が返ります。末尾の1件が欲しければ検索モードを-1にします。全件表示が目的ならFILTERで複数一致を抽出へ進んでください。集計したいときは検索関数ではなくSUMIFSなどを選びます。

日付を条件に含めるとき

注意日付は見た目が同じでも、数値の日付と文字列の日付では違います。比較式方式なら、両方を数値の日付にそろえると判断しやすくなります。連結式でTEXTを使う場合は、検索側と表側で同じ書式を指定します。書式だけの変更では文字列の日付は数値に変わりません。

Excel 2019・2016で共有する必要がある場合はINDEX+MATCHの複数条件検索も確認してください。

結果が出ない・おかしいときの確認表(該当なし・別の値・#N/A)

式は合っているのに、思った値が返らないときは、次の表で原因を探します。練習ツールの「本文の式」タブで、品番を文字列の「103」や全角の「103」に変えて、違いを確かめられます。

症状よくある原因対処
データはあるのに「該当なし」(比較式)数値の103と文字列の「103」、または全角と半角が違う。比較式の「=」は、これらを別の値として扱います表側と検索側の型をそろえます。連結式は、数値も文字列もつなぐと同じになるので、この違いを吸収します
データはあるのに「該当なし」(連結式)値の前後に余分なスペースがあるTRIM関数でスペースを取り除きます。空白(スペース)を削除する方法が参考になります
期待と違う行の値が返る区切りなしの連結で、別々の値が同じ文字列になっている(「AB」+「C」と「A」+「BC」など)区切り文字を入れるか、比較式に変えます。練習ツールの「区切りなしの落とし穴」タブで確認できます
結果が空白ではなく0になる戻り範囲のセルが空白XLOOKUPは、空白のセルを0として返します。空白で表示したいときは、IF関数などで切り替えます
#N/A エラーになる第4引数を省略していて、一致する行が無い第4引数に「該当なし」などを指定します。XLOOKUPで見つからないときの表示を変える方法も参考になります
練習用Excelファイル(無料ダウンロード)
B2が分類、B3が番号、B4が検索結果です。E3:E7とF3:F7を条件列、G3:G7を名称として検索します。B・103の初期条件ではぶどうが返ります。Microsoft 365向け。XLOOKUP・FILTER・UNIQUEの例はExcel 2024・2021でも利用できます。本文の対応版もご確認ください。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り

次に読むと理解が深まる記事

参考:Microsoft公式ドキュメント XLOOKUP

XLOOKUPで複数の条件を指定したいときは、XLOOKUPの複数条件の書き方(2つ・3つ以上・OR・行と列)で、すべてのパターンをまとめて解説しています。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次