ExcelのVLOOKUP関数とXLOOKUP関数で、複数条件による検索方法の事例です。スピルが利用できるExcel(Microsoft365など)では、シンプルな数式で複数条件による検索が可能です。
内容:
参考: 動的配列数式とスピル配列の動作 - Microsoft サポート
複数条件で検索する数式例
下図は検索対象の表($B$3:$D$8)で「B列に合致、かつ、C列に合致」の複数条件で検索し、一致する行のD列を取得するVLOOKUP関数とXLOOKUP関数の事例です。
スピル機能(VLOOKUP関数の場合、HSTACK関数も併用)で、このようなデータ取得が可能です。
上記事例で、VLOOKUP関数の数式がセルH4に、XLOOKUP関数の数式はセルH8に入力されています。
VLOOKUP関数の数式(セルH4):
=VLOOKUP(F4&","&G4,HSTACK($B$3:$B$8&","&$C$3:$C$8,$D$3:$D$8),2,FALSE)
XLOOKUP関数の数式(セルH8): =XLOOKUP(F8&","&G8,$B$3:$B$8&","&$C$3:$C$8,$D$3:$D$8,"",0,1)
数式の説明
複数条件で検索する場合、検索条件にするセルを連結する
まず、上記数式の赤字部分の説明です。
VLOOKUPとXLOOKUPで複数条件で検索する場合、検索条件や検索対象の「範囲」とするセルを連結した値を活用します。
具体的には、検索条件の値は上記数式の赤字部分で次のように指定しています。
上記数式でVLOOKUPの場合: F4&","&G4
”&”(アンパサンド)を用いて、セルを結合し、条件を一つの値にします。
なお、","を含めて結合している理由は各セルの値を明確にするためです。
","がない場合、例えば、「"AA"と”A”の結合」と「”A”と”AA”の結合」は”同じAAA”になってしまいます。
検索対象の「範囲」にするセルをスピルで指定する
検索対象の「範囲」にするセルにスピルを活用します。
例えば、以下はセルF3、H3、J3 にスピルを活用した結果です。隣接するその他のセルには数式は入っていません。
なお、スピルが使用できるExcelの場合、活用の準備は不要で、次のように数式を入力するだけです。
上図の「セルJ3」は、前述のVLOOKUP関数の数式で以下に相当します。
HSTACK($B$3:$B$8&","&$C$3:$C$8,$D$3:$D$8)
この結果である「セルJ3:K8」をみると、VLOOKUPの検索で「範囲」として活用できるイメージが持てると思います。
XLOOKUPの場合は、「検索範囲」だけを指定する数式なので、HSTACK関数は不要です。
以上のように指定することで、VLOOKUPとXLOOKUPで複数条件による検索が可能です。
補足説明
スピルの説明
スピルとは、以下で「数式によって複数の値が生成され、その値が隣のセルに配置されることです」と説明があります。
”複数列”を検索範囲にする方法
VLOOKUP関数とXLOOKUP関数で複数列を検索範囲にして値を抽出する方法の事例です。
(参考)XLOOKUP関数の特徴と活用事例
ExcelのXLOOKUP関数は検索列と結果列の選択がしやすいなど、便利な関数です。以下に特徴と活用事例をまとめています。
以上、VLOOKUPとXLOOKUPで複数条件で検索する方法(スピルの活用)でした。