FILTER筛选函数的底层逻辑 一通百通

文摘   教育   2024-10-06 21:50   湖北  

2000元课程

  免费学7天

函数+VBA




函数FILTER执行多条件筛选时有一条定律:多个条件同时满足,条件之间用星号(*)连接;满足其中部分条件,条件之间用加号(+)连接。由此还形成两个模板化公式:

FILTER(筛选数据,条件1*条件2*条件3……)

FILTER(筛选数据,条件1+条件2+条件3……)

本着知其然,还要知其所以然的精神,来一探究竟吧。

先来了解3个知识点。

1.FILTER筛选TRUE对应的数据。

B列是要筛选的数组,C列是手动输入的条件。

=FILTER(B3:B10,C3:C10)

结论:FILTER筛选出第二参数中TRUE对应的数据。

这是函数FILTER的底层逻辑。

把条件改为数字,FILTER筛选出所有非0数字对应的数据:

=FILTER(B3:B10,C3:C10)

结论:非0数字=TRUE,0=FALSE

买课程可进永久答疑群,课程可免费试学点击下方链接即可

郑广学Excel实战教程



TRUE与FALSE的四则运算

回忆一下四则运算,加减乘除。

TRUE和FALSE参与四则运算时:TRUE等同于1,FASLE等同于0.

模板公式中的星号为乘法运算,加号为加法运算。

现在,把以上3个只是点串联起来,尝试着理解这个公式:

=(C3:C10>35)*(D3:D10="男")

C3:C10>35:年龄大于35,这个表达式将返回一个由TRUE和FALSE组成的数组。

D3:D10="男":性别为“男”,这个表达式也会返回一个由TRUE和FALSE组成的数组。

两个数组相乘,当且仅当两个TRUE相乘时才会得到非0数字。意味着把它作为FILTER的第2参数时,两个条件都成立的才会被筛选。

两个条件相加时,只要其中一个是TRUE,结果就是非0数字;意味着只要其中一个条件成立,就会被筛选出来。

说出需求,自动帮你写好VBA代码!


如何把这些知识表达清楚是一件比学习它们更困难的事。即使无法完全理解,也希望这些信息对你有所帮助。

好了,今天的Excel小课堂就到此结束,大家赶紧实际操作联系一下吧,有不懂的问题可以留言问我!感谢关注Excel880,还请多多转发,持续关注我们呀!


EXCEL880
Excel/WPS办公技巧分享 郑广学VBA/VSTO/JSA教程分享 课程咨询及付费定制表格加EXCEL880B
 最新文章