1、数据筛选
如下图,希望从左侧的信息表中,根据G2的条件,提取出符合条件的全部记录。
F5单元格输入以下公式,按回车。
=FILTER(A2:D14,C2:C14=G1)
FILTER函数第一参数使用A2:D14作为筛选区域,筛选条件为C2:C14=G1,如果筛选条件的计算结果是TEUR或者不为0的数值,FILTER函数就返回第一参数中对应的整行记录。
2、指定条件的不重复记录
如下图,希望从左侧的信息表中,根据G1的条件,提取出符合条件的不重复产品记录。
F5单元格输入以下公式,按回车。
=UNIQUE(FILTER(B2:B23,C2:C23=G1))
首先使用FILTER函数筛选出符合条件的全部产品列表,再使用UNIQUE函数去除重复项。
3、自定义排序
如下图,希望根据F列的职务对照表,对左侧的员工信息进行排序。
H2单元格输入以下公式,按回车即可。
=SORTBY(A2:B21,MATCH(B2:B21,F:F,))
公式中的MATCH(B2:B21,F:F,)部分,分别计算出B2:B21单元格中的各个职务在F列中所处的位置。
接下来再使用SORTBY函数,根据这些位置信息对A2:B21中的内容进行排序处理。
4、字符拆分
如下图,希望将A列混合到一起的姓名,拆分到多个单元格。
B2输入以下公式,按回车即可。
=TEXTSPLIT(A2,{“、”,”,”})
TEXTSPLIT用于拆分混在一起的内容,并且支持使用多种类型的间隔符。
5、提取员工名单
如下图所示,有两天的加工件数据,存放在不同工作表中。需要从两个工作表中提取出不重复的员工名单。
D2单元格输入以下公式,按回车即可“
=UNIQUE(VSTACK(A2:A11,’12月1日’!A2:A13))
先使用VSTACK函数将两个工作表中的姓名区域合并为一个垂直方向的数组,再使用UNIQUE函数从中提取处不重复记录。
6、按条件筛选部分记录
如下图所示,希望从左侧数据表中,提取出“生产部”年龄最小的两位员工的信息。
E2单元格输入以下公式按回车即可:
=VSTACK(A1:C1,TAKE(SORT(FILTER(A2:C11,B2:B11=”生产部”),3),2))
先使用FILTER函数,从A2:C11单元格区域中提取出符合条件的所有记录。
再使用SORT函数,对数组结果中的第3列升序排序。
接下来使用TAKE函数,返回排序后的前两行的内容。
最后,用VSTACK函数,将A1:C1单元格区域中的标题与TAKE函数的结果连接。
7、一列转多列
如下图,希望将A列的姓名转换为两列。
C2单元格输入以下公式即可:
=WRAPROWS(A2:A16,2,””)
WRAPROWS用于将一列内容转换为多列,第1参数是要处理的数据区域,第二参数指定转换的列数。
如果转换后的行列区域大于实际的数据元素个数,第三参数可将这些多出的区域显示成指定的字符。
8、隔行插入空行
如下图所示,希望根据左侧的员工信息,每隔1行插入一个空行。
E1单元格输入以下公式,按回车即可:
=VSTACK(A1:C1,WRAPROWS(TOROW(EXPAND(A2:C11,,6,””)),3))
EXPAND(A2:C11,,6,””),公式中的这部分,用来将A2:C11转换为6列。多出的维度用空文本填充:
接下来,使用TOROW函数将以上结果转换为一行,此时,每组数据之间间隔了三个空白列:
再用WRAPROWS函数转换为3列多行:
最后,用VSTACK将A1:C1中的标题与以上结果合并即可。
一对多查询,在日常工作中经常会用到,举个例子,左边是部门和员工数据,然后我们需要通过部门,查找出所有员工的名单
Filter公式快速实现一对多查询
无需插入辅助列,我们直接可以在E2单元格中输入公式:
=FILTER(B:B,A:A=D2)
=FILTER(结果列,查找列=查找值)
这样的话,所有的员工都一次性的查找出来了,但是它是竖向排列的
我们需要加一个转置公式,TRANSPOSE公式,输入的是:
=TRANSPOSE(FILTER(B:B,A:A=D2))
向下填充就得到了所有的结果
是不是很快,你学会了么?动手试试吧!