KutoolsforOffice — 一套方案,五大工具。事半功倍。

如何在 Excel 中根据单元格的值自动筛选行?

作者Xiaoyang修改日期

在 Excel 中,标准筛选功能提供了一种快速手动选择条件来筛选数据的便捷方式。然而,在某些工作流程中,您可能希望在特定单元格中输入值或条件后,数据能立即自动刷新。例如,当您希望数据集能根据另一单元格中输入的关键词或参数即时筛选时,这已超出了 Excel 原生筛选功能的能力范围。这种动态或“自动筛选”机制不仅能简化数据审查流程、减少手动操作时间,还能通过将筛选条件直接关联到单元格值,显著提升准确性。若要实现此类基于单元格输入的自动筛选机制,您可选择多种实用解决方案。

使用 Excel 公式方案根据单元格值自动筛选行

使用 VBA 代码根据输入的单元格值自动筛选行


使用 Excel 公式方案根据单元格值自动筛选行

如果您倾向于非宏方法,或因安全设置、协作需求等原因需避免使用 VBA,可结合 Excel 内置公式与筛选功能,轻松实现“自动筛选”效果。此方案适用于 Microsoft 365、Microsoft 2019 及后续支持 FILTER 等动态数组函数的版本,特别适合与未启用宏的同事共享,或用于无需安装即可自动化的轻量级模板。

1. 选择一个空白单元格作为筛选结果的起始位置(例如,将光标置于单元格 )G2)。

=FILTER(A2:C20, (A2:A20=E1) * (B2:B20=E2), "No match")

2. 在 G2 中输入公式后,按 Enter,筛选后的数据集将以溢出区域的形式从 G2 开始显示。当您更改 E1 或 E2 中的值时,筛选列表将立即刷新。

本公式示例假设您的主数据位于 A2:C20,筛选条件则输入在 E1(对应 A 列)和 E2(对应 B 列)。若仅需按单列筛选,可相应简化逻辑条件;若无任何行匹配所输入的条件,将显示 “No match”消息。

提示:FILTER 函数适用于 Microsoft 365 及部分 Microsoft 19+ 版本。对于较旧版 Excel,通过公式实现动态筛选较为复杂,建议结合辅助列与传统自动筛选或高级筛选功能。请先确认您的 Excel 版本以确保兼容性!

使用此解决方案时,结果将显示在工作表的新区域中,有效保留原始数据。原始数据集本身不会受到任何影响——筛选仅作用于显示结果,而非源数据的呈现状态。

潜在错误:若出现 #NAME?#SPILL!错误,请确认您使用的是兼容的 Excel 版本,且结果区域内未合并单元格。同时,请勿在公式溢出区域输入其他数据,以免造成阻塞。


使用 VBA 代码根据输入的单元格值自动筛选行

假设您正在处理一个数据集,并希望根据在特定单元格中输入的条件自动筛选记录。例如,当您在 E1 和 E2 单元格中填入所需条件时,工作表中的数据将自动筛选,以精准匹配这些值,如下图所示:

根据单元格中输入的值筛选行的截图

要实现此类自动筛选,您可配置一个简洁的 VBA 解决方案。该方法在您更新指定筛选单元格的值时自动触发,特别适用于仪表板、交互式报表,或用户期望通过中央参数单元格实现动态筛选的模板。

1. 转至您希望根据单元格输入自动筛选行的工作表。

2. 右键单击 Excel 窗口底部的工作表标签,从上下文菜单中选择查看代码。在弹出的 Microsoft Visual Basic for Applications 窗口中,将以下 VBA 代码粘贴到大片空白区域(通常称为代码窗口或工作表模块)中,如下所示:

VBA 代码:根据输入的单元格值自动筛选数据

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice 20160606
   If Target.Address = Range("E2").Address Then
       Range("A1:C20").CurrentRegion.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("E1:E2")
   End If
End Sub

展示如何使用 VBA 代码的截图

注意:在此 VBA 代码中,A1:C20 表示您要应用筛选的数据区域;E2 是输入筛选值(目标条件)的单元格,而 E1:E2 则是用作筛选条件的区域。您可以根据实际需求调整这些区域——请确保它们准确对应工作表中数据和筛选条件的位置。此外,建议避免使用合并单元格,并在必要时确保数据区域包含标题,以实现精准筛选。

3. 现在,在单元格 E1 和/或 E2 中输入或修改您的筛选条件,按下 Enter 后,VBA 代码将自动运行,仅显示符合条件的行,精准筛选指定数据区域。

