在Microsoft Excel中按颜色筛选的4种方法
您是否有需要过滤的彩色单元格?
您可能已经根据单元格值进行了过滤,但相同的过滤也可以基于单元格颜色进行。
例如,您可能有一个数据表并决定添加填充颜色格式。您可以根据单元格内容为每个单元格着色,然后按颜色进行过滤!
这篇文章将向您展示在 Excel 中按颜色过滤的所有方法。
推荐:使用Excel查找平均值的10种方法
通过过滤器切换按颜色进行过滤
在 Excel 中过滤数据的最常见方法是通过过滤器切换。启用数据过滤器后,您可以使用其内置菜单按颜色进行过滤。
按照以下步骤按颜色过滤。
- 选择表格标题单元格。
- 在下面 数据 选项卡切换 筛选 菜单按钮。过滤器切换按钮将出现在标题上。
💡 提示:您可以使用 Ctrl + 转移 + 大号 键盘快捷键。这是打开或关闭 Excel 工作簿中任何数据的过滤器的简单方法。
- 选择彩色单元格列的过滤器切换。
- 将鼠标悬停在 按颜色过滤 选项并从子菜单中选择要基于其进行过滤的颜色。
您的表格立即缩小为仅显示包含绿色单元格的行!
通过右键菜单按颜色过滤
您可以通过右键单击菜单快速过滤行,而无需手动启用过滤器切换。
要通过这种方式过滤单一颜色:
- 右键单击您想要过滤颜色的单元格。
- 深入研究 筛选 选项。
- 选择 按选定单元格的颜色过滤。
请注意过滤器切换是如何自动启用的,并且您的表格已被过滤为仅显示包含绿色单元格的行!
推荐:如何在不同情况和用例中在Excel中查找和替换
使用 VBA 按颜色过滤
VBA 是一种编程代码,您可以利用它自动执行许多 Excel 任务,包括过滤。
您可以编写一个 VBA 宏,按当前选定的单元格的颜色进行过滤:
- 按以下方式打开 Visual Basic 编辑器 Alt + F11 或者去 开发人员 Tab 并选择 Visual Basic。您可能需要 启用 开发人员 标签 如果它从功能区中隐藏起来。
- 选择 插入 菜单并选择 模块 选项。
Sub FilterByColor()
Dim selCell As Range
Dim color, field
Set selCell = Selection
If Intersect(selCell, ActiveSheet.UsedRange) Is Nothing Then
'No table selected
Exit Sub
End If
If ActiveSheet.autofilter Is Nothing Then
'Turn on filter toggles
selCell.autofilter
End If
field = selCell.Column - ActiveSheet.autofilter.Range.Column + 1
color = selCell.Interior.color
'Filter by color
selCell.autofilter field:=field _
, Criteria1:=color _
, Operator:=xlFilterCellColor
End Sub
- 双击新模块将其打开,然后将上述 VBA 代码粘贴到该模块中。
代码首先确保您已在表中进行选择。 selCell
是要过滤颜色的选定单元格。 field
是包含彩色单元格的表的字段编号。
此示例中的字段编号为 2,因为需要过滤的字段是第二个表列。 color
是选定单元格的颜色。
然后您就可以运行代码。
- 返回工作表并选择您想要过滤颜色的单元格。
- 在下面 看法 菜单选择 宏。
- 选择您的 按颜色过滤 宏。
- 点击 跑步 按钮。
您的表格现在已根据您选择的单元格的颜色进行过滤!
使用 Office 脚本按颜色过滤
如果您拥有 Microsoft 365 商业计划下的 Excel 在线版本,则可以在 Excel 中使用 Office 脚本。
微软还在最新的桌面版 Excel 测试版中引入了 Office 脚本。
您可以使用 Office 脚本自动执行颜色过滤等任务,如下所示。
打开包含表格数据的工作簿。
- 前往 自动化 标签。
- 选择 新脚本。
如果您没有看到 自动化 标签。
function main(workbook: ExcelScript.Workbook) {
//Worksheet
let selectedSheet = workbook.getActiveWorksheet();
//Selected cell
let cell = workbook.getActiveCell();
if(selectedSheet.getUsedRange().getIntersection(cell)==null){
return;
}
//Turn on filter toggles
let af = selectedSheet.getAutoFilter();
af.apply(cell);
//Color of selected cell
let color = cell.getFormat().getFill().getColor();
//Column index within table
let col = cell.getColumnIndex() - af.getRange().getColumnIndex();
//Filter by color
af.apply(af.getRange(), col, {filterOn: ExcelScript.FilterOn.cellColor, color: color});
}
- 粘贴全部内容 代码编辑器 使用上述脚本的窗格。
脚本获得活动 cell
并检索其 color
来确定要过滤的颜色。
过滤器切换 af
已打开,过滤后的列索引存储在 col
变量。表列索引始终从 0 开始,因此需要过滤的列的索引为 1。
最后一行使用所有信息来应用颜色过滤器。
然后您就可以看到脚本的结果。
- 选择工作表上的任意颜色单元格。
- 点击 跑步 按钮位于 代码编辑器 窗格。
请注意,您选择的颜色现在已在表中过滤!
结论
这篇文章向您展示了在 Excel 表中按颜色过滤的几种不同方法。
当您已经按照自己喜欢的方式设置了过滤器时,使用切换过滤器过滤颜色是一种很好的方法。
通过右键单击菜单是一种快捷方式,但请注意,执行此操作时,Excel 会猜测表格的单元格范围。
如果您使用 VBA 或 Office 脚本,您可以完全控制颜色过滤,并且可以可靠地在不同的工作表上重复过滤。如果您拥有受支持的 Excel 版本和编程知识,这些都是很好的工具。
您是否曾需要根据单元格颜色过滤数据?您知道您可以这样做吗?请在下方评论中告诉我