2024年1月8日【ID:0】
【Excel】VLOOKUP関数で効率的に抽出
VLOOKUP関数で値を抽出する際に、通常であれば、列番号を数える必要があります。
実は、ある関数を使うことで、列番号を数えずに抽出することができます。
また、その関数を使うことで、連続した項目の抽出にも活用できます。
例えば、以下の表を活用して、IDから「カテゴリー、文房具名、単価」と連続した項目の値を抽出していきます。
VLOOKUP関数の通常の使い方の場合、IDからカテゴリーを抽出すると、以下のような数式になるかと思います。
'=VLOOKUP($B22,$B$3:$E$17,2,FALSE)
こちらでは、検索値の列名(B)と、表の範囲(B3:E17)を絶対参照にしています。
この状態で、隣の項目にコピーすると、恐らく同じ値が抽出されてしまいます。
この原因は、列番号に直接、値を入力しているためです。
直接入力された値は、コピーした場合も、そのまま貼り付けられてしまいます。
そのため、列番号に関しても、相対参照で移動させたいという時は、関数で表現する必要があります。
その時に活用できる関数の1つが、COLUMN関数です。
この関数の使い方は、以下の通りです。
=COLUMN([参照])
// 参照したセルの列番号を返す
この関数を活用して、表の中のカテゴリーの列番号(2)を取得するには、2列目であるB列を参照、もしくは、該当列を参照し、差分を計算することで求めることができます。
・方法1
=COLUMN(B1)
→ 2
・方法2
=COLUMN(C1)-1
// カテゴリーの項目の位置(C列)から、表の開始位置までの差(1列)を引く
→ 2
実際に、方法2を活用してカテゴリーの列番号を求めた数式が以下になります。
=VLOOKUP($B22,$B$3:$E$17,COLUMN(C1)-1,FALSE)
この数式の場合、隣にコピーした際も、参照が相対参照になるため、以下のように連続した項目を抽出することができます。
連続した項目の中の一部の項目が不要な場合は、その項目を削除すると良いです。