北屋教程网

专注编程知识分享,从入门到精通的编程学习平台

干掉VLOOKUP,FILTER函数9大用法全解析!

1. 单条件基础筛选

场景:筛选销量 >5000 的记录

公式:

=VSTACK(A1:D1,FILTER(A2:D9,D2:D9>5500))

解析:

A2:D9为需要筛选的数据区域,D2:D9>5500返回{TRUE;TRUE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE}作为筛选条件。

结果返回“TRUE”对应的A2:D9中的所有行。

VSTACK作用是为筛选得到的结果添加标题行。

  1. 多条件且关系

场景:筛选部门A且销量>5000的记录

公式:

=FILTER(A2:D9,(B2:B9="A")*(D2:D9>5500))

解析:

同时满足两个条件得到“TRUE*TRUE”结果返回1,这样两组条件相乘结果得到一个1与0组成的数组{1;1;0;0;0;0;0;0};

作为FILTER筛选条件时,0对应的行会被删除,保留非0数字对应的所有行。

3. 多条件或关系(OR)

场景:筛选「部门A或销量>5500的记录

公式:

=FILTER(A2:D9,(B2:B9="A")+(D2:D9>5500))

解析:

只要有一个或多个TRUE相加,结果一定返回一个非0数字,这样两组条件相加结果得到一个1与0组成的数组{2;2;0;1;0;1;0;0};

作为FILTER筛选条件时,0对应的行会被删除,保留非0数字对应的所有行。

4. 动态日期范围筛选

场景:筛选 2025年 1 月的记录

公式:

=FILTER(A2:D9,(B2:B9>=DATE(2025,1,1))*(B2:B9<=DATE(2025,1,15)))

解析:

DATE 函数构建销售日期,结果返回2025-1-1至2025-1-15期间的销售记录。

5. 结合 UNIQUE 去重筛选

场景:提取有人员销量大于6000的部门且去重

公式:

=UNIQUE(FILTER(B2:B9,D2:D9>6000))

解析:

筛选出符合条件的人员名单,再用UNIQUE去除重复值,结果返回 D 列“>6000”的部门名单,且不重复。

6. 嵌套 SORT 排序结果

场景:筛选后按销售额降序排列

公式:

=SORT(FILTER(A2:D9,(B2:B9="A")*(D2:D9>5500)),4,-1)

解析:

FILTER(A2:D9,(B2:B9="A")*(D2:D9>5500))筛选出A部门大于5500销售数据;

SORT(......,4,-1)4 表示按第 4 列(D 列)排序,-1 为降序。

7. 处理无结果时的错误提示

场景:无数据时显示无

公式:

=FILTER(A2:D9,D2:D9>7000,"无")

解析:

第三参数表示找不到对应数据时,返回指定结果“无”。

8.模糊匹配:筛选 B 列包含“A”的销售数据

公式:

=FILTER(A2:D9,ISNUMBER(SEARCH("A",B2:B9)))

解析:

SEARCH("A",B2:B9)查找A在数据区域B2:B9各文本字符串中对应的位置;

ISNUMBER(......)判断结果是否为数值,返回结果作为FILTER筛选的依据。

  1. 双重筛选:根据指定条件二次筛选

公式:

=FILTER(VSTACK(A1:D1,FILTER(A2:D9,D2:D9>5500)),ISNUMBER(XMATCH(A1:D1,{"部门","销量"})))

解析:

VSTACK(A1:D1,FILTER(A2:D9,D2:D9>5500))筛选出销量大于5500销售数据;

FILTER(......,ISNUMBER(XMATCH(A1:D1,{"部门","销量"})))中,

XMATCH(A1:D1,{"部门","销量"})查找表头在{"部门","销量"}对应的位置,再用ISNUMBER检测结果是否为数值,返回的结果作为二次筛选的条件,FILTER二次筛选出指"部门"、"销量"相应的数据。

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言