【Excel】CHOOSECOLS・CHOOSEROWS関数で必要な列だけ抽出!Excelの配列操作を効率化する方法

【Excel】CHOOSECOLS・CHOOSEROWS関数で必要な列だけ抽出!Excelの配列操作を効率化する方法
🛡️ 超解決

Excelのデータ分析において、膨大なデータから特定の列や行だけを抜き出したい場面は多くあります。従来の関数では、これらの操作が煩雑になりがちでした。しかし、Microsoft 365のCHOOSECOLS関数とCHOOSEROWS関数を使えば、この作業を劇的に効率化できます。この記事では、これらの新しい配列関数を使ったデータ抽出の方法を解説します。これにより、必要な情報だけを素早く取り出し、データ分析のスピードを向上させることが可能です。

CHOOSECOLS関数とCHOOSEROWS関数は、Excelの動的配列機能の一部です。これらの関数を使いこなすことで、複雑な数式や手作業に頼ることなく、データの中から目的の列や行を簡単に抽出できます。本記事を読むことで、これらの関数の具体的な使い方と、実際の業務でどのように活用できるかが理解できるようになります。

ADVERTISEMENT

CHOOSECOLS・CHOOSEROWS関数の概要とできること

CHOOSECOLS関数とCHOOSEROWS関数は、指定した配列(データ範囲)から、特定の列または行を抽出するための関数です。これらの関数はMicrosoft 365のExcelで利用可能であり、動的配列に対応しています。これにより、抽出結果が自動的に隣接するセルに展開されるため、数式の入力が非常にシンプルになります。

CHOOSECOLS関数は、配列から指定した列番号に基づいて列を抽出します。例えば、A1:D10の範囲から2列目と4列目だけを取り出したい場合に便利です。一方、CHOOSEROWS関数は、配列から指定した行番号に基づいて行を抽出します。10行目から5行目までのデータだけを抜き出したいといった場合に活用できます。

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

CHOOSECOLS関数で特定の列を抽出する手順

