Excel无法直接按条件格式颜色筛选,需用四种方法:一、标准按颜色筛选(仅限手动设色);二、GET.CELL函数(旧版适用);三、VBA+DisplayFormat属性(推荐,兼容条件格式);四、图片+Power Query法无效。

如果您需要在Excel中根据单元格的填充颜色或字体颜色对数据进行筛选,则无法直接通过标准筛选菜单中的“按颜色筛选”选项实现全部需求,尤其当颜色为条件格式动态生成时。以下是解决此问题的步骤:
一、使用Excel内置的按颜色筛选功能
该方法适用于手动设置的填充色或字体颜色,不适用于条件格式生成的颜色(部分版本可能支持条件格式颜色,但行为不稳定)。Excel提供原生支持,操作快捷且无需公式。
1、选中包含数据的表格区域,确保首行为标题行,并已启用自动筛选(数据 → 筛选)。
2、点击任意列标题右侧的下拉箭头,将鼠标悬停在“按颜色筛选”子菜单上。
3、在展开的菜单中选择“按单元格颜色筛选”或“按字体颜色筛选”,然后点击目标颜色方块。
4、Excel将立即隐藏未匹配该颜色的行,仅显示具有指定填充色或字体色的单元格所在行。
二、借助辅助列+GET.CELL函数(仅限Excel旧版宏表函数,需定义名称)
此方法可捕获条件格式产生的实际显示颜色,适用于颜色由条件格式动态生成的场景,但必须使用Excel 2019及更早版本或Excel for Microsoft 365(需启用宏表函数兼容模式),且需通过“新建名称”间接调用GET.CELL。
1、按下 Ctrl + F3 打开名称管理器,点击“新建”。
2、在“名称”栏输入 CellColor,在“引用位置”框中输入:=GET.CELL(63,Sheet1!$A2)(假设数据从A2开始,Sheet1为当前表名)。
3、在B2单元格输入公式 =CellColor,回车后显示该单元格背景色对应的颜色编号。
4、将B2公式向下填充至整列,得到每行对应的颜色编码值。
5、对B列启用筛选,按具体数值筛选,再同步观察A列原始数据行。
三、使用VBA自定义函数获取颜色索引
该方法可稳定识别手动填充色与条件格式色(依赖Excel对象模型的DisplayFormat属性),适用于所有现代Excel桌面版(Windows),但需启用宏并信任此工作簿。
1、按 Alt + F11 打开VBA编辑器,右键“正常”工程 → 插入 → 模块。
2、粘贴以下代码:
Function GetCellColor(r As Range) As Long\n GetCellColor = r.DisplayFormat.Interior.ColorIndex\nEnd Function
3、返回Excel,在空白列第一行(如C2)输入公式 =GetCellColor(A2),回车后显示颜色索引号。
4、将公式向下填充,然后对该列执行常规数字筛选,即可按颜色分组查看数据。
四、复制为图片后用Power Query识别(仅作颜色标记参考,不推荐用于精确筛选)
此方法不直接提取颜色值,而是将带颜色的单元格区域转为静态图像嵌入工作表,再利用Power Query导入图像元数据——实际不可行于颜色值提取,故该路径不产生有效筛选能力,不应采用。


















