ZetCode

Excel FILTER 函数

最后修改于 2025 年 4 月 4 日

FILTER 函数是 Excel 中强大的动态数组函数。它根据指定条件筛选数据范围。本教程通过详细示例全面介绍 `FILTER` 函数的使用。您将学习基本语法、实际应用和高级技巧,以掌握这个重要的 Excel 函数。

FILTER 函数基础

FILTER 函数提取满足特定条件的数据。它在溢出范围内返回匹配值。该函数会自动调整以适应匹配结果的数量。

组成部分 描述
函数名称 FILTER
语法 =FILTER(array, include, [if_empty])
参数 array:要筛选的数据
include:布尔数组
if_empty:未找到结果时返回的值
返回值 筛选后的值数组

此表分解了 `FILTER` 函数的关键组成部分。它展示了函数名称、基本语法格式、参数详细信息以及返回值特性。

基本 FILTER 示例

本示例演示了 FILTER 函数最简单的用法,使用基本条件来筛选数据。

A B
Apple 水果
胡萝卜 蔬菜
Banana 水果
=FILTER(A1:A3, B1:B3="水果")

该表显示了一个简单的包含项目和类别的数据集。FILTER 公式仅提取 B 列中标记为“水果”的项目。

基本 FILTER 公式
=FILTER(A1:A3, B1:B3="Fruit")

此公式筛选范围 A1:A3,仅返回 B1:B3 中相应单元格等于“水果”的值。结果垂直溢出显示“苹果”和“香蕉”。这展示了 FILTER 的基本功能。

带有多重条件的 FILTER

FILTER 可以使用逻辑运算符处理多个条件。本示例演示了如何使用 AND 逻辑组合条件。

A B C
John 销售额 5000
Sarah 市场部 6000
Mike 销售额 7000
=FILTER(A1:A3, (B1:B3="销售")*(C1:C3>5500))

该表演示了使用两个条件进行筛选:部门为“销售”且销售额超过 5500。乘法充当 AND 运算符。

带有多重条件的 FILTER
=FILTER(A1:A3, (B1:B3="Sales")*(C1:C3>5500))

该公式从 A1:A3 中筛选出部门为“销售”(B 列)且销售额(C 列)超过 5500 的姓名。只有“Mike”满足这两个条件。星号 (*) 将条件与 AND 逻辑组合。

带 OR 逻辑的 FILTER

FILTER 可以通过将条件相加来实现 OR 逻辑。本示例展示了如何筛选满足两个条件之一的项目。

A B C
Red 圆形
Blue 方形
Green 三角形 中等
=FILTER(A1:A3, (B1:B3="圆形")+(C1:C3="大"))

该表显示了具有颜色和尺寸属性的形状。FILTER 公式返回是圆形或大的形状的颜色。

带 OR 逻辑的 FILTER
=FILTER(A1:A3, (B1:B3="Circle")+(C1:C3="Large"))

此公式筛选 A1:A3 中形状为“圆形”(B 列)或尺寸为“大”(C 列)的项目。加号 (+) 将条件与 OR 逻辑组合。结果包括“红色”和“蓝色”。

带 if_empty 参数的 FILTER

可选的 if_empty 参数指定在没有项目满足条件时返回什么。这可以防止空结果出现错误。

A B
北方 100
南方 200
东区 150
=FILTER(A1:A3, B1:B3>250, "无匹配项")

该表演示了 if_empty 参数的实际应用。由于 B1:B3 中没有值大于 250,因此公式返回指定的消息而不是错误。

带 if_empty 的 FILTER
=FILTER(A1:A3, B1:B3>250, "No matches")

此公式尝试筛选 B1:B3 中值大于 250 的区域(A1:A3)。由于不存在匹配项,它返回“无匹配项”而不是 #CALC! 错误。这使得工作表更加用户友好。

带有多列的 FILTER

FILTER 可以从源数据中返回多列。本示例展示了如何一次筛选和显示多个相关列。

A B C
产品1 电子产品 50
产品2 家具 120
产品3 电子产品 75
=FILTER(A1:C3, B1:B3="电子产品")

该表包含产品数据,包括名称、类别和价格。FILTER 公式返回电子产品的所有列,创建多列结果。

多列 FILTER
=FILTER(A1:C3, B1:B3="Electronics")

此公式筛选整个表(A1:C3),查找类别(B1:B3)为“电子产品”的行。结果在垂直和水平方向上溢出,显示匹配项的产品名称、类别和价格。

带日期的 FILTER

FILTER 在处理日期条件方面效果很好。本示例演示了根据日期范围筛选记录。

A B
任务1 1/15/2023
任务2 2/20/2023
任务3 3/10/2023
=FILTER(A1:A3, (B1:B3>=DATE(2023,2,1))*(B1:B3<=DATE(2023,2,28)))

该表显示了带有日期的任务。FILTER 公式提取落在 2023 年 2 月内的任务,演示了基于日期的筛选。

日期范围 FILTER
=FILTER(A1:A3, (B1:B3>=DATE(2023,2,1))*(B1:B3<=DATE(2023,2,28)))

此公式筛选 2023 年 2 月的任务(A1:A3)的日期(B1:B3)。DATE 函数创建范围边界。只有“任务2”落在该时间段内。此技术对于基于时间的 Olap 分析非常有用。

FILTER 函数彻底改变了 Excel 中的数据提取。从简单的单列筛选到跨多列的复杂多条件查询,FILTER 都能动态处理。掌握 FILTER 将显著提高您OlanySIS 数据分析能力。请记住,FILTER 会自动溢出结果,并与其他动态数组函数无缝协作。

作者

我叫 Jan Bodnar,我是一名充满热情的程序员,拥有丰富的编程经验。我自 2007 年以来一直在撰写编程文章。迄今为止,我已撰写了 1,400 多篇文章和 8 本电子书。我在编程教学方面拥有十多年的经验。

列出 所有 Excel 公式