大家好,还记得我们平时在Excel实现一对多查询所使用的一长串函数组合吧,iferror+index+small+if+match,今天这里介绍一个新函数FILTER过滤函数,只需一个FILTER函数,就可以快速实现一对多查询,it's not difficult for today, let's see what it can do:
一:FILTER函数语法
FILTER 函数:基于布尔值 (True/False) 数组筛选数组,简单说就是-根据设置的条件来筛选数据
语法:FILTER(array,include,[if_empty])
|
参数 |
描述 |
|
|
第一参数 |
array 必需 |
要筛选的数组或区域 |
|
第二参数 |
include 必需 |
布尔值数组,其高度或宽度与数组相同 |
|
第三参数 |
[if_empty] 可选 |
所含数组中的所有值都为空(筛选器不返回任何内容)时返回的值 |
注意:
- FILTER 函数将返回一个数组,如果该数组是公式的最终结果,则将溢出。 这意味着,当按“ Enter ”时,Excel 将动态创建相应大小的数组范围。 如果支持数据位于 Excel 表格中,若使用结构化引用,则从数组范围中添加或删除数据时,数组将自动重设大小。 有关详细信息,请参阅关于溢出数组行为的此文章。
- 如果数据集可能返回空值,请使用第三个参数 ( [if_empty] )。 否则将导致 #CALC! 错误 ,因为 Excel 当前不支持空数组。
- 如果 include 参数的任何值都是一个错误的值(#N/A、#VALUE 等)或无法转换为布尔值,则 FILTER 函数就会返回一个错误。
- Excel 对工作簿之间的动态数据提供有限支持,并且仅当 这两个 工作簿都处于打开状态时才支持此方案。 如果关闭源工作簿,刷新时,任何链接的动态数组公式都将返回 #REF! 错误 。
二:案例演示,实现一对多查询
如下图,需求是从全国订单明细中找到山西省的数据,将数据反映到操作台中,只需在操作台A4单元格输入函数公式:=FILTER(全国订单明细查询!A:K,全国订单明细查询!H:H=操作台!A2) ,点击确定即可,可以看出,根据省份筛选数据没有问题。

那么上图是根据一个条件,即省份条件进行查询,那么再加一个产品类别条件呢?也很好办,如下图,只需在操作台A4单元格输入函数公式:=FILTER(全国订单明细查询!A:K,(全国订单明细查询!H:H=操作台!A2)*(全国订单明细查询!J:J=操作台!B2)) ,点击确定即可,这样就实现了多条件查询。

如果没有查询到数据怎么办?也好办,如下图,我们使用第三参数搞定,在操作台A4单元格输入函数公式:=FILTER(全国订单明细查询!A:K,(全国订单明细查询!H:H=操作台!A2)*(全国订单明细查询!J:J=操作台!B2),"无数据") ,点击确定即可,告诉EXCEL,如果查不到数据,就显示无数据,这样就看不见报错了

可见这个FILTER函数是很有意思,很强悍,但是属于Microsoft office365的新增函数哦。
以上内容就是今天分享的excel技巧,希望对您有帮助?
我是Excel还可以,关注我,持续分享更多excel技巧,当然了,不局限于Excel技巧哦。