VLOOKUPの列番号を可変にして動的に参照する方法は?
結論
VLOOKUPの列番号にMATCH関数を使うことで、ヘッダー行の値に応じて動的に参照列を変更できます。
詳しい解説
VLOOKUPの第3引数(列番号)にMATCH関数を組み合わせることで、参照する列を動的に変更できます。パターンは`=VLOOKUP(A2, マスタ!A:Z, MATCH(B$1, マスタ!1:1, 0), FALSE)`で、ヘッダー行(1行目)の値に応じて列番号を自動判定します。全バージョンで使用可能で、月別データや支店別データなど列方向にデータが並ぶ場合に非常に便利です。列の追加や削除があっても数式を修正する必要がありません。
執筆・検証:田中 けんた|Excel歴15年・MOS資格保持
バージョン対応
| Excel 2016 | Excel 2019 | Excel 2021 | Excel 2024 | Microsoft 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)