【Excel】CHOOSECOLS関数で必要な列だけ取り出す!Excelのデータ抽出を関数で完結する方法

【Excel】CHOOSECOLS関数で必要な列だけ取り出す!Excelのデータ抽出を関数で完結する方法
🛡️ 超解決

Excelで大量のデータから特定の列だけを抽出したい場面は多いでしょう。通常、コピー&ペーストやPower Queryなどで行いますが、関数を使えばより柔軟に、そしてリアルタイムに抽出できます。特に「CHOOSECOLS関数」は、指定した列番号のデータだけを関数で取り出すのに非常に便利です。この記事では、CHOOSECOLS関数の使い方を、具体的な例を交えて詳しく解説します。関数一つでデータ抽出を完結させる方法を習得しましょう。

CHOOSECOLS関数は、Microsoft 365版Excelで利用できる比較的新しい関数です。配列(範囲)から指定した列番号の列だけを選択して、新しい配列として返します。これにより、元のデータを参照しながら、必要な列だけを別の場所に表示させることが可能です。数式を編集するだけで、抽出する列を自由に変更できるため、データ分析やレポート作成の効率が大幅に向上します。

ADVERTISEMENT

CHOOSECOLS関数とは?できることと前提条件

CHOOSECOLS関数は、指定した配列(データ範囲)から、指定した列番号に対応する列のみを抽出して返す関数です。たとえば、A1からD10までの範囲があり、その中から2列目と4列目だけを取り出したい場合に、この関数を使います。数式の結果として、抽出された列だけの新しい配列が表示されます。

この関数を利用するための前提条件は、ExcelのバージョンがMicrosoft 365であることです。Excel 2021以前のバージョンでは使用できません。また、抽出したいデータが、連続した範囲(配列)として存在している必要があります。単一のセルや、離れたセル範囲を一度に指定することはできません。

お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

CHOOSECOLS関数で必要な列を抽出する手順

  1. 抽出したい列の数式を入力する
    データが表示されているシートの、抽出結果を表示したい任意のセルを選択します。ここにCHOOSECOLS関数を入力します。
  2. 第一引数「配列」を指定する
    CHOOSECOLS関数の最初の引数は、元となるデータ範囲(配列)です。たとえば、A1セルからE10セルまでの範囲のデータを抽出したい場合は、「A1:E10」と入力します。
  3. 第二引数「列番号」を指定する
    次に、抽出したい列を指定します。抽出したい列が複数ある場合は、カンマ(,)で区切って列番号を複数指定します。たとえば、元のデータ範囲の2列目と4列目だけを抽出したい場合は、「2,4」と入力します。
  4. 数式を確定する
    引数の指定が終わったら、Enterキーを押して数式を確定します。指定した列のデータが、数式を入力したセルから始まる配列として表示されます。

例:A列からE列のデータから、B列とD列を抽出する

具体例として、A1セルからE10セルにデータがあり、B列(2列目)とD列(4列目)だけを抽出する手順を説明します。抽出結果をG1セルから表示させたい場合を考えます。

1. G1セルを選択します。

2. 数式バーに「=CHOOSECOLS(A1:E10, 2, 4)」と入力します。

3. Enterキーを押します。

これで、G1セルから右方向および下方向に、元のデータのB列とD列の内容が表示されます。元のデータ範囲A1:E10は、左から1列目(A列)、2列目(B列)、3列目(C列)、4列目(D列)、5列目(E列)と数えられます。

例:特定の列番号だけを抽出する

CHOOSECOLS関数では、抽出したい列番号を個別に指定できます。たとえば、A1:E10の範囲から、3列目(C列)のみを抽出したい場合は、数式を「=CHOOSECOLS(A1:E10, 3)」のように記述します。

この場合、第二引数には1つの列番号のみを指定します。結果として、C列のデータだけが抽出され、数式を入力したセルから表示されます。

例:列番号を負の数で指定する

CHOOSECOLS関数では、列番号に負の数を指定することも可能です。負の数は、範囲の右端から数えた列の位置を示します。たとえば、「-1」は一番右の列、「-2」はその左隣の列、といった具合です。

A1:E10の範囲から、一番右の列(E列)と、その左隣の列(D列)を抽出したい場合、数式は「=CHOOSECOLS(A1:E10, -1, -2)」となります。この指定方法は、範囲の列数が変動する場合や、末尾の列を常に参照したい場合に便利です。

CHOOSECOLS関数と他の関数を組み合わせる

CHOOSECOLS関数は、他のExcel関数と組み合わせることで、さらに強力なデータ抽出・加工が可能になります。たとえば、FILTER関数と組み合わせることで、特定の条件に合致する行の、さらに指定した列だけを抽出できます。

FILTER関数と組み合わせる例

A1:E10の範囲で、C列の値が「東京」である行の、B列とD列だけを抽出したい場合を考えます。この場合、CHOOSECOLS関数をFILTER関数の結果に対して適用します。

数式は以下のようになります。

「=CHOOSECOLS(FILTER(A1:E10, C1:C10=”東京”), 2, 4)」

まず、FILTER関数がC列の値が「東京」である行を抽出します。その抽出された結果(新しい配列)に対して、CHOOSECOLS関数が2列目(元のデータでいうB列)と4列目(元のデータでいうD列)だけを取り出します。

配列数式としての利用

CHOOSECOLS関数は、動的配列数式として機能します。これは、数式を1つのセルに入力するだけで、結果が複数のセルに自動的に展開(スピル)される機能です。そのため、結果を表示したい範囲を事前に選択する必要はありません。

