【VBA】VLOOKUP関数以外で左側の値を取得する方法(INDEX関数&MATCH関数)

【VBA】VLOOKUP関数以外で左側の値を取得する方法(INDEX関数&MATCH関数) VBA
この記事は約2分で読めます。

Excel VBAのVLOOKUP関数は「左から右へ」検索して一致した列の値を取得しますが…
「左側の値を取得したい」と思ったことはありませんか?

本記事ではVLOOKUP関数を使わずに左側の値を取得する方法を紹介します。

うめ
うめ

そういえばこんな使い方があったな!」ということを理解しておけば色々な場面で役立ちますよ!

スポンサーリンク
[ad01]

やりたいこと

ここでは事業所「C支店」で働いている「従業員No」を取得したいとします。

従業員No」は検査値(「事業所」)よりも左側にあるためVLOOKUP関数では取得できません。
※列の入れ替えができない想定です。

実行イメージ

INDEX関数&MATCH関数

「INDEX」&「MATCH」で左側の値を取得!

MATCH関数とINDEX関数を組み合わせると左側の値を取得できますが、初めて使う人は結構わかりにくいと思うので細かく説明します。

関数の書式
  • INDEX(❶配列, ❷行番号, ❸[列番号])
  • MATCH(❹検査値, ❺検査範囲,❻ [照合の型])

関数として設定するとこんな感じになります。
「=INDEX(Ws1.Range(“B:D”), MATCH(F3, D:D, ❻0), 1)」

補足ですが「❻照合の型」は1(以下),0(完全一致),-1(以上)と設定できます
※基本的には0(完全一致)を使うことがメインになると思います。

VBAのコード

コードを実行すると「事業所」よりも左側にある「従業員No」が取得できます。

実行結果

まとめ

今回はINDEX関数&MATCH関数を組み合わせて検索値よもり左側にある値を取得する方法を紹介しました。

普段はVLOOKUPの方が馴染みがあると思いますが、「INDEX関数&MATCH関数」も便利な関数ですので、使えるようにしておきたいですね。

この記事が気に入ったら
いいね ! しよう

Twitter で
この記事を書いた人
うめ

便利なガジェットレビューやPCのトラブル解消記事を書いています。
単調な繰り返し作業が苦手なので、作業効率化の仕組みを記事にしています。
月間6.5万PV突破しました!
商品レビューのご依頼は「お仕事の依頼について」をご確認ください。

うめをフォローする
VBA
スポンサーリンク
[ad01]
梅屋ラボ
タイトルとURLをコピーしました