【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 で

VBAを学習する時間が取れない人

VBAは我流で組むことができますが、初心者だと作業時間が多く掛かったり、間違った部分を見つけるのに苦労したります。

VBAが組めるようになれば便利なことも多いですが、仕事をしながら勉強するのは結構大変…。

もし時間に追われて思うようにいかないのであればココナラで「VBAを組める人」に依頼してみませんか?

個人で販売しているため価格も抑えらえれます
まずはこちらから無料会員登録をして依頼をしてましょう!


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