ExcelのTAKE関数の使い方|先頭/末尾の行・列を抽出

スポンサーリンク

ExcelのTAKE関数は、配列から先頭または末尾のN件を取り出す関数です。

「売上上位3件を抽出したい」「最新N件を常に表示したい」に直接答えられます。

この記事では、基本的な使い方から、SORT・FILTER関数との組み合わせ、DROP関数との使い分けまで解説します。

対応バージョン: Microsoft 365 / Excel 2024 以降のみ。Excel 2021 以前は非対応です。

TAKE関数とは?

読み方・語源

TAKE関数(読み方:テイク)は、配列の先頭・末尾から行や列を取り出す関数です。関数名は英語の take(取り出す)に由来します。

結果は複数セルに自動展開されます(スピル動作)。

できること(ひと言で)

  • 先頭N行・末尾N行の取り出し
  • 先頭N列・末尾N列の取り出し
  • 行と列を同時に指定した範囲の切り出し

他の配列関数と組み合わせることで、複雑な抽出も1式で書けます。

対応バージョン(Excel 365 / 2024以降)

バージョン対応
Microsoft 365(Win/Mac)
Excel for the web
Excel 2024
Excel 2021×
Excel 2019 以前×

TAKE関数はMicrosoft 365またはExcel 2024以降が必要です。Excel 2021は非対応です。

TAKE関数の書き方

構文と引数

=TAKE(配列, 行数, [列数])
引数必須説明
配列必須取り出し元の配列またはセル範囲
行数必須取り出す行数。正の値→先頭から、負の値→末尾から
列数省略可取り出す列数。正の値→先頭から、負の値→末尾から

引数「行数」「列数」の正・負の意味

行数・列数の符号で、先頭・末尾どちらから数えるかが変わります。

  • 正の値: 先頭から数えてN行(列)を取り出す
  • 負の値: 末尾から数えてN行(列)を取り出す

列のみを指定したい場合は、行数の位置をカンマで区切って空にします。

=TAKE(A2:C10, , 2)

第2引数を空のままにすることで、列数だけを指定できます。

先頭のN行を取り出す(正の値)

A2:C10の範囲を使うとします。先頭3行を取り出すには次のように書きます。

=TAKE(A2:C10, 3)

A2:C4に相当する3行分が返されます。

行数が実際の行数を超えても、エラーにはなりません。配列全体が返されます。

注意: 行数に 0 を指定すると #CALC! エラーになります。0は指定しないでください。

末尾のN行を取り出す(負の値)

末尾3行を取り出すには、行数を負の値にします。

=TAKE(A2:C10, -3)

A2:C10の末尾3行が返されます。A8:C10に相当します。

注文履歴テーブルが日付の古い順に並んでいるとします。末尾3行が最新3件に相当します。

=TAKE(注文履歴テーブル, -3)

「最新N件を常に表示したい」という用途に最適です。

列を指定して取り出す

先頭N列を取り出す

A2:C10を使うとします。先頭2列を取り出すには次のように書きます。

=TAKE(A2:C10, , 2)

A2:B10に相当する2列分が返されます。

末尾N列を取り出す

末尾2列を取り出すには、列数を負の値にします。

=TAKE(A2:C10, , -2)

B2:C10に相当する2列分が返されます。

行と列を同時に指定する

行数と列数の両方を指定すると、矩形範囲を切り出せます。

A2:C10から先頭3行 × 先頭2列を取り出すとします。

=TAKE(A2:C10, 3, 2)

A2:B4に相当する範囲が返されます。

SORT関数と組み合わせてTOP N抽出

売上上位3件を抽出する例

A2:C10に「会社名・商品名・売上」が入っているとします。C列の高い順に上位3件を取り出すには次のように書きます。

=TAKE(SORT(A2:C10, 3, -1), 3)

SORT関数でA2:C10を3列目(C列)基準に降順で並べ替えます。その結果の先頭3行をTAKEで取り出します。

SORT関数の書き方: =SORT(配列, 並べ替えインデックス, 並べ替え順序)
並べ替え順序は 1=昇順、-1=降順 です。

SORTBY+TAKEで別列基準のランキング

SORTBY関数は、表示する配列と並べ替えの基準列を別々に指定できます。

A2:C10に「会社名・商品名・売上」が入っているとします。C列の高い順に上位3件を取り出すには次のように書きます。

=TAKE(SORTBY(A2:C10, C2:C10, -1), 3)

C2:C10を基準に降順で並べ替えます。その先頭3行をTAKEで取り出します。

SORTと違い、SORTBYは表示範囲外の列を基準にすることもできます。複数の基準列を設定したい場合にも対応しています。

FILTER関数と組み合わせて条件付き抽出

条件で絞り込んだうえで先頭N件を取り出したいときは、FILTER関数と組み合わせます。

B列が「東京」の行だけを対象にするとします。先頭5件を取り出すには次のように書きます。

=TAKE(FILTER(A2:C10, B2:B10="東京"), 5)

FILTER関数で「B列=東京」の行を抽出します。その結果の先頭5件をTAKEで取り出します。

注意: FILTER関数の結果が0件の場合、#CALC! エラーになります。IFERROR 関数を使ってエラー処理を追加してください。

=IFERROR(TAKE(FILTER(A2:C10, B2:B10="東京"), 5), "該当なし")

DROP関数との使い分け

TAKE vs DROP 比較表

TAKE関数と対になる関数がDROP関数です。構文は同じですが、動作が逆になります。

関数動作使いどころ
TAKE指定部分を残す(取り出す)「上位3件だけほしい」
DROP指定部分を除外する(捨てる)「ヘッダー行を除いた残りがほしい」

DROP関数の書き方: =DROP(配列, 行数, [列数])

どちらを使うか判断基準

  • 欲しい部分が決まっている → TAKE
  • 除外したい部分が決まっている → DROP

A1:C10にヘッダーを含むデータが入っているとします。1行目(ヘッダー)を除いた残りを取り出すには次のように書きます。

=DROP(A1:C10, 1)

TAKEとDROPは組み合わせることもできます。ヘッダーを除いたうえで先頭3件を取り出すとします。

=TAKE(DROP(A1:C10, 1), 3)

DROP関数もTAKEと同様に、Microsoft 365 / Excel 2024以降のみ対応しています。

まとめ・注意点

TAKE関数を使うと、配列から先頭・末尾のN件を簡単に取り出せます。

できること

  • 先頭・末尾からN行・N列を取り出す
  • SORT・SORTBYと組み合わせてTOP N抽出
  • FILTERと組み合わせて条件付き先頭N件を取得
  • DROPと組み合わせてより柔軟な範囲切り出し

注意事項

注意点詳細
バージョン制限Microsoft 365 / Excel 2024以降のみ。Excel 2021は非対応
行数に0を指定しない#CALC! エラーになる
配列サイズ超過#NUM! エラーになる場合がある
行数・列数に文字列を指定しない#VALUE! エラーになる
スピル動作結果は複数セルに自動展開される
行数が配列を超えた場合エラーにならず、配列全体が返される

TAKE関数はMicrosoft 365環境であれば今すぐ使えます。ぜひSORT関数やFILTER関数と組み合わせて活用してみてください。


配列操作系の関数についてはこちらもご覧ください。

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