如何在 Excel 中按多种颜色筛选数据?
在日常 Excel 使用中,若仅涉及单一颜色,按单元格颜色筛选可谓轻而易举。但如果您需要同时筛选出包含两种或更多特定颜色的行,又该如何操作?例如,您的数据列表中多个类别通过不同填充颜色高亮显示,而您只想查看同时包含其中任意两种或多种指定颜色的行。由于 Excel 的内置筛选功能一次仅支持选择一种颜色,因此无法直接满足此类需求。本文将为您介绍几种高效应对该问题的方法,并阐明它们的实际价值及适用场景,助您根据具体情况选择最优方案。
下方提供了最初介绍的 VBA 代码解决方案,以及实用技巧和注意事项,助您发挥其最佳效果。此外,为方便起见,还附上了两种替代方法的链接:使用带公式的辅助列,以及 Excel 加载项 Kutools。
使用 VBA 代码按多种颜色筛选数据
目前,Excel 无法原生支持基于多个单元格背景颜色同时筛选行。当您需要仅显示符合多个特定颜色条件的行时,可借助自定义 VBA 解决方案。以下方法演示了如何通过用户自定义函数,将单元格的颜色编号提取到相邻的辅助列中。识别颜色后,即可直接使用 Excel 内置筛选功能按需筛选数据。该方法尤其适用于小型至中等规模的数据集,并推荐给熟悉宏操作的用户使用。
1. 按住 ALT + F11 键,即可打开 Microsoft Visual Basic for Applications 窗口。如需将代码保留在工作簿中以供将来使用,请将文件另存为启用宏的工作簿(.xlsm)或其他支持宏的格式——常规 Excel 文件(.xlsx)无法存储 VBA 代码。
2. 单击插入> 模块,并将以下代码粘贴到弹出的模块窗口中。
VBA 代码:提取颜色编号编号:
Function GetColor(x As Range) As Integer
GetColor = x.Interior.ColorIndex
End Function
继续操作前,请务必保存您的工作。若系统弹出安全警告(某些情况下使用 VBA 会触发此类提示),请启用宏以确保流程顺利进行。
3. 返回您的工作表,在数据旁选择一个空白单元格(例如,若彩色单元格位于 A 列且第一行数据在第 2 行,则使用 B2),并输入公式:=Getcolor(A2)。其中,A2 指您要分析的第一个彩色单元格,该函数会将颜色编号以数字形式返回至辅助列中。参见下图:

4. 使用填充柄将此公式向下复制到整个数据区域旁,使每一行都显示对应的颜色编号。若表格较大,只需双击填充柄,即可自动填充整列以匹配您的数据。所有行现在都会显示一个颜色编号,如下所示:

提示:如果某个单元格没有设置背景颜色,该函数将返回 -4142. 如需排除无颜色的行,可将此值作为参考。
5. 现在每行都关联了一个特定的颜色编号,您可以筛选数据,仅显示所需颜色的行。为此,请选中辅助列,切换到数据选项卡,单击筛选,然后点击辅助列顶部的下拉箭头。在筛选列表中,勾选您希望显示的颜色对应的所有颜色编号,如下图所示:

6. 单击确定以应用筛选。此时,您的数据区域中将仅显示所选背景颜色的行。如需进一步分析或复制结果,可直接选择这些筛选后的行。参见下图:

7. 最后,如果您不再需要显示辅助列,可安全地将其隐藏或删除。但请注意,筛选后若删除该列,重新筛选时将丢失颜色引用,因此除非已完成分析,否则建议隐藏而非删除。
如果输入公式后出现 #NAME?错误,可能是因为 VBA 代码未正确插入,或宏未启用。请仔细检查您的 VBA 模块和宏安全设置。
此解决方案的一大优势在于,您可以将颜色筛选与其他条件(如文本或数值筛选)相结合,借助 Excel 原生筛选控件实现灵活的复合筛选。然而,其局限性在于:若应用新主题或从其他来源复制数据,单元格的颜色代码可能会发生变化,此时可能需要刷新或重新应用 VBA 函数。
在 Excel 中手动分类并按多种颜色筛选数据
如果因工作簿安全策略或用户偏好而不适合使用 VBA,一种实用的替代方案是在辅助列中手动为颜色类别编码,再基于这些类别进行筛选。该方法适用于颜色种类较少且颜色代码不常变动的场景。
您可以在数据旁添加一个辅助列(例如“颜色类别”),并根据每行的填充颜色手动标注对应标签(如“红色”、“绿色”或“黄色”)。随后,利用筛选功能,轻松仅显示您关注的类别。
步骤:在辅助列中,根据单元格颜色输入简单的文本标识符(例如,蓝色填充的行输入“蓝色”,无填充的行输入“无”)。完成后,选中该辅助列,使用数据 > 筛选功能,即可按任意组合筛选并显示彩色行。
此方法自动化程度较低,但在数据集较小或颜色定义频繁变动时,能提供更高的灵活性。若您的数据动态变化,或由多位用户共同使用,手动维护可能会降低效率。
对于大型数据集或需要频繁更新的场景,建议通过 VBA 自动化此流程,或使用下文介绍的专业 Excel 加载项。

借助 KUTOOLS AI 解锁 Excel 的神奇功能
- 智能执行:只需输入简单命令,即可执行单元格操作、分析数据并创建图表。
- 自定义公式:生成量身定制的公式,助您优化工作流程!
- VBA 编码:轻松编写并运行 VBA 代码。
- 公式解析:轻松掌握复杂公式,一目了然!
- 文本翻译:轻松打破电子表格中的语言障碍!
相关文章:
最佳办公效率工具
| 🤖 | KUTOOLS AI 助手:基于以下内容革新数据分析:智能执行 | 生成代码| 创建自定义公式 | 数据分析及生成图表| 调用 Kutools Functions…… |
| 热门功能:查找、高亮或标记重复项 | 删除空白行 | 合并列或单元格且不丢失数据 | 不使用公式的四舍五入…… | |
| 高级 LOOKUP:多条件 VLookup | 多值 VLookup | 跨多工作表 VLookup | 模糊查找…… | |
| 高级下拉列表:快速创建下拉列表 | 级联下拉列表 | 多选下拉列表…… | |
| 列管理器:添加指定数量的列|移动列|切换隐藏列的可见性状态|比较区域与列…… | |
| 特色功能:网格聚焦 | 设计视图 |增强编辑栏 | 工作簿和表管理器 | 资源库(自动文本)| 日期提取 | 汇总工作表 | 加密/解密单元格 | 按列表发送邮件 | 超级筛选 | 特殊筛选(筛选粗体单元格/斜体/删除线……) ...... | |
| 精选 15 工具集:12 文本工具(添加文本,删除特定字符,……)| 50+ 图表 类型(甘特图,……)| 40+ 实用公式(基于生日计算年龄,……)| 19 插入工具(插入二维码,从路径插入图片,……)| 12 转换工具(小写金额转大写,汇率转换,……)| 7 合并和拆分工具(高级合并行,分割单元格,……)|……更多 |
使用 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 应用高效协作的团队。
- 一体化套件— Excel、Word、Outlook 和 PowerPoint 插件 + Office Tab Pro
- 一个安装程序,一个许可证— 几分钟内完成设置(支持 MSI)
- 协同效果更佳— 在多个 Office 应用中实现高效协同
- 30 天全功能试用— 无需注册,无需信用卡
- 超值之选— 比单独购买插件更省钱