ワーキングマザーはじめました。

日々のあれこれつれづれと。のんきな夫、2歳の息子、SEの仕事のことなど。

vlookupの4つ目のパラメータ

今日、職場にて。

vlookupがうまくいかないと先輩から相談された。

vlookupとは、excelである程度のデータ処理をする人にとっては切っても切れない関数である。初心者は知らないけど、初心者から一歩進むと必ず出会う、そんな存在。

処理の概要としてはあるテーブルのデータを列方向に検索し、該当行の特定の列の値を返す・・・と書くと意味不明だけど、まあそんな処理をするわけで。

細かい説明は省くけど、vlookup関数には4つのパラメータが存在する。この関数は4つのパラメータのうち、3つ目までが本丸である。3つ目のパラメータまでさえちゃんとセットすれば、あとは悩む事なく4つ目に"false"を突っ込む。多分、大多数の人はvlookup関数のことをそうやって扱っていると思うし、私自身もそうしている。4つ目のパラメータには「検索の型」という名前がある事は覚えてるけど、はっきりいってそれが何を示すかなんて意識しない。

で、冒頭に戻るけど、先輩からvlookupの結果がおかしい、と相談されたのでexcelを見させてもらった。原因は簡単で、4つ目のパラメータがセットされていなかったのである。なのでこれをセットしてあげて完成。

そしてここからが本題。「なぜ、4つ目のパラメータって通常"false"なの?「検索の型」が"false"なんて変じゃない?」と言われたのである。

・・・確かに・・・

言われてみて気になったので調べてみた。vlookupの4つ目のパラメータのデフォルトは"true"である。まあ、先輩がやったように省略したら期待と異なる結果が返ってきたのでそれは想定の範囲内である。では"true"とはどういうケースなのか。

調べてみたよ調べてみたよ。

1. trueの場合、検索列に検索データと完全一致のセルがないと、そのデータを超えない範囲の最大値を返す

2. ただしそれは1列目が昇順にソートされている場合に限る

ということらしい。今回の先輩のケースは、4つ目のパラメータが省略されていた=デフォルトの"true"がセットされていた、そして1列目の値は昇順にソートされていなかった、というコンボでしっちゃかめっちゃかな戻り値になっていたらしい。※昇順にソートされていないとわけわからん値が戻るらしいよ

というわけで、少しだけ賢くなった本日でした。おしまい。