这一章给大家讲一个非常经典的搭配:
1.FILTER函数搭配下拉清单多条件(可忽视型)筛选
2.FILTER函数搭配列表框进行多条件(可忽视型)筛选
如下图,比如你经常用下拉清单进行多条件的内容筛选的时候,
你可能会筛选某个款式,某个业务员
但是也有可能会筛选某个款式,而业务员会选择不筛选的情况如下:

当然,除了用下拉清单去做,如果想看上去更加直观,也可以使用到表单控件的列表框去做:

如下图是我们的数据源:

如果你要做双条件筛选,可以使用公式如下:
非常简单,大家应该都知道.
=FILTER(数据源!A2:K500,(数据源!C2:C500=C1)*(数据源!E2:E500=E1))

但是如果你选择某个条件为全部,就会出现这样的报错.

那你这个函数可以写成:
=FILTER(数据源!A2:K500,
IF(C1="全部",1,(数据源!C2:C500=C1))
*(数据源!E2:E500=E1))
如果C1是"全部",输出结果为1,
然后用1乘以后面的判断结果,不会产生任何影响.

除了C1是"全部",也有可能E1是"全部"
所以公式写成:
=FILTER(数据源!A2:K500,
IF(C1="全部",1,(数据源!C2:C500=C1))
*IF(E1="全部",1,(数据源!E2:E500=E1)))

但是都选择全部不筛选的时候,又会报错.

这个时候会有一个理解偏差,
如果公式写成:
=IFERROR(
FILTER(数据源!A2:K500,
IF(C1="全部",1,(数据源!C2:C500=C1))
*IF(E1="全部",1,(数据源!E2:E500=E1))),
数据源!A2:K500)
代表的意思是如果,如上图出现错误选择两个全部,就应该显示所有数据,代表不筛选.

上述写法不标准的地方在于,
例如:我选择夹克,李莫愁
没有筛选满足条件的内容,如果你现在套一个IFERROR函数,就会显示所有的数据,因为#CALC也是一种报错.

所以正确的写法,应该是把FILTER函数的第三个参数用起来.
如果找不到就显示"没找找到"
如果由于两个"全部"导致的错误,用IFERROR消除:
=IFERROR(
FILTER(数据源!A2:K500,
IF(C1="全部",1,(数据源!C2:C500=C1))
*IF(E1="全部",1,(数据源!E2:E500=E1)),
"没有找到"),
数据源!A2:K500)
