如何在Excel中计算彩色单元格的数量

虽然不是内置的Excel功能,但我们可以创建自己的函数来轻松计算彩色单元格。
内容:
如何使用用户定义的函数
下面的两个示例将使用“用户定义函数”。就像 SUM 和 COUNT 被视为函数一样,我们可以使用 VBA 创建自己的函数。
这与使用宏的过程相同,但我们可以调用我们的函数,而不是运行宏,类似于在公式中调用内置函数的方式(通过键入“=”后跟函数名称)。
使用用户定义函数的第一步是获取VBA代码片段,并将其放入工作簿中。为此,请按 alt + F11 或转到 Visual Basic >开发人员选项卡打开 VBA 编辑器:

接下来,我们需要创建一个模块来放置自定义函数。在左侧菜单中,右键单击您的工作簿名称,然后选择插入>模块。在此模块中输入的任何代码都可以在工作簿中的任何位置使用。

然后,您所要做的就是将函数代码拖放到该菜单右侧的空白区域中,您将能够在工作簿中的任何单元格中按其名称调用自定义函数。

如何计算范围内所有彩色单元格
要计算范围内所有彩色单元格,或给定范围内没有空白背景的任何单元格,我们可以使用用户定义的函数,我们称之为“CountColoredCells”。
此函数将在给定范围内搜索任何彩色单元格并对其进行计数。
Function CountColoredCells(eval_range As Range) As Long Dim cell As Range Dim colored_count As Long colored_count = 0 For Each cell In eval_range If cell.Interior.ColorIndex <> xlNone Then colored_count = colored_count + 1 End If Next cell CountColoredCells = colored_count End Function
例如,这里有一个工作簿,其中有几种不同的颜色表示不同的结果。如果我们想知道这个范围内有多少个单元格是着色的,我们可以使用公式(在我们将函数放入模块之后):
= CountColoredCells(cell_range)
= CountColoredCells(C4:C10)

通过使用“CountColoredCells”函数并选择要计数的范围,我们可以使用自定义函数返回正确数量的彩色单元格。

如何计算与特定颜色匹配的区域中的单元格
与其计算一个范围内所有彩色单元格,不如对区域中与特定颜色匹配的单元格进行计数呢?
例如,我们可以使用上面相同的示例,但添加绿色的“Good”。仅使用颜色,我们可以计算出与每种状态匹配的单元格数量。
Function CountColorMatches(eval_range As Range, cell_reference As Range) As Long Dim cell As Range Dim reference_color As Long Dim match_count As Long reference_color = cell_reference.Interior.Color match_count = 0 For Each cell In eval_range If cell.Interior.Color = reference_color Then match_count = match_count + 1 End If Next cell CountColorMatches = match_count End Function
要使用此功能,我们将使用略有不同的结构,通过定义要查看的范围以及包含我们要计数的颜色的单元格。
= CountColorMatches(cell_range, reference_cell)
= CountColorMatches($C$4:$C$10,E4)

在这里,我们的函数是查看 E4 的颜色,并计算单元格颜色在 C4:C10 范围内出现的次数。通过向下拖动相同的公式,我们可以查看每种颜色,绿色,黄色和红色。

为了说明这是计算颜色而不是文本,我们可以删除文本,计数将保持不变。