如果输入值后筛选未立即生效,请确保工作簿已启用宏功能,并检查 VBA 代码中的区域是否与当前工作表布局正确匹配。在多人协作场景中,请提醒其他协作者务必启用宏,以确保此功能正常运行。

此 VBA 方法特别适用于动态参数驱动的仪表板、交互式数据录入模板,或任何因手动重复应用筛选条件而效率低下的场景。但请注意,若用户禁用宏,可能会遇到问题,且基于 VBA 的解决方案仅适用于已嵌入相应代码的文件。

如果您的使用场景涉及多位用户频繁调整筛选条件,且这些用户可能拥有不同的 Excel 安全设置,或您计划广泛共享该文件,建议考虑采用基于公式的替代方案或 Excel 加载项。


演示:使用 VBA 代码根据输入的单元格值自动筛选行

 

根据多个条件或其他特定条件(例如按文本长度、区分大小写等)筛选数据。

当您需要执行更高级的筛选操作时——例如组合多个筛选条件、按文本长度筛选、区分大小写,或基于特定时间段进行筛选——Excel 内置的筛选功能可能难以满足需求。Kutools for Excel超级筛选功能正是为此类场景打造,助您轻松高效地应对复杂筛选需求。该功能可帮助您:

  • 跨多列应用多个条件;根据单元格中文本的字符数筛选数据;
  • 按大写或小写文本筛选;根据年、月、日、周或季度筛选数据

使用 Kutools for Excel 按多个条件筛选日期的截图

Kutools for Excel:配备 300 多个实用 Excel 加载项,提供 30 天完整功能免费试用。立即下载并免费试用!


最佳办公效率工具

🤖KUTOOLS AI 助手:基于以下内容革新数据分析:智能执行   |  生成代码|  创建自定义公式  |  数据分析及生成图表|  调用 Kutools Functions……
热门功能查找、高亮或标记重复项   |  删除空白行   |  合并列或单元格且不丢失数据   |  不使用公式的四舍五入……
高级 LOOKUP多条件 VLookup  |  多值 VLookup  |   跨多工作表 VLookup   |   模糊查找……
高级下拉列表快速创建下拉列表   |  级联下拉列表   |  多选下拉列表……
列管理器添加指定数量的列|移动列|切换隐藏列的可见性状态|比较区域与列……
特色功能网格聚焦   |  设计视图   |增强编辑栏   | 工作簿和表管理器   |  资源库(自动文本)|  日期提取   |  汇总工作表  |  加密/解密单元格   | 按列表发送邮件   |  超级筛选   |   特殊筛选(筛选粗体单元格/斜体/删除线……) ......
精选 15 工具集12 文本工具添加文本删除特定字符,……)|   50+ 图表 类型甘特图,……)|   40+ 实用公式基于生日计算年龄,……)|   19 插入工具插入二维码从路径插入图片,……)|   12 转换工具小写金额转大写汇率转换,……)|   7 合并和拆分工具高级合并行分割单元格,……)|……更多
在您的首选语言中使用 Kutools – 支持英语、西班牙语、德语、法语、中文及 40+ 种其他语言!

使用 Kutools for Excel 大幅提升您的 Excel 技能,体验前所未有的高效。Kutools for Excel 提供 300 多项高级功能,助您提升生产力、节省时间。立即点击此处,获取您最需要的功能……


Office Tab 为 Office 带来标签式界面,让您的工作更轻松

  • 在 Word、Excel、PowerPoint、Publisher、Access、Visio 和 Project 中启用标签式编辑和阅读
  • 在同一个窗口的新标签页中打开并创建多个文档,而非在新窗口中。
  • 将您的工作效率提升 50%,每天减少数百次鼠标点击!

所有 Kutools 插件,一个安装程序

Kutools for Office 套件捆绑了适用于 Excel、Word、Outlook 和 PowerPoint 的插件以及 Office Tab Pro,非常适合需要跨多个 Office 应用高效协作的团队。

ExcelWordOutlookTabsPowerPoint
  • 一体化套件— Excel、Word、Outlook 和 PowerPoint 插件 + Office Tab Pro
  • 一个安装程序,一个许可证— 几分钟内完成设置(支持 MSI)
  • 协同效果更佳— 在多个 Office 应用中实现高效协同
  • 30 天全功能试用— 无需注册,无需信用卡
  • 超值之选— 比单独购买插件更省钱