📊つかえる関数.com

VLOOKUPの列番号を可変にして動的に参照する方法は?

結論

VLOOKUPの列番号にMATCH関数を使うことで、ヘッダー行の値に応じて動的に参照列を変更できます。

数式・計算中級·

詳しい解説

VLOOKUPの第3引数(列番号)にMATCH関数を組み合わせることで、参照する列を動的に変更できます。パターンは`=VLOOKUP(A2, マスタ!A:Z, MATCH(B$1, マスタ!1:1, 0), FALSE)`で、ヘッダー行(1行目)の値に応じて列番号を自動判定します。全バージョンで使用可能で、月別データや支店別データなど列方向にデータが並ぶ場合に非常に便利です。列の追加や削除があっても数式を修正する必要がありません。

執筆・検証:田中 けんた|Excel歴15年・MOS資格保持

バージョン対応

バージョン対応状況
Excel 2016Excel 2019Excel 2021Excel 2024Microsoft 365
対応対応対応対応対応

実務での使用例

月別売上の動的参照

B1セルに「4月」と入力すると、マスタの4月列から売上を自動取得

=VLOOKUP(A2, マスタ!A:Z, MATCH(B$1, マスタ!1:1, 0), FALSE)

支店別データの動的検索

ヘッダー行に支店名があり、選択した支店のデータを自動で参照する

=VLOOKUP($A2, データ!$A:$Z, MATCH(C$1, データ!$1:$1, 0), FALSE)