Office Hack

ExcelのVLOOKUP関数以外で左側(右から左に)の値を取得する

  • by kenji
  • Release
  • Update

VLOOKUP関数は一番左の列を検索範囲とし、2列目以降の値を取得する関数です。しかし、1列目の値を取得したいという要望は少なくありません。

こちらの記事ではVLOOKUP関数で値の取得に挑戦した後に、他の取得方法をご紹介する内容となっております。

VLOOKUP関数で一番左側の列の値を取得できるのか?

左側の値を取得

通常左から右へ検索するVLOOKUP関数ですが、逆の「右から左へ」検索する方法で試してみます。

D10に含まれてる「バナナ」を検索値とし、「商品コードの列番号を指定して」商品コード番号をC10セルに返すという方法です。

VLOOKUP関数の入力

D10の「バナナ」を検索値とし、赤枠の範囲で設定し、列番号「1」の商品コードの値を取得する指定です。

エラーの確認

結果、#N/AエラーになってしまいましたのでVLOOKUP関数では不可能となります。VLOOKUP関数は、一番左の列を検索範囲としているので二列目の値は取得できない仕様になっております。

INDEX関数とMATCH関数を組み合わせて実現する

INDEX関数とMATCH関数を組み合わせることにより、実現することができます。少し複雑なので一つずつ紐解いて説明します。

INDEX関数について

INDEX関数の書式は2種類あります。

  • =INDEX(参照, 行番号, [列番号], [領域番号])
  • =INDEX(配列, 行番号, [列番号])

今回は1番目の「参照」する書式を使います。[]の中は任意指定なので使用しなくても構いませんが、今回は列番号まで使用します。

INDEX関数の説明

まずはB4からD6まで「参照」を指定して、値を取得する「行番号」と「列番号」を指定します。バナナの商品コード1002を取得したいので、行番号は「2」列番号は「1」と指定します。

INDEX関数の入力

確定させると、バナナの商品コード「1002」を取得できました。しかし、これでは「行番号」と「列番号」を指定しているだけで、バナナを検索しているわけではありません。

行番号をMATCH関数に変換

VLOOKUP関数のように縦に検索し、バナナは上から何行目にあるのか取得したいので、行番号をMATCH関数に変換いたします。

MATCH関数について

MATCH関数の書式は=MATCH(検索値, 検査範囲, [照合の種類])となっております。

MATCH関数の説明

まずはD10セルのバナナを「検索値」とします。C4からC6まで縦の「検査範囲」を指定し、「照合の種類」は「0」の完全一致を指定します。

MATCH関数の結果

確定させると、バナナの商品コード「1002」を取得できました。これでVLOOKUPでできなかった、一番左側の値を取得することができました。

まとめ

INDEX&MATCH関数の説明

INDEX関数とMATCH関数を組み合わせればVLOOKUP関数を再現することが可能です。そしてVLOOKUP関数では機能的に不可能であったことも、できるようになります。

これを機に、INDEX関数とMATCH関数の組み合わせを覚えて一歩進んだエクセルライフを過ごしてください。

VLOOKUP関数専門の本をご紹介

VLOOKUP関数をより深く勉強したい方はこちらの本でさらに理解を深めてみてはいかがでしょうか?実際の操作画面を示しながら、徹底的にわかりやすく解説したフルカラー入門書です。

VLOOKUP関数のツボとコツがゼッタイにわかる本

立山秀利(著)
206ページ

その他、様々なVLOOKUP関数の使い方

XLOOKUP関数も合わせてチェック!

VLOOKUP関数の後継として新しくXLOOKUP関数が発表されました。XLOOKUP関数の基本的な使い方を説明しています。

他の関数も合わせてチェック!

Office Hackでは、ここでご紹介できなかった関数の一覧ページもご用意しております。ぜひ、参考にしてください。

よろしければ参考にならなかった点をお聞かせください