スプレッドシートのCHOOSEROWS関数の使い方|行を自由に抽出

スポンサーリンク

スプレッドシートの大きな表から、必要な行だけを別の場所に取り出したいことってありますよね。行を手動でコピーすると、元データが更新されるたびに貼り直しが必要になって面倒です。

CHOOSEROWS関数を使えば、必要な行だけを数式ひとつで抽出できます。行の順番を入れ替えたり、複数行をまとめて取り出したりすることも自在です。

この記事では、CHOOSEROWS関数の基本的な使い方から、INDEX関数との違い、実務での活用パターンまでわかりやすく解説します。

スプレッドシートのCHOOSEROWS関数とは?

CHOOSEROWS関数(読み方: チューズロウズ関数)は、指定した行だけを元の範囲から自由に取り出す関数です。「choose rows(行を選ぶ)」が名前の由来です。

たとえば、20行ある社員名簿から「田中さん」「佐藤さん」の行だけを抜き出すことができます。元データと数式でつながっているため、元データが更新されれば抽出結果も自動で反映されますよ。

CHOOSEROWS関数にできることをまとめると、次のとおりです。

  • 元データから必要な行だけを抽出する
  • 複数の行番号をカンマで並べて一括取得できる
  • 行の並び順を自由に入れ替えて出力できる
  • 負の値を使って末尾から行を指定できる

NOTE

CHOOSEROWS関数はGoogleスプレッドシート独自の関数ではなく、ExcelのMicrosoft 365やExcel 2024でも使用できます。ただし、Excel 2019以前のバージョンでは使えません。

CHOOSEROWS関数の基本構文

=CHOOSEROWS(配列, 行番号1, [行番号2, ...])

カッコの中に、元データの範囲と、取り出したい行の番号を指定します。

引数必須/任意説明
配列必須元データのセル範囲または配列
行番号1必須取り出す行の番号(1始まり)
行番号2以降任意追加で取り出す行の番号(カンマ区切りで複数指定可)

行番号は、指定した範囲の中での相対的な番号です。範囲が3行目から始まっていても、先頭行が「1」になります。シート全体の行番号ではない点に注意してくださいね。

CHOOSEROWS関数の基本的な使い方

ここでは、社員名簿のデータからCHOOSEROWS関数で行を取り出す例を紹介します。

サンプルデータ

A1:E6に以下のデータが入っているとします。

 ABCDE
1社員番号氏名部署役職メール
21001田中太郎営業主任tanaka@example.com
31002鈴木花子経理課長suzuki@example.com
41003佐藤一郎営業部長sato@example.com
51004高橋美咲人事主任takahashi@example.com
61005伊藤健太経理係長ito@example.com

1行だけ取り出す

「田中太郎」の行だけを取り出します。出力先のセル(たとえばA8)に以下の数式を入力して、Enterを押します。

=CHOOSEROWS(A1:E6, 2)
 ABCDE
81001田中太郎営業主任tanaka@example.com

第2引数に「2」を指定したので、範囲内の2行目(見出しを1行目とすると田中さんのデータ行)が横方向にすべて出力されました。

複数行をまとめて取り出す

「田中太郎」「佐藤一郎」「伊藤健太」の3行をまとめて取り出します。

=CHOOSEROWS(A1:E6, 2, 4, 6)
 ABCDE
81001田中太郎営業主任tanaka@example.com
91003佐藤一郎営業部長sato@example.com
101005伊藤健太経理係長ito@example.com

行番号をカンマで区切って並べるだけで、必要な行だけを抜き出せます。「鈴木花子」「高橋美咲」の行は含まれていませんね。

CHOOSEROWS関数の実務活用パターン

特定のレコードだけ抽出する

元の管理表から特定のレコードだけを取り出すことができます。ヘッダー行も一緒に抽出すると見やすくなりますよ。

=CHOOSEROWS(A1:E6, 1, 3, 5)
 ABCDE
8社員番号氏名部署役職メール
91002鈴木花子経理課長suzuki@example.com
101004高橋美咲人事主任takahashi@example.com

行番号「1」でヘッダー行も含めて抽出しています。報告書や共有資料を作るとき、元データを壊さずに必要な情報だけを別の場所に表示できますよ。

行順を入れ替えて出力する

行番号の指定順を変えるだけで、出力順を自由に変えられます。

=CHOOSEROWS(A1:E6, 4, 2, 6)
 ABCDE
81003佐藤一郎営業部長sato@example.com
91001田中太郎営業主任tanaka@example.com
101005伊藤健太経理係長ito@example.com

元データでは「田中→佐藤→伊藤」の順番ですが、「佐藤→田中→伊藤」に入れ替えて出力されました。特定のメンバーを先頭に配置したいときに便利ですよ。