CHOOSECOLS関数は、配列から指定した列を抽出する際に使用します。基本的な構文は「CHOOSECOLS(配列, 列番号_1, [列番号_2], …)」です。

  1. 対象となるデータ範囲を選択する
    抽出元のデータがあるセル範囲を指定します。例えば、A1:E10の範囲を対象とします。
  2. CHOOSECOLS関数を入力する
    結果を表示したいセルに「=CHOOSECOLS(」と入力します。
  3. 配列を指定する
    関数の最初の引数として、対象となるデータ範囲を入力します。例:A1:E10
  4. 抽出したい列番号を指定する
    次に、抽出したい列の番号をカンマ区切りで指定します。例えば、2列目と4列目を抽出したい場合は「2,4」と入力します。負の数で指定すると、右端から数えた列を指定できます。例:-1は一番右の列を指します。
  5. 数式を確定する
    カッコを閉じ、「Enter」キーで確定します。指定した列のデータが自動的に展開されます。

例えば、A1:E10の範囲から、2列目と4列目のデータだけを抽出するには、任意のセルに「=CHOOSECOLS(A1:E10, 2, 4)」と入力します。これにより、A1:E10の範囲のB列とD列のデータが、指定したセルから右方向と下方向に展開されます。

CHOOSEROWS関数で特定の行を抽出する手順

CHOOSEROWS関数は、配列から指定した行を抽出する際に使用します。基本的な構文は「CHOOSEROWS(配列, 行番号_1, [行番号_2], …)」です。

  1. 対象となるデータ範囲を選択する
    抽出元のデータがあるセル範囲を指定します。例えば、A1:E10の範囲を対象とします。
  2. CHOOSEROWS関数を入力する
    結果を表示したいセルに「=CHOOSEROWS(」と入力します。
  3. 配列を指定する
    関数の最初の引数として、対象となるデータ範囲を入力します。例:A1:E10
  4. 抽出したい行番号を指定する
    次に、抽出したい行の番号をカンマ区切りで指定します。例えば、3行目と7行目を抽出したい場合は「3,7」と入力します。負の数で指定すると、下端から数えた行を指定できます。例:-1は一番下の行を指します。
  5. 数式を確定する
    カッコを閉じ、「Enter」キーで確定します。指定した行のデータが自動的に展開されます。

例えば、A1:E10の範囲から、3行目と7行目のデータだけを抽出するには、任意のセルに「=CHOOSEROWS(A1:E10, 3, 7)」と入力します。これにより、A1:E10の範囲の3行目と7行目のデータが、指定したセルから下方向と右方向に展開されます。

ADVERTISEMENT

CHOOSECOLS・CHOOSEROWS関数と他の関数の組み合わせ

CHOOSECOLS関数とCHOOSEROWS関数は、他のExcel関数と組み合わせることで、さらに強力なデータ操作が可能になります。

FILTER関数との組み合わせ

FILTER関数と組み合わせることで、条件に合致する行の中からさらに特定の列だけを抽出できます。例えば、「売上が10000円以上のデータ」という条件で抽出した結果から、「商品名」と「価格」の列だけを表示させたい場合に有効です。

構文例:=CHOOSECOLS(FILTER(配列, 条件), 列番号_1, [列番号_2], …)

この組み合わせにより、複雑なデータフィルタリングと列抽出を一度に行えます。

SORT関数・SORTBY関数との組み合わせ

抽出したデータをさらに並べ替えたい場合は、SORT関数やSORTBY関数と組み合わせます。例えば、特定の部署の従業員リストを抽出し、さらに部署コードで昇順に並べ替えたい場合などに使用できます。

構文例:=SORT(CHOOSECOLS(配列, 列番号_1, …), 並べ替え対象列番号, 並べ替え順)

これにより、抽出と並べ替えを同時に実行し、整理されたデータを取得できます。

LET関数との組み合わせ

LET関数と組み合わせることで、数式をより分かりやすく、効率的に記述できます。CHOOSECOLS関数やCHOOSEROWS関数に渡す配列や列・行番号を事前に変数として定義しておくことで、数式の可読性が向上し、同じ計算を繰り返す無駄を省けます。

構文例:=LET(配列名, A1:E10, 列番号リスト, 2, 4, CHOOSECOLS(配列名, 列番号リスト))

この組み合わせは、複雑な数式を構築する際に特に役立ちます。

CHOOSECOLS・CHOOSEROWS関数でよくある失敗パターンと対処法

これらの新しい関数は非常に便利ですが、いくつかの注意点や、よくある失敗パターンが存在します。それらを理解しておくことで、スムーズに活用できます。

#CALC! エラーが発生する

このエラーは、動的配列の展開先に他のデータが存在する場合に発生します。CHOOSECOLS関数やCHOOSEROWS関数は、結果を自動的に隣接セルに展開しますが、その展開先に既に値が入っていると、エラーとなります。

対処法:

  1. 展開先のセルをクリアする
    数式を入力する前に、結果が展開されるであろう範囲のセルにデータが入っていないか確認し、あれば削除してください。
  2. 別の場所に数式を入力する
    展開先のセルにデータがある場合は、数式を別の空いているセルに入力し直してください。

意図しない列・行が抽出される

列番号や行番号の指定を間違えると、意図しないデータが抽出されます。特に、配列の左端・上端が1であること、負の数で右端・下端から数えられることを理解していない場合に発生しやすいです。

対処法:

  1. 列番号・行番号を確認する
    抽出したい列や行が、元の配列の何番目にあたるのかを正確に数え直してください。ExcelのA1形式の参照ではなく、あくまで配列内での相対的な番号です。
  2. 負の数での指定を試す
    右端や下端から数えて指定したい場合は、-1, -2などの負の数を使用してください。

Microsoft 365以外のバージョンで使えない

CHOOSECOLS関数とCHOOSEROWS関数は、Excel for Microsoft 365の最新バージョンで提供されている関数です。Excel 2019、2021、またはそれ以前のバージョンでは利用できません。

対処法:

  1. Excelのバージョンを確認する
    ご自身のExcelがMicrosoft 365のサブスクリプション版であることを確認してください。
  2. 代替手段を検討する
    古いバージョンのExcelを使用している場合は、FILTER関数やINDEX関数、OFFSET関数などを組み合わせて同様の抽出を行う必要があります。ただし、これらの方法は数式が複雑になりがちです。

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

CHOOSECOLS関数とCHOOSEROWS関数は、データ範囲から特定の列や行を「抽出」することに特化しています。一方、VLOOKUP関数やXLOOKUP関数は、特定の値を検索し、その値に対応する別の列の値を「取得」するために使用されます。

例えば、顧客リストから特定の顧客IDを持つ行を探し出し、その顧客の電話番号を取得したい場合は、VLOOKUP関数やXLOOKUP関数を使用します。しかし、顧客リスト全体から「氏名」の列と「メールアドレス」の列だけを抜き出したい場合は、CHOOSECOLS関数が適しています。

これらの関数は、それぞれ得意とする処理が異なります。目的に応じて適切な関数を選択することが重要です。

項目 CHOOSECOLS・CHOOSEROWS関数 VLOOKUP・XLOOKUP関数
主な用途 配列から指定した列・行を抽出 検索値に基づいて、対応する列の値を返却
返却値 抽出された列または行の配列 検索値に対応する単一の値
必要バージョン Microsoft 365 Excel 2019以降(XLOOKUPはMicrosoft 365)
複雑さ シンプル 検索列・返却列の指定が必要(XLOOKUPはより柔軟)

まとめ

CHOOSECOLS関数とCHOOSEROWS関数を習得することで、Excelでのデータ抽出作業が格段に効率化されます。これらの関数を使えば、煩雑な数式や手作業なしに、必要な列や行だけを素早く取り出せます。

本記事で解説したCHOOSECOLS関数による列抽出、CHOOSEROWS関数による行抽出の手順を理解し、FILTER関数など他の関数と組み合わせることで、より高度なデータ分析が可能になります。まずは簡単なデータでこれらの関数を試してみて、その便利さを体験してみてください。

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

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

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

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