PR

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

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

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

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

うめ
うめ

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

Amazon

30日間無料登録できる「Amazonプライム会員」に登録すれば、翌日に購入した商品が届くお急ぎ便・お届け日時指定便の指定ができるので、荷物をなるべく早く受け取りたい人にオススメ!


無料体験期間中もAmazonプライムビデオや1億曲以上聞き放題のAmazon Musicなど、すべてのプライム会員特典がセットになっています!

 

 

うめ
うめ

30日間以内に解約すれば費用は発生しません!

やりたいこと

ここでは事業所「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のトラブル解消記事を書いています。
単調な繰り返し作業が苦手なので、作業効率化の仕組みを記事にしています。
月間9万PVを突破しました!
商品レビューのご依頼は「お仕事の依頼について」をご確認ください。

うめをフォローする
VBA
梅屋ラボ
タイトルとURLをコピーしました