- 公開日:
- 更新日:
ExcelのVLOOKUP関数以外で左側(右から左に)の値を取得する
VLOOKUP関数は一番左の列を検索範囲とし、2列目以降の値を取得する関数です。しかし、1列目の値を取得したいという要望は少なくありません。
こちらの記事ではVLOOKUP関数で値の取得に挑戦した後に、他の取得方法をご紹介する内容となっております。
VLOOKUP関数で一番左側の列の値を取得できるのか?
通常左から右へ検索するVLOOKUP関数ですが、逆の「右から左へ」検索する方法で試してみます。
D10に含まれてる「バナナ」を検索値とし、「商品コードの列番号を指定して」商品コード番号をC10セルに返すという方法です。
D10の「バナナ」を検索値とし、赤枠の範囲で設定し、列番号「1」の商品コードの値を取得する指定です。
結果、#N/AエラーになってしまいましたのでVLOOKUP関数では不可能となります。VLOOKUP関数は、一番左の列を検索範囲としているので二列目の値は取得できない仕様になっております。
INDEX関数とMATCH関数を組み合わせて実現する
INDEX関数とMATCH関数を組み合わせることにより、実現することができます。少し複雑なので一つずつ紐解いて説明します。
INDEX関数について
INDEX関数の書式は2種類あります。
- =INDEX(参照, 行番号, [列番号], [領域番号])
- =INDEX(配列, 行番号, [列番号])
今回は1番目の「参照」する書式を使います。[]の中は任意指定なので使用しなくても構いませんが、今回は列番号まで使用します。
まずはB4からD6まで「参照」を指定して、値を取得する「行番号」と「列番号」を指定します。バナナの商品コード1002を取得したいので、行番号は「2」列番号は「1」と指定します。
確定させると、バナナの商品コード「1002」を取得できました。しかし、これでは「行番号」と「列番号」を指定しているだけで、バナナを検索しているわけではありません。
VLOOKUP関数のように縦に検索し、バナナは上から何行目にあるのか取得したいので、行番号をMATCH関数に変換いたします。
MATCH関数について
MATCH関数の書式は=MATCH(検索値, 検査範囲, [照合の種類])となっております。
まずはD10セルのバナナを「検索値」とします。C4からC6まで縦の「検査範囲」を指定し、「照合の種類」は「0」の完全一致を指定します。
確定させると、バナナの商品コード「1002」を取得できました。これでVLOOKUPでできなかった、一番左側の値を取得することができました。
まとめ
INDEX関数とMATCH関数を組み合わせればVLOOKUP関数を再現することが可能です。そしてVLOOKUP関数では機能的に不可能であったことも、できるようになります。
これを機に、INDEX関数とMATCH関数の組み合わせを覚えて一歩進んだエクセルライフを過ごしてください。
VLOOKUP関数専門の本をご紹介
VLOOKUP関数をより深く勉強したい方はこちらの本でさらに理解を深めてみてはいかがでしょうか?