VLOOKUP関数について考えた

Excelというと、関数。そして関数というとVLOOKUP関数が使えて初心者脱出のように言われています。
さて、このVLOOKUP関数についてちょっと掘り下げてみましょう。

VLOOKUP関数ってそもそもなに?

VLOOKUP関数を端的に言うと、なんでしょう。

私はこう考えます。

「他の表のデータを引っ張ってくる関数」

VLOOKUP関数の書式を日本語で表現すると、完全一致の場合は次のようになります。
「検索値」を「一覧表」の左端列の中から探します。

それで見つかった行の、一覧表内の「列番号」の値を求めます。

=VLOOKUP(検索値,一覧表範囲,列番号,FALSE)

完全一致の値を探すのではなく、近似値で求める場合は

=VLOOKUP(検索値,一覧表範囲,列番号,TRUE)

となります。この場合は、一覧表の左列の中の検索値以下のところで一番大きい値で一致させます。近似値だと、一覧表を左端列の値で並べ替えなきゃいけないのですね。

次の表があります。セルE2に求めたい商品が入力されてて、E4に単価、E6に仕入値が自動で計算されるようにします。

セルE4に入るVLOOKUP関数は、

=VLOOKUP(E2,A2:C6,2,FALSE)

です。

セルE6に入るVLOOKUP関数は、

=VLOOKUP(E2,A2:C6,3,FALSE)

です。

VLOOKUP関数でできないVLOOKUP関数

さて、では次のような表ではどうでしょうか。

一覧表範囲の検索したい値がVLOOKUP関数の左端列ではなく、2列目になっています。

ニヤッとした方、そうです、これはINDEX関数とMATCH関数を組み合わせます。
単価を求める計算式は、

=INDEX(A:A,MATCH(E2,E:E,0))

です。

これはいろいろなところで情報発信されていて、かなりアクセスされる記事です。
そういえばこのブログでも似た記事を配信してますね。

しかし、当ブログはここでは終わりません。
もっとシンプルで簡単な方法を紹介します。

これは反則?

次の動画をご覧ください。

こうすれば、VLOOKUP関数で扱える一覧表に変わります。
そんなのわかってるよって声が聞こえてきます。。。。。
これができない理由もあるでしょう。フォーマットが決まってるとか。
でも、本来、行列検索で使う一覧表の検索される値は最左列に配置されているのが筋ってもんです。
そのフォーマットに則っていない表を正常化するのが本当なんだよなってことを言いたかったのです。
できないときはできないで代替えの方法を使うのですが、それはあくまで代替えにすぎません。最もシンプルにある関数を使う、これがうまくExcelを使うということなのではないでしょうか。

コメント

タイトルとURLをコピーしました