【发布时间】:2018-06-06 19:41:15
【问题描述】:
我在 Excel 中有一系列单元格,需要按其字体颜色求和。
A 列只是供应商的名称,显然是整个 5 月份:
理想情况下,我想知道此范围内黑色、红色或蓝色单元格的总和 所以我开发了两个场景,一个有宏,一个没有宏。
- 没有 VBA
给红色和黑色单元格加一个字符串,就知道它们是“不同的” 例如。将 268 更改为 268c,将 66.5 更改为 66.5u,但保持 52.96 不变
并使用下面的数组公式:
{=SUM(IF(ISNUMBER(B7:C16),B7:C16,NUMBERVALUE(LEFT(B7:C16,3))))}
这会跳过 66.5 中的 .5 但可以工作,并且只要我将 LEFT 函数(将单元格从文本截断为字符串)中的 3 更改为 LEN(B6:C17)-1 它就不起作用。
- 使用 VBA
插入模块并创建这个公式,它自己起作用:
Function GetCellColor(ByVal Target As Range) As Integer
GetCellColor = Target.Font.ColorIndex
End Function
使用下面的公式(如果它是数组公式,则给出错误):
=SUM(IF(getcellcolor(B7:C16)=3,B7:C16,0))
*我可以编写手动遍历每个单元格并添加的代码,但我想知道每个场景的问题是什么......
【问题讨论】:
-
在我看来你在倒退。有条件地格式化,然后试图找出哪些被格式化了?如果您退后一步,您可以一口气完成所有事情。