負の値で末尾から取り出す

行番号に負の値を指定すると、末尾から数えて行を取り出せます。

=CHOOSEROWS(A1:E6, -1)

「-1」は最終行を意味するので、6行目の「伊藤健太」のデータが取り出されます。「-2」なら末尾から2番目の「高橋美咲」です。

行数が変動する可能性のあるデータでも、「最後の行を取得したい」という場面で確実に末尾行を取り出せます。

=CHOOSEROWS(A1:E6, 1, -2, -1)

このように正の値と負の値を混ぜて使うこともできます。先頭の「ヘッダー行」と末尾2行のデータを一度に取り出せますよ。

INDEX関数との違い・使い分け

スプレッドシートで特定の行を取り出す方法として、INDEX関数もあります。この2つの関数には明確な違いがあります。

比較項目CHOOSEROWS関数INDEX関数
複数行の同時取得できる(行番号を複数指定)できない(1回の指定で1行のみ)
行順の入れ替えできるできない
負の値(末尾指定)できるできない
列の指定できない(行の抽出専用)できる(行と列を指定して1つの値を取得)
対応バージョンMicrosoft 365 / Excel 2024以降すべてのバージョン

使い分けの目安は次のとおりです。

  • 複数行をまとめて抽出したい、行順を変えたい → CHOOSEROWS関数
  • 特定の行と列が交差する1つの値を取り出したい → INDEX関数

INDEX関数は「行番号と列番号を指定して1つのセルの値を返す」のが本来の使い方です。一方、CHOOSEROWS関数は「行まるごと抽出」に特化しています。目的に合わせて選んでくださいね。

CHOOSEROWSとCHOOSECOLSの違い

CHOOSEROWS関数には、ペアとなるCHOOSECOLS関数があります。名前のとおり、行と列の違いだけです。

比較項目CHOOSEROWS関数CHOOSECOLS関数
抽出対象行を取り出す列を取り出す
構文=CHOOSEROWS(配列, 行番号1, ...)=CHOOSECOLS(配列, 列番号1, ...)
引数の構造完全に同じ完全に同じ
負の値末尾の行を指定末尾の列を指定

使い分けはシンプルです。

  • 必要な行を選んで抽出したい → CHOOSEROWS関数
  • 必要な列を選んで抽出したいCHOOSECOLS関数

両方を組み合わせれば、行と列を同時に絞り込むこともできます。

=CHOOSEROWS(CHOOSECOLS(A1:E6, 2, 3), 1, 3, 5)

まずCHOOSECOLS関数で「氏名」「部署」の2列を抽出し、その結果からCHOOSEROWS関数で1行目・3行目・5行目を取り出しています。大きな表から必要なデータだけをピンポイントで抜き出せますよ。

よくあるエラーと対処法

CHOOSEROWS関数はシンプルですが、行番号の指定を間違えるとエラーになります。

エラー原因対処法
#VALUE!行番号に0を指定した行番号は1以上または-1以下を指定してください
#VALUE!行番号が範囲の行数を超えている範囲の行数以内の番号を指定してください
#REF!出力先のセルに既にデータがある出力先の範囲を空にしてください
#NAME?関数名のスペルミス「CHOOSEROWS」のスペルを確認してください

特に注意したいのが「行番号0」のケースです。CHOOSEROWS関数の行番号は1始まりなので、0を指定すると #VALUE! エラーになります。

TIP

行番号が範囲の行数を超えていないか確認するには、ROWS関数を使いましょう。=ROWS(A1:E6) で範囲の行数(この例では6)がわかります。指定する行番号がこの数を超えないように注意してくださいね。

まとめ

CHOOSEROWS関数は、指定した行だけを元の範囲から自由に取り出すための関数です。複数行の一括抽出、行順の入れ替え、末尾からの指定まで、柔軟な行操作が1つの数式で完結します。

この記事のポイントをおさらいしておきましょう。

  • CHOOSEROWS関数は =CHOOSEROWS(範囲, 行番号) で、指定した行を取り出す
  • 行番号をカンマで複数並べれば、必要な行をまとめて取得できる
  • 行番号の指定順で出力の並び順が決まるので、行順の入れ替えも簡単
  • 負の値(-1、-2…)で末尾から行を指定できる
  • INDEX関数は1セルの値を返す関数。行まるごと抽出ならCHOOSEROWS関数が最適
  • CHOOSECOLS関数は列方向のペア関数。組み合わせれば行と列の同時絞り込みもできる

まずは =CHOOSEROWS(A1:E6, 2, 4) のように必要な行を取り出すところから試してみてください。FILTER関数SORT関数と組み合わせれば、データの整理がグッと効率的になりますよ。

この記事で紹介した関数・関連記事

タイトルとURLをコピーしました