Googleスプレッドシートで特定の行や列だけを抽出したい場面はよくあります。従来はFILTER関数やINDEX関数を組み合わせた複雑な式が必要でした。しかし、CHOOSEROWS関数とCHOOSECOLS関数を使えば、簡単に思い通りの行や列を取り出せます。この記事では、これらの関数の基本的な使い方から実践的な応用までを解説します。これを読めば、データの一部分だけを素早く抽出するスキルを身につけられます。
【要点】CHOOSEROWS関数とCHOOSECOLS関数で行・列を自由に抽出
- =CHOOSEROWS(範囲, 行番号1, 行番号2, …): 指定した行番号の行だけを新しい範囲として抽出します。
- =CHOOSECOLS(範囲, 列番号1, 列番号2, …): 指定した列番号の列だけを新しい範囲として抽出します。
- 両関数の組み合わせ: CHOOSEROWSで行を絞り、その結果をCHOOSECOLSに渡すことで、行列を自由に切り出せます。
ADVERTISEMENT
目次
CHOOSEROWS関数とCHOOSECOLS関数の基本
CHOOSEROWS関数とCHOOSECOLS関数は、2023年に追加された比較的新しい関数です。これらの関数を使うと、配列や範囲から特定の行または列だけを簡単に取り出せます。構文はどちらもシンプルで、第一引数に元の範囲を指定し、第二引数以降に取り出したい行番号または列番号を並べます。番号は正の整数で先頭からの位置を指定するほか、負の整数で末尾からの位置も指定できます。例えば、-1は最終行または最終列を意味します。
CHOOSEROWS関数の構文
=CHOOSEROWS(範囲, 行番号1, [行番号2, …])
範囲には抽出元のセル範囲または配列を指定します。行番号には抽出したい行の位置を1から始まる整数で指定します。複数指定することで複数の行を一度に抽出でき、順番も自由に変更できます。例えば、=CHOOSEROWS(A1:D10, 1, 3, 5) とすると、1行目、3行目、5行目だけが抽出されます。
CHOOSECOLS関数の構文
=CHOOSECOLS(範囲, 列番号1, [列番号2, …])
列番号には抽出したい列の位置を1から始まる整数で指定します。例えば、=CHOOSECOLS(A1:D10, 2, 4) とすると、2列目と4列目だけが抽出されます。負の数を使えば、=CHOOSECOLS(A1:D10, -1) で最終列だけを抽出することも可能です。
CHOOSEROWS関数とCHOOSECOLS関数の具体的な使い方
ここでは実際のデータを使いながら操作手順を紹介します。サンプルデータとして、A列に商品名、B列に価格、C列に在庫数、D列にカテゴリが入力されたA1:D10の範囲を想定します。
特定の行を抽出する手順
- 抽出結果を表示するセルを選択する
まず、結果を表示したいセル(例えばF1)をクリックします。 - CHOOSEROWS関数を入力する
=CHOOSEROWS(A1:D10, 2, 4, 6) と入力します。この例では元データの2行目、4行目、6行目だけが抽出されます。 - Enterキーで確定する
すると、F1セルを起点として、指定した行が縦に並んで表示されます。抽出結果はスピル範囲として自動的に拡張されます。
特定の列を抽出する手順
- 結果を表示するセルを選択する
例えばH1セルをクリックします。 - CHOOSECOLS関数を入力する
=CHOOSECOLS(A1:D10, 1, 3) と入力します。これで元データの1列目(商品名)と3列目(在庫数)だけが抽出されます。 - Enterキーで確定する
H1セルから右方向に指定した列が並びます。
行と列を同時に抽出する手順(組み合わせ)
- まずCHOOSEROWSで行を絞る
=CHOOSEROWS(A1:D10, 1, 3, 5) と入力して、特定行のみの範囲を作ります。 - その結果をCHOOSECOLSでラップする
上記の式をCHOOSECOLSの範囲引数として使います。=CHOOSECOLS(CHOOSEROWS(A1:D10,1,3,5), 2,4) と入力します。 - Enterキーで確定する
これで、元データの1、3、5行目のうち、2列目と4列目だけが抽出されます。
負の行番号・列番号を使う手順
- 最終行を抽出する
=CHOOSEROWS(A1:D10, -1) と入力すると、元データの最終行(10行目)だけが抽出されます。 - 最終列を抽出する
=CHOOSECOLS(A1:D10, -1) と入力すると、最終列(D列)だけが抽出されます。 - 末尾から複数行・列を抽出する
=CHOOSEROWS(A1:D10, -3, -2, -1) で後ろから3行分を抽出できます。
CHOOSEROWS/CHOOSECOLSを使う際の注意点
これらの関数は便利ですが、いくつか注意すべき点があります。ここではよくある失敗パターンと対処法を説明します。
指定した行番号・列番号が範囲外の場合
元の範囲の行数や列数を超えた番号を指定すると、エラーになります。例えば、10行しかない範囲に=CHOOSEROWS(A1:D10, 11) とすると#REF!エラーが発生します。このエラーを避けるには、あらかじめROWS関数やCOLUMNS関数で範囲のサイズを確認してから指定しましょう。
重複した番号を指定した場合
同じ行番号・列番号を複数指定すると、その行や列が重複して抽出されます。意図的に重複させることもできますが、予期せぬ重複を避けるためには、指定する番号に重複がないか確認してください。
スピル範囲の制限
抽出結果はスピル範囲に表示されますが、結果が重なるセルに他のデータがあるとエラーになります。スピル範囲のセルが空いていることを事前に確認する必要があります。
配列定数との組み合わせ
CHOOSEROWSやCHOOSECOLSの行番号・列番号引数には、配列定数を使うこともできます。例えば、=CHOOSEROWS(A1:D10, {1;3;5}) のように指定できます。ただし、区切り文字に注意が必要です。行方向の配列はセミコロン、列方向はカンマを使います。
ADVERTISEMENT
CHOOSEROWS/CHOOSECOLSと他の関数との比較
| 関数 | 特徴 | 使用例 | メリット |
|---|---|---|---|
| CHOOSEROWS | 指定した行番号の行だけを抽出 | =CHOOSEROWS(A1:D10,1,3,5) | 複数行を任意の順序で抽出でき、負の数で末尾行も指定可能 |
| CHOOSECOLS | 指定した列番号の列だけを抽出 | =CHOOSECOLS(A1:D10,2,4) | 列の順序を自由に変更でき、負の数で末尾列も指定可能 |
| INDEX | 指定した行と列の交差するセルを返す | =INDEX(A1:D10,3,2) | 単一セル取得に特化。複数行・列を取得するには配列数式が必要 |
| FILTER | 条件に一致する行・列を抽出 | =FILTER(A1:D10,B1:B10>100) | 条件による動的な抽出が可能。行番号指定には向かない |
まとめ
CHOOSEROWS関数とCHOOSECOLS関数を使えば、特定の行や列だけを簡単に抽出できるようになります。従来のINDEXやFILTERでは難しかった「複数の行・列を好きな順番で抽出」という操作が、わずかな引数で実現します。特に、負の数を使った末尾からの抽出や、組み合わせによる部分行列の取得は、データ分析で頻繁に役立つでしょう。次はQUERY関数と組み合わせて、抽出したデータをさらに加工してみてください。これらの関数を活用して、スプレッドシート作業の効率を一段と高められます。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Googleスプレッドシートの人気記事ランキング
- 【Googleスプレッドシート】GOOGLEFINANCE関数で株価・為替を取得!リアルタイムデータの呼び出し
- 【Googleスプレッドシート】印刷範囲を指定して印刷!特定範囲だけPDFや紙に出す手順
- 【Googleスプレッドシート】新しいスプレッドシートを作成する3つの方法!ドライブ・URL・テンプレート
- 【Googleスプレッドシート】数値の連続データを自動入力!オートフィルの活用
- 【Googleスプレッドシート】ダークモードを有効にする!目に優しい配色への切替
- 【Googleスプレッドシート】株価APIで株式データを自動取得!GOOGLEFINANCE超え活用
- 【Googleスプレッドシート】共有相手が編集できない時のチェック!権限と許可状態の確認
- 【Googleスプレッドシート】ページ設定で用紙サイズと向きを調整!印刷レイアウトの基本
- 【Googleスプレッドシート】Excelファイルxlsxをインポートする手順!ドラッグ&ドロップで取り込み
- 【Googleスプレッドシート】条件付き書式をコピーする!書式のみペーストの活用
