5/20/2016

Excel。LOOK。あれれ?LOOKUP関数を使ってみたら、ちゃんと検索されないぞ!


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点に注意をしていただいて、作っていくといいと思いますよ。