2024年7月10日【ID:0】
【Excel】VLOOKUP関数で項目名から値を抽出
通常、VLOOKUP関数では、抽出する列番号を指定する必要があります。
例えば、以下の表から「名前」の項目を抽出する場合は、列番号に2列目の「2」と指定します。
上記の例のような小さな表であれば、列数を数えるのもそこまで大変ではありませんが、項目が多い表になれば数えるのが大変になります。
また、列番号を「2」などと直接指定している場合、項目の位置が変更された時(列の挿入時など)に、抽出対象が変わってしまいます。
それらの対策として、こちらでは、項目名から列番号を取得し、対象の項目の値を抽出する方法について解説していきます。
表の中に同じ項目名が存在しないという前提になりますが、項目名から列番号を取得するには、MATCH関数が活用できます。
MTACH関数の使い方は、以下になります。
=MATCH(検査値, 検査範囲, 照合の種類)
// 検査範囲から検査値が見つかった位置(先頭からの通し番号)を返す
// 検査値:検索対象の値
// 検査範囲:検索対象の表
// 照合の種類:検索方法([1]以下、[0]完全一致、[-1]以上)
実際に、項目名から列番号を抽出した例が、以下になります。
=MATCH(C14,B2:E2,0)
// セルB2~E2の範囲からセルC14の値が完全一致する位置(通し番号)を返す
後は、この数式をVLOOKUP関数の列番号の引数に設定します。
=VLOOKUP(B15,B3:E12,MATCH(C14,B2:E2,0),FALSE)
このように、項目名から対象の値を抽出することができるようになります。
また、この方法の場合は、セルC14の項目名を変更するだけで、他の項目の値に切り替えることができます。
・補足
抽出する項目をよく変更する場合は、[データ]タブから[データの入力規則]を活用して、項目名のリストにすると便利です。