Excel Formulas Academy · 课时

使用 FILTER 筛选数据

动态返回符合条件的行

第 2 / 4 课13 个步骤

使用 FILTER 筛选数据 是 CoddyKit 上的免费 Excel Formulas Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Excel Formulas Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Excel Formulas Academy 课程共包含 4 节课。

FILTER 的作用

FILTER 函数只返回满足您所设条件的区域中的行。您无需手动隐藏行或复制匹配项,FILTER 会自动溢出返回匹配的行。

它是动态的:数据发生变化时,筛选结果会立即更新。因此,它非常适合用于始终显示当前匹配项的实时报告。

FILTER 语法

FILTER 最多接受三个参数:

=FILTER(array, include, [if_empty])

  • 数组是您要返回的区域。
  • 包含条件是一个逻辑测试,会为每一行生成 TRUE 或 FALSE。
  • 无匹配时的返回值是在没有匹配项时显示的可选值。

包含条件的测试高度必须与数组相同,这样每一行才能得到一个 TRUE 或 FALSE。

=FILTER(array, include, [if_empty])

简单使用 FILTER

假设 A2:A10 存放销售人员姓名,B2:B10 存放他们所属的地区。若要仅列出 East 地区的姓名:

=FILTER(A2:A10, B2:B10="East")

测试 B2:B10="East" 会生成一列 TRUE 和 FALSE 值。FILTER 会保留结果为 TRUE 的行,并将其溢出显示。

=FILTER(A2:A10, B2:B10="East")

返回多列

数组可以包含多列。若要返回 East 地区的姓名和销售额,请将数组指定为整个数据块:

=FILTER(A2:C10, B2:B10="East")

FILTER 会返回匹配行中的所有列,并溢出为一个小型表格。包含条件的测试仍然只查看一个条件列。

=FILTER(A2:C10, B2:B10="East")

数字条件

条件不局限于文本。若要返回 C2:C10 中销售额超过 500 的所有行:

=FILTER(A2:C10, C2:C10>500)

大于、小于和不等于等比较运算符都可以在包含条件参数中使用,就像在普通逻辑测试中一样。

=FILTER(A2:C10, C2:C10>500)

使用 AND 逻辑组合条件

若要同时满足两个条件,请将两个测试相乘。由于 TRUE 为 1、FALSE 为 0,乘法相当于 AND,因此只有两个测试都为 1 时,该行才会通过。

=FILTER(A2:C10, (B2:B10="East")*(C2:C10>500))

此公式会返回 East 地区中销售额也超过 500 的行。请将每个测试括在圆括号中。

=FILTER(A2:C10, (B2:B10="East")*(C2:C10>500))

使用 OR 逻辑组合条件

若只需满足任一条件,请将两个测试相加。由于只要有一个测试为 TRUE,总和就至少为 1,因此加法相当于 OR。

=FILTER(A2:C10, (B2:B10="East")+(B2:B10="West"))

此公式会返回 East 或 West 地区的行。得分为 1 或 2 的行会被保留,得分为 0 的行会被删除。

=FILTER(A2:C10, (B2:B10="East")+(B2:B10="West"))

处理无匹配结果

如果没有任何行满足条件,FILTER 默认会返回 #CALC! 错误。可选的第三个参数可以通过提供友好的提示消息来避免该错误:

=FILTER(A2:C10, B2:B10="South", "No matches found")

如果不存在 South 地区,单元格会显示这段文本,而不是错误。实际制作报告时,请始终添加 if_empty 值。

=FILTER(A2:C10, B2:B10="South", "No matches found")

按单元格值筛选

制作交互式报告时,可以与单元格进行比较,而不是使用硬编码的值。假设 E1 存放用户选择的地区:

=FILTER(A2:C10, B2:B10=E1, "No matches")

将 E1 改为 West 后,溢出列表会立即刷新为 West 地区的行。这是由下拉菜单驱动的仪表板的基础。

=FILTER(A2:C10, B2:B10=E1, "No matches")

对筛选结果排序

FILTER 会按照匹配项在原数据中的顺序返回结果。若要排序,请将 FILTER 嵌套在 SORT 中。若要按销售额降序显示 East 地区的行:

=SORT(FILTER(A2:C10, B2:B10="East"), 3, -1)

SORT 会根据溢出表格的第三列排序,其中 -1 表示降序。像这样组合溢出函数是常见且非常强大的做法。

=SORT(FILTER(A2:C10, B2:B10="East"), 3, -1)

Google 表格中的 FILTER

FILTER 同时适用于 Excel 365 和 Google 表格,语法几乎完全相同。在 Google 表格中,您可以将多个条件作为独立参数传入,而不必将它们相乘:

=FILTER(A2:C10, B2:B10="East", C2:C10>500)

Google 表格会将每个额外参数视为 AND 条件。在 Excel 中,您需要在单个包含条件参数内使用乘法表示 AND、加法表示 OR 的方式。

=FILTER(A2:C10, B2:B10="East", C2:C10>500)

快速检查

测试您对 FILTER 的理解。

回顾:使用 FILTER 进行筛选

您已经学会使用 FILTER 返回匹配的行:

  • 语法是 =FILTER(array, include, [if_empty])。
  • 包含条件的测试高度必须与数组相同。
  • 将测试相乘表示 AND,将测试相加表示 OR。
  • 添加 if_empty 消息,以避免出现 #CALC! 错误。
  • 将 FILTER 嵌套在 SORT 中可以对结果排序。

接下来,您将使用 UNIQUE 提取不重复的值列表。

免费开始

用 AI 导师学习 Excel — 免费

在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。

课程
30
课程
120

常见问题解答

「使用 FILTER 筛选数据」课时是免费的吗?

是的 — 「使用 FILTER 筛选数据」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Excel Formulas Academy 课程的其余内容,请升级到 CoddyKit PRO。 Excel Formulas Academy 课程共包含 4 节课。

「使用 FILTER 筛选数据」这节课中我会学到什么?

动态返回符合条件的行 你通过在浏览器中直接运行的动手代码来练习 Excel Formulas Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Excel Formulas Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Excel Formulas Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「使用 FILTER 筛选数据」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Excel Formulas Academy 课中编写并运行代码吗?

能。每节 Excel Formulas Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 了解溢出的含义
  2. 使用 FILTER 筛选数据
  3. 使用 UNIQUE 删除重复项
  4. 处理 SPILL 错误
← 返回 Excel Formulas Academy