LWP | VLOOKUPをスピル的に使う | 記事199
VLOOKUPをスピル的に使う
~検索値と戻り列を配列にすると、結果の数と向きがどう変わるか~
Copyright © 2026 LWP 山中 一弘
本資料は、出典を明記いただければ、商用・非商用を問わず、ご自由に複製・改変・再配布していただけます。なお、著作権表示は改変せず、そのまま記載してご利用くださいますようお願いいたします。
記事要約
VLOOKUPは、動的配列対応Excelでは「1つしか返せない関数」ではありません。検索値または戻り列番号へ配列を渡すと、複数の結果をスピルできます。
大切なのは、何を複数にしたかと、その配列が縦か横かを分けて考えることです。検索値を複数にする場合と戻り列を複数にする場合では、同じ「複数結果」でも意味が異なります。
1 VLOOKUPは「1つしか返せない関数」ではない
まずは通常のVLOOKUPから、どの引数を配列へ変えると結果がどう広がるのかを確認します。

図1| VLOOKUPは、配列を渡す引数によって複数の結果を返せます。
2 検索値が複数の場合
検索値を配列にすると、複数のキーを順に検索します。これは「1つのキーに一致する全行を返す」使い方ではありません。

図2| 検索値配列の向きに合わせて、検索結果も縦または横にスピルします。
3 戻り列が複数の場合
列番号を配列にすると、1つの検索行から商品名・単価・在庫など複数列の値をまとめて取り出せます。

図3| 列番号配列の向きに合わせて、同じ検索行の複数列がスピルします。
4 配列の向きで返ってくる形も変わる
配列定数では、セミコロンが縦、カンマが横を表します。値の個数だけでなく、配列の向きまで含めて数式を読みます。

図4| どの引数へ、どの向きの配列を渡したかが結果の形を決めます。
5 両方を配列にしても、うまく二次元にはならない
配列を受け取れることと、2つの配列を直積として展開できることは別です。Excel 16.0で図の式を実測すると、結果は3行×1列にスピルしました。

図5| 両方の引数を配列にしても、期待した3行×3列の表が自動生成されるとは限りません。
まとめ
VLOOKUPをスピル的に使うときは、次の3点を分けて確認します。
・検索値を複数にしたのか、戻り列を複数にしたのか
・配列は縦向きか、横向きか
・複数の配列を渡したとき、その関数がどのように処理するか
「複数返す」という言葉だけでまとめず、配列を渡した引数と配列の形を見ることが、結果を正しく予測する近道です。
出典メモ
・記事原案:『VLOOKUPをスピル的に使う ― 検索値が複数の場合と戻り列が複数の場合』
・掛け合いインフォグラフィック:コイ丸先輩 × シャケもん(全5点)
・動的配列の一般仕様:Microsoft Support「動的配列数式とスピル配列の動作」
・VLOOKUPの構文:Microsoft Support「VLOOKUP関数」
・両方の引数を配列にした式:Microsoft Excel 16.0で2026年8月25日に実測
参考リンク
動的配列数式とスピル配列の動作(Microsoft Support)
https://support.microsoft.com/ja-jp/excel/dynamic-array-formulas-and-spilled-array-behavior
VLOOKUP関数(Microsoft Support)
https://support.microsoft.com/ja-jp/office/vlookup-%E9%96%A2%E6%95%B0-0bbc8083-26fe-4963-8ab8-93a18ad188a1
