残業を減らす!Officeテクニック
ExcelのXLOOKUP関数で連続しない列から値を取り出すテク ~扱いやすいCHOOSECOLS関数
2026年2月2日 06:55
以前にXLOOKUP関数にHSTACK関数を組み合わせて、連続しない列を取り出すテクニックを紹介しました。列数の多い表から必要な情報のみを取り出す際に役立ちます。
この例で入力している数式は以下の通りです。
=XLOOKUP(Q2,A2:A101,HSTACK(B2:B101,L2:L101,F2:F101,O2:O101))
必要な列を引数として指定できるため、数式を理解しやすいメリットがあります。今回は視点を変えて、CHOOSECOLS関数を使って同じ処理を実現する方法を解説します。
表全体から利用する列を選択するCHOOSECOLS関数
CHOOSECOLS関数は、表全体からどの列を使うかを選ぶことに主眼を置いた関数です。表全体を配列(セル範囲)として捉えて「何番目」かを指定します。構文は以下の通りです。
必要な列への参照を数値で指定するため、参照範囲を1か所にまとめた数式にできます。列数の多い表でも、全体を前提にした設計がしやすい点が特徴です。
例えば、会員IDから、①「氏名」、②「利用回数/月」、③「会員種別」、④「受講履歴」を取り出す場合は、表全体(A2:O101)から、2、7、6、12列目を取り出すので、以下のように指定します。
=CHOOSECOLS(A2:O101,2,7,6,12)
XLOOKUP関数とCHOOSECOLS関数を組み合わせる
スピルで表示されたCHOOSECOLS関数の結果を、XLOOKUP関数の引数[戻り範囲]に指定するだけです。引数[列番号]は、[配列]の左端を1列目として数えることに注意してください。ここでは[配列]に「A2:O101」と指定しているので、A列が1列目、つまり「氏名」は2列目となります。
=XLOOKUP(Q2, A2:A101, CHOOSECOLS(A2:O101,2,7,6,12))
HSTACK関数は「列を組み合わせる」発想、CHOOSECOLS関数は「列を選び直す」発想と言えるでしょう。結果は同じでも、扱うデータの単位が異なるため、表全体を部品として再利用したい場合には、CHOOSECOLS関数の方が扱いやすくなります。
用途や規模によって使い分けるのが理想ですが、表を前提にしたデータ処理では、CHOOSECOLS関数という選択肢を知っておくと、数式設計の幅が広がります。





















![【Amazon.co.jp限定】1冊ですべて身につくHTML & CSSとWebデザイン入門講座[第2版] (特典:「Webデザイナーのポートフォリオの作り方入門講座」データ配信) 製品画像:2位](https://m.media-amazon.com/images/I/51skMJ-OVcL._SL160_.jpg)







