低所得の青色申告個人事業主のブログ

開業から経験で得た情報をお知らせしていきたいと思います。

= グローバル ナビゲーション =

【Excel】VLOOKUP関数の列番号を動的に取得する方法


[ スポンサー リンク ]

VLOOKUP関数落とし穴についてはこちら。

account-it-dentist.hatenablog.com

VLOOKUP関数では列番号を指定します。

そのときのTipsを紹介します。

 

列番号を取得する関数

列番号を数えるのは面倒だな、と思うことがありますか?

検索範囲の取得対象列を変えてもいちいち列番号を変えない運用はできないか、と思うことがありますか?

そんな場合に使えるのが MATCH関数 です。

 

MATCH関数

関数

= MATCH ( 検索値, 範囲, 検索種類 )

 "検索種類" に '0' を指定したときは完全一致で検索します。

MATCH関数 相対的な位置を返します

というのが関数の説明ですが、関数が返す値を具体例をあげて説明します。

 

 

具体例

以下の表で説明します。

  A B C D E
1 国番号 2桁 3桁 数字 国名
2 1 US USA 840 アメリカ合衆国
3 7 RU RUS 643 ロシア
4 33 FR FRA 250 フランス
5 34 ES ESP 724 スペイン
6 64 GB GBR 826 イギリス
7 49 DE DEU 276 ドイツ
8 55 BR BRA 76 ブラジル
9 61 AU AUS 36 オーストラリア
10 65 SG SGA 702 シンガポール
11 81 JP JPN 392 日本
12 86 CN CHN 156 中華人民共和国
13 91 IN IND 356 インド

それでは、MATCH関数を使ってみましょう。

計算式

= MATCH ( "国名", A1:E1, 0 )

返ってくる値は '5' です。

これは、左から5番目に "国名" はある、ということを意味します。

つまり、VLOOKUP関数で必要な列番号を取得できる、ということです。

範囲を縦に指定すると上からの相対的な位置を返します。

 

VLOOKUP関数とMATCH関数を組み合わせる

それでは、国番号='81'の '国名' を取得します。

計算式

= VLOOKUP ( 81, A2:E13, MATCH ( "国名", A1:E1, 0 ), FALSE )

列番号に MATCH関数 を使って、 '日本' を取得できます。

 

列番号動的に取得したいときに利用してください。

 


ご質問は下の 「コメントを書く」 からお願いします。

ExcelVBA全般に関わる質問で、比較的簡単にお答えできるものはできる限り回答したいと思います。

回答を公開でなくメールでやり取りしたいという場合は、その旨記載していただければ非公開で回答することも可能です。

有償での作業依頼は非公開にしますので、条件等をお知らせください。