ただし、結果が表示される範囲に他のデータが存在する場合、#SPILL!エラーが発生します。このエラーは、結果を展開するのに十分な空きセルがない場合に表示されます。結果が表示される可能性のある範囲に、不要なデータがないか確認してください。

ADVERTISEMENT

CHOOSECOLS関数でよくある質問とトラブルシューティング

Q1: #CALC! エラーが表示されるのはなぜですか?

CHOOSECOLS関数で#CALC!エラーが表示される場合、いくつかの原因が考えられます。

原因1: 参照範囲にエラーが含まれている

CHOOSECOLS関数に渡している元の配列(第一引数)に、#N/Aや#DIV/0!などの計算エラーが含まれている場合、そのエラーが結果に引き継がれることがあります。特に、他の関数と組み合わせて参照範囲を作成している場合に発生しやすいです。

解決策1: IFERROR関数でエラーを処理する

CHOOSECOLS関数の全体をIFERROR関数で囲むことで、エラーが発生した場合に特定の値を表示させることができます。たとえば、エラー時に空白を表示したい場合は、数式を「=IFERROR(CHOOSECOLS(A1:E10, 2, 4), “”)」のように記述します。

原因2: 列番号が範囲外である

指定した列番号が、元の配列の列数を超えている場合にもエラーが発生することがあります。たとえば、5列しかない範囲に対して6列目を指定した場合などです。

解決策2: 列番号を確認・修正する

CHOOSECOLS関数の第二引数(列番号)が、第一引数で指定した配列の列数内に収まっているかを確認してください。必要に応じて、列番号を修正します。

Q2: 抽出結果が意図した列と異なる

CHOOSECOLS関数で抽出した列が、期待していたものと違う場合、列番号の指定方法に誤りがある可能性があります。

原因: 列番号の数え間違い

CHOOSECOLS関数では、第一引数で指定した配列の左端から数えて、1から始まる連番で列番号を指定します。たとえば、A列からE列までの範囲を指定した場合、A列は1、B列は2、C列は3、D列は4、E列は5となります。この数え方を間違えていると、意図しない列が抽出されます。

解決策: 列番号を再確認する

数式で指定している列番号が、元のデータ範囲における実際の列の位置と一致しているか、慎重に確認してください。必要であれば、列番号を修正します。負の数で指定している場合も、右端からの数え方が正しいか確認しましょう。

Q3: #SPILL! エラーが表示される

このエラーは、CHOOSECOLS関数が動的配列数式として機能する際に、結果を展開するのに十分な空きセルがない場合に発生します。

原因: 結果を展開するスペースがない

数式を入力したセルの右側や下側に、他のデータが入力されているため、CHOOSECOLS関数が計算結果をスピル(展開)できない状態です。

解決策: 空きスペースを確保する

数式を入力したセルの周囲に、結果が表示されるのに十分な空きセルがあるか確認してください。もしデータが重なっている場合は、重なっているデータを削除するか、別の場所に数式を移動させてください。

CHOOSECOLS関数とVLOOKUP関数・XLOOKUP関数の違い

CHOOSECOLS関数は、特定の列を抽出する機能に特化しています。一方、VLOOKUP関数やXLOOKUP関数は、指定したキーに基づいて、対応する行の特定の列の値を検索・取得する関数です。

CHOOSECOLS関数

特徴: 配列全体から、指定した列番号の列をそのまま抽出します。行の特定や条件指定は行いません。抽出結果は、元のデータの行数と同じになります。

用途: 大量のデータから、特定の列だけをまとめて参照したい場合。たとえば、元データが100行あり、そのうち3列目と5列目だけを常に表示させたい場合などに使用します。

VLOOKUP関数・XLOOKUP関数

特徴: 指定した検索値(キー)が、検索対象の列(第一列)にある行を探し、その行の別の列にある値を返します。XLOOKUP関数はVLOOKUP関数よりも柔軟性が高く、検索方向や検索モードを指定できます。

用途: あるIDや名前を元に、その人の部署名や電話番号といった、関連する情報を検索したい場合に使用します。

使い分けのポイント

CHOOSECOLS関数は、「どの列を抽出するか」に焦点を当てています。一方、VLOOKUP関数やXLOOKUP関数は、「どの行の、どの列の値を見つけるか」に焦点を当てています。用途に応じて、これらの関数を適切に使い分けることが重要です。

項目 CHOOSECOLS関数 VLOOKUP/XLOOKUP関数
主な機能 配列から指定列を抽出 キーに基づき対応する行の値を検索
抽出単位 行の特定の値
条件指定 なし あり(キー値)
結果の行数 元の配列の行数と同じ 検索値が見つかった行の値
Excelバージョン Microsoft 365 多くのバージョンで利用可能

CHOOSECOLS関数は、データ全体の構造を操作するのに適しており、VLOOKUP/XLOOKUP関数は、特定のデータレコードを検索するのに適しています。これらの違いを理解することで、より効率的なデータ処理が可能になります。

まとめ

CHOOSECOLS関数を使えば、Excelのデータから必要な列だけを関数で簡単に抽出できます。参照範囲と抽出したい列番号を指定するだけで、動的配列として結果が展開されるため、データ分析やレポート作成の効率が飛躍的に向上します。FILTER関数など他の関数と組み合わせることで、さらに高度なデータ抽出も可能です。

今後は、CHOOSECOLS関数で抽出したデータを基に、さらに集計やグラフ作成を行ってみましょう。これにより、Excelでのデータ処理スキルを一層高めることができます。

📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】