Excel。VLOOKUP関数で複数の離れた列を表引きしたい。
<VLOOKUP関数>
A1:H5には、四半期の売上表があります。
A8にNOを入力すると、該当するデータがA1:H5から表引きされるようにしたいわけです。
このような表引きをするならば、VLOOKUP関数をつかうと対応できそうです。
しかし、B8:E8までにVLOOKUP関数をつかって、設定する場合、列番号が異なるので複数のVLOOKUP関数を設定する必要があります。
また、連続していれば、列番号に、COLUMN関数をつかうことで、対応することもできますが、今回は、表引きしたいデータが離れています。
これでは、COLUMN関数をつかうことができません。
そこで、VLOOKUP関数の列番号に配列数式をつかうことで、対応することができます。
B8にVLOOKUP関数の数式を設定します。
=VLOOKUP(A8,A2:H5,{2,4,6,8},FALSE)
今回は、検索値が空欄時に発生する、#N/Aは考慮しておりませんので、考慮する場合には、IF関数かIFERROR関数で対応します。
またスピル機能によって、オートフィルで数式をコピーする必要はありません。
これで、複数の離れた列から表引きすることができました。
では、VLOOKUP関数を確認しておきましょう
最初の引数は、検索値です。A8を設定します。
この番号を変えることで、該当するデータを表引きします。
2つ目の引数は、範囲です。
A2:H5。
表引きの件数が1件なので、絶対参照は不要です。
3つ目の引数は、列番号です。
2つ目の引数で設定した範囲の左側から何列目のデータを抽出するのかという数値なのですが、離れた列になります。
そこで、
{2,4,6,8}
という配列数式にすることで、表引きすることができます。
通常の「()」ではなくて「{}」で囲むことで、配列数式にすることができます。
旧来は、先に表引きをすべて範囲選択して、数式の確定時にCtrl+Shift+Enterをすることで配列数式にすることができましたが、スピル機能によって、不要になりました。
数式の作成は、最初から「{}」で表引きしたい列番号を囲うだけです。
表引きしたい列は、2,4,6,8列です。
最後の引数は、検索方法です。
完全一致なので、FALSEを設定します。