跳到主要内容

如何从Excel中的下拉列表选择中筛选数据?

在Excel中,我们大多数人都可以使用“筛选器”功能来筛选数据。 但是,您是否曾经尝试从下拉列表选择中过滤数据? 例如,当我从下拉列表中选择一项时,我希望其相应的行将被过滤掉,如下图所示。 本文,我将讨论如何通过使用一个或两个工作表中的下拉列表来筛选数据。

使用助手公式从一个工作表中的下拉列表选择中过滤数据

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


使用助手公式从一个工作表中的下拉列表选择中过滤数据

要从下拉列表中过滤数据,您可以创建一些帮助器公式列,请按以下步骤进行操作:

1。 首先,插入下拉列表。 单击要在其中插入下拉列表的单元格,然后单击 时间 > 数据验证 > 数据验证,请参见屏幕截图:

2。 在弹出 数据验证 对话框中的 个人设置 标签,选择 清单 来自 下拉,然后单击 按钮以选择要基于其创建下拉列表的数据列表,请参见屏幕截图:

3。 然后点击 OK 按钮,将立即插入下拉列表,然后从下拉列表中选择一项,然后输入以下公式: =行($ A $ 2:A2) (A2 是列中包含下拉列表值的第一个单元格)进入单元格D2,然后将填充手柄向下拖动到这些单元格以应用此公式,请参见屏幕截图:

4。 继续输入以下公式: = IF(A2 = $ H $ 2,D2,“”) 到单元格E2中,然后向下拖动填充手柄以填充此公式,请参见屏幕截图:

备注:在上式中:A2 是列中包含下拉列表值的第一个单元格,H2 是放置下拉列表的单元格, D2 是第一个辅助列公式。

5。 然后键入以下公式: = IFERROR(SMALL($ E $ 2:$ E $ 17,D2),“”) 进入单元格F2,然后将填充手柄向下拖动到单元格以填充此公式,请参见屏幕截图:

备注:在上式中: E2:E17 是第二个辅助公式单元格, D2 是第一助手公式列中的第一个单元格。

6。 插入帮助程序公式列之后,您应该将过滤后的结果输出到另一个位置,请应用以下公式: =IFERROR(INDEX($A$2:$C$17,$F2,COLUMNS($J$2:J2)),"") 到单元格J2中,然后将填充手柄从J2拖动到L2,并且已经提取了基于下拉列表的第一条数据记录,请参见屏幕截图:

备注:在上式中: A2:C17 是您要过滤的原始数据, F2 是第三个帮助器公式列, J2 是要在其中输出过滤结果的单元格。

7。 然后继续将填充手柄向下拖动到单元格以显示所有相应的过滤记录,请参见屏幕截图:

8。 从现在开始,当您从下拉列表中选择一项时,基于此选择的所有行将立即被过滤,请参见屏幕截图:


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

如果在Sheet1中的下拉列表单元格和Sheet2中的过滤数据单元格,则从下拉列表中选择一项时,另一工作表将被滤除。 您如何在Excel中完成这项工作?

以下VBA代码可能会对您有所帮助,请这样做:

1。 右键单击包含下拉列表单元格的工作表选项卡,然后选择 查看代码 从上下文菜单中,在打开的 适用于应用程序的Microsoft Visual Basic 窗口,将以下代码复制并粘贴到空白模块中:

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 是包含下拉列表的单元格,并且 Sheet2 工作表包含要过滤的数据。 号码 1 在脚本中: 自动筛选1 是您要基于其过滤的列号。 您可以根据需要更改它们。

2。 从现在开始,当您从Sheet1的下拉列表中选择一项时,相应的数据将在Sheet2中被过滤掉,请参见屏幕截图:

最佳办公生产力工具

热门特色: 查找、突出显示或识别重复项   |  删除空白行   |  合并列或单元格而不丢失数据   |   不使用公式进行四舍五入 ...
超级查询: 多条件VLookup    多值VLookup  |   跨多个工作表的 VLookup   |   模糊查询 ....
高级下拉列表: 快速创建下拉列表   |  依赖下拉列表   |  多选下拉列表 ....
列管理器: 添加特定数量的列  |  移动列  |  切换隐藏列的可见性状态  |  比较范围和列 ...
特色功能: 网格焦点   |  设计图   |   大方程式酒吧    工作簿和工作表管理器   |  资源库 (自动文本)   |  日期选择器   |  合并工作表   |  加密/解密单元格    按列表发送电子邮件   |  超级筛选   |   特殊过滤器 (过滤粗体/斜体/删除线...)...
前 15 个工具集12 文本 工具 (添加文本, 删除字符,...)   |   50+ 图表 类型 (甘特图,...)   |   40+ 实用 公式 (根据生日计算年龄,...)   |   19 插入 工具 (插入二维码, 从路径插入图片,...)   |   12 转化 工具 (小写金额转大写, 货币兑换,...)   |   7 合并与拆分 工具 (高级组合行, 分裂细胞,...)   |   ... 和更多

使用 Kutools for Excel 增强您的 Excel 技能,体验前所未有的效率。 Kutools for Excel 提供了 300 多种高级功能来提高生产力并节省时间。  单击此处获取您最需要的功能...

kte选项卡201905


Office Tab 为 Office 带来选项卡式界面,让您的工作更加轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!
Comments (3)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
For me, the Formula =ROWS($A$2:A2) didn't workend! It always gave me "2" back. I had to put =ROWS($A2:A2), so without the second "$", in order to reproduce your result.
This comment was minimized by the moderator on the site
How do I add multiple drown down menus? For example,
If i wanted a drop down menu for Product and name?.
This comment was minimized by the moderator on the site
Hey Kev, wondering if you found an answer to your question here? I have been looking for a bit to no avail.
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations