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

如何在 Excel 中根据下拉列表的选择来筛选数据?

作者小杨修改日期

在 Excel 中,许多用户都熟悉使用标准筛选功能来处理数据。但有时,您可能希望借助下拉列表实现交互式筛选或动态展示数据。例如,当从下拉菜单中选择某项时,数据行能自动更新,仅显示匹配的内容(如下图所示)。这种方式有助于打造更直观、用户友好的报表、仪表板和交互式表单。本文将介绍几种实用方法,帮助您根据一个或两个工作表中的下拉列表选项,灵活地筛选数据或进行视觉突出显示,满足多样化的实际需求。

使用下拉列表筛选数据的截图

使用辅助公式在单个工作表中根据下拉列表选择筛选数据

使用 VBA 代码在两个工作表中根据下拉列表选择筛选数据

使用条件格式 —— 高亮行区域匹配下拉选择的内容


使用辅助公式在单个工作表中根据下拉列表选择筛选数据

要基于下拉列表筛选数据,您可借助公式设置一系列辅助列,动态提取匹配的行。当您希望在同一工作表中仅展示相关记录且不使用宏时,此方法尤为理想。请按以下步骤操作:

1. 首先插入下拉列表:选择要放置下拉列表的单元格,然后依次点击数据 > 数据验证 > 数据验证,即可创建一个供用户选择筛选条件的单元格。

启用数据验证功能的截图

2. 在数据验证对话框的设置选项卡中,从允许下拉列表中选择列表选项,然后单击选择按钮的截图按钮以高亮显示下拉列表的值范围。使用命名区域或表格作为列表源,可轻松实现列表的自动更新。

配置数据验证对话框的截图

3. 设置好下拉列表后,任选一项进行筛选。在 D2 单元格中输入以下公式(假设您的下拉选项位于 H 列):

=ROWS($A$2:A2)

此处,A2 指代待匹配数据列中的首个单元格。向下拖动填充柄,即可自动填充所有相关行。此辅助列将生成连续的行号,便于后续引用。

使用 ROWS 函数创建带序号的辅助列的截图

4. 接下来,在 E2 单元格中输入:

=IF(A2=$H$2,D2,"")

此公式检查 A2 中的值是否与 H2 中的下拉选项匹配。若匹配,则输出 D2 中的行号;否则单元格留空。这是关键的筛选步骤:请确保您的下拉单元格引用(此处为 )H2)不会意外更改。

使用公式创建第二个辅助列的截图

5. 在 F2 单元格中输入:

=IFERROR(SMALL($E$2:$E$17,D2),"")

此公式用于提取已筛选数据设置的行数,以便后续返回对应条目。请确保范围 E2:E17 覆盖所有筛选公式单元格,并根据需要向下拖动填充柄。

使用公式创建第三个辅助列的截图

6. 要在 J2 单元格中显示筛选结果,请输入以下公式:

=IFERROR(INDEX($A$2:$C$17,$F2,COLUMNS($J$2:J2)),"")

将此公式从 J2 复制到 L2,即可显示第一条匹配记录。此步骤利用辅助列的结果,根据下拉选项精准检索对应的数据行。若原始数据范围不同,请相应调整列引用。

使用公式根据下拉列表的选择获取首个筛选行的截图

注意A2:C17 为您的原始表格,F2 为筛选后的辅助列,J2 为您希望输出结果的位置。

7. 向下拖动填充柄至所有输出列,即可显示所有匹配记录。

显示所有筛选结果的截图

8. 现在,每当您从下拉列表中选择一项,下方表格便会动态更新,仅显示与所选项匹配的行。

根据下拉列表选择显示不同筛选结果的截图

Kutools 下拉列表集合的截图

借助 Kutools 增强功能,大幅提升 Excel 下拉列表能力

借助 Kutools for Excel 的增强型下拉列表功能,全面提升您的工作效率。该功能集超越了 Excel 的基础能力,助您高效优化工作流程,包括:

  • 使下拉列表可多次选择:轻松同时选择多个条目,高效处理数据!
  • 带复选框的下拉列表:提升电子表格的用户交互性与清晰度,让数据输入更直观高效!
  • 创建动态下拉列表:数据变动时自动更新,确保信息准确无误。
  • 使下拉列表可搜索:快速定位所需条目,省时省力,轻松高效!
立即下载,免费试用 30 天,彻底改变您的 Excel 体验!

使用 VBA 代码在两个工作表中根据下拉列表选择筛选数据

有时,您可能需要在一个工作表中筛选数据,而下拉列表却位于另一个工作表中。例如,Sheet 1 包含下拉选项,Sheet 2 则存放待筛选的数据表格。此时,使用 VBA 是一种高效实用的解决方案,因为普通公式无法直接响应单元格更改事件来动态更新其他工作表中的筛选结果。这种方法特别适用于仪表板、报表或汇总型工作簿——通过将源数据区域与用户输入界面分离,显著提升整体清晰度与操作体验。

1. 右键单击包含下拉列表单元格的工作表标签(例如 Sheet 1),选择查看代码。在 Microsoft Visual Basic for Applications 窗口中,将以下代码复制并粘贴到空白模块中:

VBA 代码:在两个工作表中根据下拉列表选择筛选数据:

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
    On Error Resume Next
    If Not Intersect(Range("A2"), Target) Is Nothing Then
        Application.EnableEvents = False
        If Range("A2").Value = "" Then
            Worksheets("Sheet2").ShowAllData
        Else
            Worksheets("Sheet2").Range("A2").AutoFilter 1, Range("A2").Value
        End If
        Application.EnableEvents = True
    End If
End Sub

注意:在代码中,A2 指下拉单元格,Sheet 2 是执行筛选的工作表,而 自动筛选 1 指定用于筛选的列。请根据您的数据布局进行调整,确保工作表和单元格名称与实际结构一致,避免运行时错误。如遇异常行为,请检查工作表是否启用了保护、存在合并单元格或隐藏数据,这些都可能干扰自动筛选功能。

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

2. 现在,在 Sheet 1 中选择任意下拉选项,即可立即筛选 Sheet 2 中的数据,让跨工作表分析在报表与审阅中无缝衔接!

展示下拉列表选择及其对应筛选结果的截图

请注意,基于 VBA 的解决方案需要启用宏。如需永久保存代码,请务必将工作簿另存为 .xlsm 文件。若筛选结果未更新,请检查宏安全设置,并确保引用与工作表名称一致。在未做好充分备份前,请勿对敏感或关键业务数据使用宏,以免批量修改造成不可逆影响。


使用条件格式 —— 自动高亮显示所有匹配下拉选择的行

如果您的目标并非隐藏或提取行,而只是在视觉上高亮显示与下拉选项匹配的行,那么使用条件格式是一种快速且用户友好的解决方案。当您希望引导用户聚焦于相关数据行,同时又不删除或移动任何数据时,请采用此方法。

最常见的应用场景包括仪表板、报表和大型列表,通过高亮即时呈现与当前选择相关的条目,显著提升数据可读性。

  • 选择您的数据区域:例如,选中 A2:C100.
  • 访问使用条件格式工具:转到开始 > 使用条件格式 > 新建规则
  • 创建您的规则:选择使用公式确定要设置格式的单元格,然后输入以下公式:
    =$A2=$H$2
    该公式将高亮显示列 A 中值与 H2 单元格下拉选项匹配的所有行。
  • 设置格式:单击格式,选择一种填充颜色或文本格式,然后单击“确定”确认。

优势:设置快捷,更改选项后立即生效,且不会破坏表格结构。但此方法仅高亮显示记录(不会筛选或提取)。对于大型表格,请使用高对比度颜色,确保高亮行清晰可见。条件格式规则基于单元格——若单元格引用有误,部分行可能无法按预期高亮显示。为保持一致性,公式中请使用绝对引用(例如 $H$2)。

若要移除高亮显示,只需前往使用条件格式 > 清除规则。对于多条件或多列高亮,请调整公式以检查更多列,或使用 AND 函数。

最佳办公效率工具

🤖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 天全功能试用— 无需注册,无需信用卡
  • 超值之选— 比单独购买插件更省钱