在Microsoft Excel中按颜色筛选的4种方法

在Microsoft Excel中按颜色筛选的4种方法

您是否有需要过滤的彩色单元格?

您可能已经根据单元格值进行了过滤,但相同的过滤也可以基于单元格颜色进行。

例如,您可能有一个数据表并决定添加填充颜色格式。您可以根据单元格内容为每个单元格着色,然后按颜色进行过滤!

这篇文章将向您展示在 Excel 中按颜色过滤的所有方法。

推荐:使用Excel查找平均值的10种方法

通过过滤器切换按颜色进行过滤

在 Excel 中过滤数据的最常见方法是通过过滤器切换。启用数据过滤器后,您可以使用其内置菜单按颜色进行过滤。

在Microsoft Excel中按颜色筛选的4种方法
在Microsoft Excel中按颜色筛选的4种方法

按照以下步骤按颜色过滤。

  1. 选择表格标题单元格。
  1. 在下面 数据 选项卡切换 筛选 菜单按钮。过滤器切换按钮将出现在标题上。

💡 提示:您可以使用 Ctrl + 转移 + 大号 键盘快捷键。这是打开或关闭 Excel 工作簿中任何数据的过滤器的简单方法。

  1. 选择彩色单元格列的过滤器切换。
  1. 将鼠标悬停在 按颜色过滤 选项并从子菜单中选择要基于其进行过滤的颜色。

您的表格立即缩小为仅显示包含绿色单元格的行!

通过右键菜单按颜色过滤

您可以通过右键单击菜单快速过滤行,而无需手动启用过滤器切换。

要通过这种方式过滤单一颜色:

  1. 右键单击您想要过滤颜色的单元格。
  1. 深入研究 筛选 选项。
  1. 选择 按选定单元格的颜色过滤

请注意过滤器切换是如何自动启用的,并且您的表格已被过滤为仅显示包含绿色单元格的行!

推荐:如何在不同情况和用例中在Excel中查找和替换

使用 VBA 按颜色过滤

VBA 是一种编程代码,您可以利用它自动执行许多 Excel 任务,包括过滤。

您可以编写一个 VBA 宏,按当前选定的单元格的颜色进行过滤:

  1. 按以下方式打开 Visual Basic 编辑器 Alt + F11 或者去 开发人员 Tab 并选择 Visual Basic。您可能需要 启用 开发人员 标签 如果它从功能区中隐藏起来。
  1. 选择 插入 菜单并选择 模块 选项。
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
  1. 双击新模块将其打开,然后将上述 VBA 代码粘贴到该模块中。

代码首先确保您已在表中进行选择。 selCell 是要过滤颜色的选定单元格。 field 是包含彩色单元格的表的字段编号。

此示例中的字段编号为 2,因为需要过滤的字段是第二个表列。 color 是选定单元格的颜色。

然后您就可以运行代码。

  1. 返回工作表并选择您想要过滤颜色的单元格。
  1. 在下面 看法 菜单选择
  1. 选择您的 按颜色过滤 宏。
  2. 点击 跑步 按钮。

您的表格现在已根据您选择的单元格的颜色进行过滤!

使用 Office 脚本按颜色过滤

如果您拥有 Microsoft 365 商业计划下的 Excel 在线版本,则可以在 Excel 中使用 Office 脚本。

微软还在最新的桌面版 Excel 测试版中引入了 Office 脚本。

您可以使用 Office 脚本自动执行颜色过滤等任务,如下所示。

打开包含表格数据的工作簿。

  1. 前往 自动化 标签。
  2. 选择 新脚本

如果您没有看到 自动化 标签。

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});

}
  1. 粘贴全部内容 代码编辑器 使用上述脚本的窗格。

脚本获得活动 cell 并检索其 color 来确定要过滤的颜色。

过滤器切换 af 已打开,过滤后的列索引存储在 col 变量。表列索引始终从 0 开始,因此需要过滤的列的索引为 1。

最后一行使用所有信息来应用颜色过滤器。

然后您就可以看到脚本的结果。

  1. 选择工作表上的任意颜色单元格。
  1. 点击 跑步 按钮位于 代码编辑器 窗格。

请注意,您选择的颜色现在已在表中过滤!

结论

这篇文章向您展示了在 Excel 表中按颜色过滤的几种不同方法。

当您已经按照自己喜欢的方式设置了过滤器时,使用切换过滤器过滤颜色是一种很好的方法。

通过右键单击菜单是一种快捷方式,但请注意,执行此操作时,Excel 会猜测表格的单元格范围。

如果您使用 VBA 或 Office 脚本,您可以完全控制颜色过滤,并且可以可靠地在不同的工作表上重复过滤。如果您拥有受支持的 Excel 版本和编程知识,这些都是很好的工具。

您是否曾需要根据单元格颜色过滤数据?您知道您可以这样做吗?请在下方评论中告诉我

推荐:在Linux Debian 12/11 上安装并运行Blender 3D


发表评论