Excel。あれれ?LOOKUP関数を使ってみたら、ちゃんと検索されないぞ!
<LOOKUP関数>
先日打ち合わせに行った際に、先方の担当さんから、
ちょこっと教えてほしいんだけど…ということで、伺ってみると、
なんでも、LOOKUP関数を使ってみたんだけど、
ちゃんと検索してくれなくて困っているとのこと。
LOOKUP関数は、たぶん、VLOOKUP関数よりもマイナーだと思うわけでして、
似ているかと思えば、全く似ていない別の検索系の関数なんですよね。
では、下記のような表があります。
E3に入力されている日付に近い日を検索して、その商品名を検索するというのをやりたいのです。
では、F3をクリックして、LOOKUP関数ダイアログボックスを表示しましょう。
すると、引数の選択ダイアログボックスが表示されてきます。ドキッとしちゃいますよね。
上段は、検索値,検索範囲,対応範囲の3つの引数を使う、
【ベクトル形式】
と下段は、検索値,配列の2つの引数を使う、
【配列形式】
の2つを選択することが出来る関数なんですね。で、今回は上段のベクトル形式を使いますので、選択して、OKボタンをクリックしましょう。
検索値には、E3の検索したい日付
検索範囲には、B2:B21の表の日付の列
対応範囲には、C2:C21の商品名
を設定しました。
これで、問題はないはずなので、OKボタンをクリックしましょう。
すると、
Jというのが検索されました。
これで、終わり…と思ったら大間違い。2016/2/10に一番近いのは、Jではなくて、
本当は、Iのはずです。
これが、このLOOKUP関数がちゃんと、検索してくれないといったのでしょう。
実は、このLOOKUP関数。
データの小計と同じように、検索範囲を先に昇順で並び替えを行っておかないと、
今回のように、正しい結果を算出してくれないことがあるのです。
まさか、関数をつかうだけなのに、並び替えもしなくてはいけないというのが、
最大のポイントなんですね。
では、日付を並び替えをして、改めて算出してみましょう。
B1をクリックして、データタブの昇順ボタンをクリックしましょう。
さて、並び替えが終わりましたので、先ほどの結果はどうなっているでしょうか?
今度は、Iと算出されましたね。先ほどは、Jでしたので、今回はちゃんと、検索されましたね。
ですので、LOOKUP関数を使うときには、
キーになる列で並び替え(昇順)で行うことを忘れないようにする。
そして、引数は【ベクトル形式】で、LOOKUP関数を作成していくという、
この2点に注意をしていただいて、作っていくといいと思いますよ。