ExcelのXLOOKUP関数は、抽出したい列数が多い場合(連続している場合)にVLOOKUP関数より便利です。抽出したい複数列が連続していない場合は、目的やデータの状況によりますがHSTACK関数と組み合わせる方法も有効です。
内容:
- VLOOKUPとXLOOKUPで複数列を抽出する方法の基本
- 離れた位置の複数列を抽出する方法
- (参考)VLOOKUP関数の範囲にもHSTACK関数を使用可能
- (参考)XLOOKUP関数の特徴と活用事例
HSTACK関数は、Excel for Microsoft 365 Excel for Microsoft 365 for Mac Excel for the web で利用可能です。
VLOOKUPとXLOOKUPで複数列を抽出する方法の基本
VLOOKUPとXLOOKUPで複数列の値を抽出する方法の比較は次のとおりです。
離れた位置の複数列を抽出する方法
離れた位置の複数列を抽出する場合の事例は次のとおりです。
この事例では、VLOOKUP関数の数式がセルC12、D12(上図a、b)に入力されています。
検索値(B12)について、検索対象の表($B$3:$G$8)の左端列の値を検索し、一致する行の値を取得しています。列番号に「3」と「6」を指定して複数列を抽出しています。
セルC12(上図a) =VLOOKUP(B12,$B$3:$G$8,3,FALSE)
セルD12(上図b) =VLOOKUP(B12,$B$3:$G$8,6,FALSE)
XLOOKUP関数の数式はセルC16(上図c)に入力されています。
HSTACK関数と組み合わせて
HSTACK($D$3:$D$8,$G$3:$G$8)
で2つの列を一つの「戻り配列」としています。
セルC16(上図c)
=XLOOKUP(B16,$B$3:$B$8,HSTACK($D$3:$D$8,$G$3:$G$8),"",0,1)
このようにすることで、離れた位置の複数列を抽出することが可能です。
ただし、目的やデータの状況によりVLOOKUP関数だけで実施した方が作成、維持がしやすい場面もあると思います。
(参考)VLOOKUP関数の範囲にもHSTACK関数を使用可能
VLOOKUP関数の範囲にもHSTACK関数を使用することが可能です。
目的次第ですが、前述のVLOOKUP関数の事例であれば次のような数式で同様の結果を得られます。
セルC12の場合:
=VLOOKUP(B12,HSTACK($B$3:$B$8,$D$3:$D$8,$G$3:$G$8),2,FALSE)
この方法は、例えば、列番号の位置を固定したい場面では有効です。
(参考)XLOOKUP関数の特徴と活用事例
ExcelのXLOOKUP関数は検索列と結果列の選択がしやすいなど、便利な関数です。以下に特徴と活用事例をまとめています。
以上、ExcelでVLOOKUPとXLOOKUPで離れた位置の複数列を抽出する方法でした。