今天教大家一个 365 版本的函数 take,这个函数的作用是按条件提取数据。
虽然类似的功能很多函数都有,但 take 函数有一个显著的提升,就是可以反向提取数据,从下到上,从右到左都可以,这个优势可是其他函数无法望其项背的。
一下子让很多疑难案例变得简单。
案例:下图 1 中的 C 列有的是文本,有的是文本型数字,有的是数值,总之格式非常混乱。现在要求提取出 C 列格式为数值的最后 3 行。
效果如下图 2 所示。
1. 在 E2 单元格中输入以下公式 --> 回车:
=TAKE(FILTER(A2:C28,ISNUMBER(C2:C28)),-3,3)
公式释义:
FILTER(A2:C28,ISNUMBER(C2:C28)):
filter 函数我已经写过很多相关案例了,就简单讲解一下可以了,它的语法为 FILTER(要筛选的区域, 筛选条件, [为空时返回的值]);
这里的公式就表示从 A2:C28 区域中筛选出所有 C2:C28 的值为数值的行;
接下来 take 函数是今天重点要讲解的。
Take 函数
作用:
以数组的开头或结尾作为起点,返回指定数量的行或列。
语法及参数:
TAKE(array, rows,[columns])
array:必需,要从中获取行或列的数组;
rows:必需,要获取的行数;负值则表示从数组的末尾开始反向取值;
[columns]:可选,要获取的列数;负值同样表示从数组的末尾开始反向取值。
回到案例中的公式:
TAKE(...,-3,3):从 filter 函数提取出的数组区域中选取从下往上 3 行,从左往右 3 列的区域。