shikumika’s diary

日々の事務作業で手間なことを簡単にできる仕組み(自動化、方法など)、困ったことの解決方法を調べた備忘録

【Excel】VLOOKUPとXLOOKUPで複数条件で検索する方法(スピルの活用)

ExcelのVLOOKUP関数とXLOOKUP関数で、複数条件による検索方法の事例です。スピルが利用できるExcel(Microsoft365など)では、シンプルな数式で複数条件による検索が可能です。

内容:

参考: 動的配列数式とスピル配列の動作 - Microsoft サポート

複数条件で検索する数式例

下図は検索対象の表($B$3:$D$8)で「B列に合致、かつ、C列に合致」の複数条件で検索し、一致する行のD列を取得するVLOOKUP関数とXLOOKUP関数の事例です。

スピル機能(VLOOKUP関数の場合、HSTACK関数も併用)で、このようなデータ取得が可能です。

スピル機能を活用し、複数条件による検索を可能としています

VLOOKUPとXLOOKUPで複数条件で検索する方法

上記事例で、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で複数条件による検索が可能です。

補足説明

スピルの説明

スピルとは、以下で「数式によって複数の値が生成され、その値が隣のセルに配置されることです」と説明があります。 

support.microsoft.com

”複数列”を検索範囲にする方法

VLOOKUP関数とXLOOKUP関数で複数列を検索範囲にして値を抽出する方法の事例です。

shikumika.org

(参考)XLOOKUP関数の特徴と活用事例

ExcelのXLOOKUP関数は検索列と結果列の選択がしやすいなど、便利な関数です。以下に特徴と活用事例をまとめています。

shikumika.org

以上、VLOOKUPとXLOOKUPで複数条件で検索する方法(スピルの活用)でした。