FILTER函数是一个超级智能筛子,FILTER+SUM多条件求和!

yumo6666个月前 (05-21)技术文章25

FILTER函数在Excel或WPS表格中是一个超级智能筛子,下面我们通过一个简单的案例理解它的强大之处。


如下图所示

A1:D10区域是各部门员工的签单金额表,另外每一单有一个状态,提示这一单是否完成客户金额付款。


我们要做的就是:将符合曙光部且每单金额大于3000的,且排除订单已退款状态下的部门总金额统计出来。也就是要符合3个条件汇总总金额,即多条件求和。






FILTER函数的定义与功能

FILTER函数是Excel和WPS表格工具中的一种动态数组函数,核心功能是根据指定条件从数据区域中筛选出符合条件的记录。


FILTER函数语法为

=FILTER(数组, 条件, [无结果时的返回值])


数组:需要筛选的数据区域。

条件:逻辑表达式。

无结果时的返回值(可选):当无匹配数据时显示的内容



第一步:增加第一个条件,筛选部门“曙光部”


输入函数公式

=FILTER(C2:C10,A2:A10=F2)


FILTER函数筛选C2:C10区域的金额数据。那么我们筛选C2:C10区域内的哪些金额数据呢?我们这样执行筛选,当条件区域A2:A10单元格区域内的部门与F2单元格部门相同时,我们才会筛选C2:C10区域内与之对应的行数据,数组溢出返回结果:

{7300;3500;6870;2470}




第二步:增加第二个条件,在上一步基础上筛选金额大于3000的


输入函数公式

=FILTER(C2:C10,(A2:A10=F2)*(C2:C10>3000))


在条件1(A2:A10=F2)的基础上用乘号连接条件2(C2:C10>3000),即当C2:C10区域内的金额大于3000时,再上一步的筛选基础上再次执行筛选C2:C10区域内与之对应的行数据,数组溢出返回结果:

{7300;3500;6870}




第三步:增加第三个条件,在上两步基础上筛选排除已退款状态的


我们输入函数公式

=FILTER(C2:C10,(A2:A10=F2)*(C2:C10>3000)*(D2:D10<>"已退款"))


在条件1(A2:A10=F2)与条件2(C2:C10>3000)的基础上用乘号连接条件3(D2:D10<>"已退款"),即当D2:D10区域内标注的文字不等于“已退款”时,再在上两步的筛选基础上执行筛选C2:C10区域内与之对应的行数据,数组溢出结果:

{7300;6870}




第四步:求和


最后用SUM函数进行筛选结果求和就行了

=SUM(FILTER(C2:C10,(A2:A10=F2)*(C2:C10>3000)*(D2:D10<>"已退款")))


由于SUM函数天然支持数组参数,无论参数是静态数组(如 {1,2,3})、单元格区域引用,还是动态数组公式生成的溢出结果,都可以进行求和。


比如今天这个例子中就是FILTER函数返回的数组溢出结果{7300;6870},SUM函数对其进行求和的。




但是SUMIF函数就无能为力了

=SUMIF(D2:D10,"<>已退款",FILTER(C2:C10,(A2:A10=F2)*(C2:C10>3000)*(D2:D10<>"已退款")))


比如我们在前两个条件的筛选基础上,用SUMIF函数嵌套第3个条件。原则上SUMIF函数的第一参数D2:D10为第3个条件区域,第二参数增加对条件区域满足"<>已退款"的第3个条件,然后执行对FILTER筛选结果的条件求和。但是回车结束公式时提示公式错误,无法完成


这就是因为SUMIF函数的第3个参数是实际进行求和的单元格区域或引用它不支持直接使用数组。每次调用SUMIF函数时,第3参数求和区域只能指向一个具体的单元格区域或引用,而不能是一个数组。如果需要处理数组溢出的结果,比如本例中的FILTER函数数组溢出结果,就必须使用其他函数或方法来实现了。


相关文章

告别手动筛选!Excel大神的FILTER函数,让数据动态更新快如闪电

大家好!今天要教大家一个让数据处理效率翻10倍的超级函数——FILTER函数!这个Excel 365和2021版本新增的函数,将彻底改变你处理数据的方式。 为什么FILTER函数如此强大?传统的数据筛...

简称查找全称,Vlookup,Xlookup,Filter哪个公式更厉害

举个工作实例,左边是员工数据表,需要根据员工的简称,快速查找匹配出对应工资数据。今天分享热门的3个公式大PK,看你更喜欢用哪个1、Vlookup函数公式我们需要搭配通配符来查找匹配,通配符*,表示任意...

PART23: 还有人不会filter函数?都去学,真的香!

公式解析FILTER:筛选区域或数组=FILTER(数据源,条件)用法解析1:正向查找返回陈志轩的相关信息:=FILTER(B1:E8,A1:A8=H1)仅需要在G4中输入上述公式,结果返回G4:J4...

Filter函数的三种用法,比用VLOOKUP一对多查询,更加灵活方便

文章最后有彩蛋!好礼相送!Excel秘籍大全,正文开始FILTER 函数可以基于定义的条件筛选一系列数据。在没有filter函数之前,如果实现一对多查询,常见的是构建辅助列,然后使用VLOOKUP+R...

Excel中FILTER函数的用法

FILTER函数在Excel中作用是筛选符合条件的单元格。使用公式=FILTER(B2:B20,A2:A20=F2)就能轻松实现一对多筛选。1.单条件如表1,需要看孙三销售了那些产品,可以输入公式=F...

效率开挂的4个Excel公式,一用就上瘾

今天和大家分享一组常用Excel函数公式的使用方法:多对多查询如下图所示,希望提取出品牌为“松下”,并且库存数大于20的所有记录。E5单元格输入以下公式,按回车。=FILTER(A2:A13,(B2:...