Excel に関して詰まったら見るメモ
Excel は好きではないものの,きちんと行・列の構造を大事にしながら使えばそこそこよくできてるな…と感じることも多く,自分が作る際に他人との共有の便利さを踏まえて考える選択肢としてはありうると思っている. とくに,うまく列に演算結果を保存していって最終的に欲しい結果を得るのは,案外パズル感もあってわるくない.
…のだけど,とっさに書き方が分からなくて(特に引数の取り方)迷うことがあるので,ハマるたびに少しずつ書き足していくメモとする.
函数
VLOOKUP
VLOOKUP (lookup_value, table_array, col_index_num, [range_lookup])
- 求める値 (
lookup_value
) を,table_array
の左端の列から探して,見つかった行のcol_index_num
列目を返す. range_lookup
がTRUE
がデフォルト動作で,これは exact match を要しない.この時には,table_array
の最初の列がソートされていることが必要で,かつ closest value を返す
ハマりどころ
- 探したいものは
table_array
の左端にないとダメ col_index_num
はtable_array
の左端を1として何列目かを指定する上,table_array
に含まれていないといけないrange_lookup
を与えないとデフォルト動作では最も近い行を返す(多分二分探索の最後なんだろう),基本的には常にfalse
でいいのではないか
たとえば
適当な番号 | 名前 | 探したいやつ | “=VLOOKUP(C2,A:B,2)” | “=VLOOKUP(C2,A:B,2,FALSE)” |
1 | a | 1 | a | a |
2 | b | 2 | b | b |
3 | c | 10 | e | #N/A |
4 | d | 11 | e | #N/A |
6 | e | 13 | e | #N/A |
76 | f | 50 | e | #N/A |
100 | g | 76 | f | f |
こちらは記法の例
=VLOOKUP(A2,A10:C20,2,TRUE)
=VLOOKUP("Fontana",B2:E7,2,FALSE)
=VLOOKUP(A2,'Client Details'!A:F,3,FALSE)
tags: