要旨
GoogleスプレッドシートのVLOOKUPで文字列検索をしたい場合、最後の引数はFALSE
にしてやらないと事故る。
使い方と引っかかった点
=VLOOKUP("検索キー", "検索範囲", "返す列の番号", ["検索型"(TRUE or FALSE)])
ここで検索キーを文字列にしている場合、第4引数を明示的にFALSE
(もしくは0
)にしていないと上手く検索できなかった。
-
FALSE
の場合は、検索キーと完全一致するものを検索する。見つからなかったらエラーになる。 -
TRUE
の場合、検索キーを超えない最大値を返却する。検索キーが数値の場合に最大値を見つける等で有効らしい。
第4引数はオプションだが、デフォルトでTRUE
が入るため、完全一致検索をする場合は明示的にFALSE
を代入する。
ちなみに検索範囲について
第3引数は、返してほしい値が検索範囲の中で左から何番目の列にあるかを1オーダーで指定する。受け付けるのはintの数字だけ。
ちなみに検索範囲において、検索キー列が検索対象列よりも左の列にあることが前提になるらしい。
検索キー列よりも左側の値を返したい場合は、波カッコを使って検索範囲の左側に検索キー列をくっつける。
A | B | C | |
---|---|---|---|
1 | 商品NO. | 商品名 | 価格 |
2 | 1 | みかん | 100 |
3 | 2 | りんご | 80 |
4 | 3 | ぶどう | 120 |
5 | 4 | なし | 150 |
これで商品名
(B列)を検索キー列にして、商品NO.
(A列)を検索する場合、下のように書ける。
=VLOOKUP("ぶどう", {B:B,A:C}, 2, FALSE) # return 3
検索範囲の前に検索キー列を結合しているので、第3引数は2
(1+1)になる。
おわり
たまに使わないと忘れるので自分用メモです。