TAKE 函数¶
函数概述¶
TAKE 函数用于从数组或区域的开头/结尾提取指定数量的行或列,返回一个更小的数组结果。它常用于动态数组场景,比如从明细表里快速取“前 N 行”“后 N 列”“最新 N 条记录”等。
- 取前面:参数为正数
- 取后面:参数为负数
- 可同时指定行数与列数,灵活裁剪二维数据
适用场景举例:
- 取销售表前 10 条记录
- 取最近 7 天数据(配合排序后取末尾)
- 从宽表中只保留左侧关键列或右侧指标列
基础语法¶
参数说明¶
| 参数 | 是否必填 | 说明 | 取值示例 |
|---|---|---|---|
| array | 必填 | 要截取的数组/区域 | A2:D100、Table1[#All]、FILTER(...) |
| rows | 可选 | 要截取的行数;正取前、负取后;省略表示不按行裁剪 | 5、-3 |
| columns | 可选 | 要截取的列数;正取左、负取右;省略表示不按列裁剪 | 2、-1 |
补充规则(便于理解):
rows=3:取前 3 行;rows=-3:取后 3 行columns=2:取左 2 列;columns=-2:取右 2 列- 若只想裁剪列:可省略 rows,但要保留占位逗号:
TAKE(array,,2)
基础用法示范¶
取前N行¶
需求:从 A2:D100 中取前 5 行。
取后N行¶
需求:取最后 7 行(常用于“最新 7 条”)。
取左N列¶
需求:只保留左侧 3 列。
取右N列¶
需求:只保留最右侧 2 列(例如两项指标列)。
同取行和列¶
需求:取前 4 行且取左 2 列(裁剪成 4×2)。
取末行末列块¶
需求:取最后 3 行且取右 2 列。
配合排序取TopN¶
需求:按“销售额”降序排序后取前 10 行。假设数据为 A2:D100,销售额在第 4 列。
配合筛选后再截取¶
需求:筛选出“华东”区域后,取其中前 5 条。假设区域列在第 2 列。
取表头或表尾¶
需求:取表头 1 行(常用于提取标题行或字段名)。
需求:取表尾 1 行(常用于取最新汇总行)。
总结¶
TAKE 是一个“数组裁剪”函数:用最少的参数快速从数据的前/后截取指定行列,尤其适合动态数组工作流。记住三点就够用:
- 正数取前/左,负数取后/右
- 只截列时写成:
TAKE(array,,columns) - 与
SORT、FILTER等搭配,可轻松实现 TopN、最新N、条件后截取等常见报表需求