VLOOKUPをスピル的に使う

LWP | VLOOKUPをスピル的に使う | 記事199

VLOOKUPをスピル的に使う

~検索値と戻り列を配列にすると、結果の数と向きがどう変わるか~

Copyright © 2026 LWP 山中 一弘

本資料は、出典を明記いただければ、商用・非商用を問わず、ご自由に複製・改変・再配布していただけます。なお、著作権表示は改変せず、そのまま記載してご利用くださいますようお願いいたします。

記事要約

VLOOKUPは、動的配列対応Excelでは「1つしか返せない関数」ではありません。検索値または戻り列番号へ配列を渡すと、複数の結果をスピルできます。

大切なのは、何を複数にしたかと、その配列が縦か横かを分けて考えることです。検索値を複数にする場合と戻り列を複数にする場合では、同じ「複数結果」でも意味が異なります。

1 VLOOKUPは「1つしか返せない関数」ではない

まずは通常のVLOOKUPから、どの引数を配列へ変えると結果がどう広がるのかを確認します。

通常のVLOOKUPと、配列を渡したときに複数結果をスピルできることの概要

図1| VLOOKUPは、配列を渡す引数によって複数の結果を返せます。

2 検索値が複数の場合

検索値を配列にすると、複数のキーを順に検索します。これは「1つのキーに一致する全行を返す」使い方ではありません。

検索値を縦配列または横配列で渡したときのVLOOKUPの結果

図2| 検索値配列の向きに合わせて、検索結果も縦または横にスピルします。

3 戻り列が複数の場合

列番号を配列にすると、1つの検索行から商品名・単価・在庫など複数列の値をまとめて取り出せます。

戻り列番号を配列で渡して複数列を返すVLOOKUP

図3| 列番号配列の向きに合わせて、同じ検索行の複数列がスピルします。

4 配列の向きで返ってくる形も変わる

配列定数では、セミコロンが縦、カンマが横を表します。値の個数だけでなく、配列の向きまで含めて数式を読みます。

検索値配列と列番号配列の縦横によるスピル方向の違い

図4| どの引数へ、どの向きの配列を渡したかが結果の形を決めます。

5 両方を配列にしても、うまく二次元にはならない

配列を受け取れることと、2つの配列を直積として展開できることは別です。Excel 16.0で図の式を実測すると、結果は3行×1列にスピルしました。

検索値と戻り列番号の両方を配列にしても二次元の直積表にはならないVLOOKUP

図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