Applies ToMicrosoft 365 专属 Excel Microsoft 365 Mac 版专属 Excel Excel 网页版 Excel 2024 Excel 2024 for Mac Excel 2021 Excel 2021 for Mac Excel for iPad Excel for iPhone Excel for Android 平板电脑版 Excel for Android 手机版

FILTER 函数可以基于定义的条件筛选一系列数据。

你的浏览器不支持视频。 请安装 Microsoft Silverlight、Adobe Flash Player 或 Internet Explorer 9。

在以下示例中,我们使用公式 =FILTER(A5:D20,C5:C20=H2,"") 返回包含“苹果”(如单元格 H2 中所选定)的所有记录,如果没有“苹果”,则返回空字符串 ("")。

FILTER 函数 - 按产品 (Apple) 筛选区域

FILTER 函数基于布尔值 (True/False) 数组筛选数组。

=FILTER(array,include,[if_empty])

参数

描述

array

必需

要筛选的数组或区域

include

必需

布尔值数组,其高度或宽度与数组相同

[if_empty]

可选

所含数组中的所有值都为空(筛选器不返回任何内容)时返回的值

注意: 

  • 可将数组视为一行值、一列值或几行值和几列值的组合。 在上述示例中,FILTER 公式的源数组为范围 A5:D20。

  • FILTER 函数将返回一个数组,如果该数组是公式的最终结果,则将溢出。 这意味着,当按“Enter”时,Excel 将动态创建相应大小的数组范围。 如果支持数据位于 Excel 表格中,若使用结构化引用,则从数组范围中添加或删除数据时,数组将自动重设大小。 有关详细信息,请参阅关于溢出数组行为的此文章。

  • 如果数据集可能返回空值,请使用第三个参数 ([if_empty])。 否则将导致 #CALC! 错误 ,因为 Excel 当前不支持空数组。

  • 如果 include 参数的任何值都是一个错误的值(#N/A、#VALUE 等)或无法转换为布尔值,则 FILTER 函数将返回一个错误。  

  • Excel 对工作簿之间的动态数据提供有限支持,并且仅当这两个工作簿时都处于打开状态时才支持此方案。 如果关闭源工作簿,刷新时,任何链接的动态数组公式都将返回 #REF! 错误

示例

用于返回多个条件的 FILTER

在此示例中,我们使用乘法运算符 (*),以返回数组范围 (A5:D20) 中包含“苹果”位于东部区域的所有值:=FILTER(A5:D20,(C5:C20=H1)*(A5:A20=H2),"")

配合使用 FILTER 和乘法运算符 (*),以返回数组范围 (A5:D20) 中包含“Apples”且位于 East 区域的所有值。

用于返回多个条件并排序的 FILTER

在此示例中,我们配合使用之前的 FILTER 函数和 SORT 函数,以返回数组范围 (A5:D20) 中包含“苹果”位于东部区域的所有值,然后对 Units 进行降序排序:=SORT(FILTER(A5:D20,(C5:C20=H1)*(A5:A20=H2),""),4,-1)

配合使用 FILTER 和 SORT 函数,以返回数组范围 (A5:D20) 中包含“Apples”且位于 East 区域的所有值,然后对 Units 进行降序排序。

在此示例中,我们配合使用 FILTER 函数和加法运算符 (+),以返回数组范围 (A5:D20) 中包含“苹果”位于东部区域的所有值,然后对 Units 进行降序排序:=SORT(FILTER(A5:D20,(C5:C20=H1)+(A5:A20=H2),""),4,-1)

配合使用 FILTER 和 SORT - 按产品 (Apple) 或区域(East)筛选

请注意,这些函数都不需要绝对引用,因为它们仅存在于一个单元格中,并将其结果溢出到相邻单元格。

需要更多帮助吗?

可随时在 Excel 技术社区中咨询专家或在社区中获取支持。

另请参阅

RANDARRAY 函数

SEQUENCE 函数

SORT 函数

SORTBY 函数

UNIQUE 函数

Excel 中的 #SPILL! 错误

动态数组和溢出数组行为

绝对交集运算符: @

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。