这个问题似乎有点复杂啊。 在Excel表中是不能直接按单元格颜色做求和计算的 我们需要用VBA代码自己创建一个Function,和平常用的函数差不多,只不过各种功能自己定义。 我刚刚研究一下,谢了段VBA,你试试哈 在Excel中Alt+F11,打开VBA编辑器,插入一个模块,写入代码 源码如下: Function CSUM(CRANGE As Range, SUMRANGE As Range) '创建一个颜色求和函数CSUM,定义参照颜色区域CRANGE,定义求和区域SUMRANGE Dim cell As Range, Colors, Data1, Data2 As Integer Application.Volatile Colors = CRANGE(1).Interior.Color For Each cell In SUMRANGE If cell.Interior.Color = Colors Then Data2 = Data2 + 1 Data1 = WorksheetFunction.Sum(cell) + Data1 End If Next cell If Data2 = 0 Then CSUM = 'No Colors Are Selected': Exit Function CSUM = Data1 End Function 完成后退出VBA编辑器 去应用一下 公式使用方法和普通的公式一样,按下方方法使用即可 =CSUM(参照颜色,求和区域) 我们再M列标记了几个颜色,在N列去计算标记了此颜色的F列所表示的销量 结果如下: 注意:由于VBA代码中有一个遍历循环的过程,所以选择求和区域SUMRANGE的时候最好选择数据表中有数据的范围,而不要选择一整列数据,选一整列的话计算起来会慢很多。 代码中,我们判断了,没有找到对应参照颜色的的提示,如下: If Data2 = 0 Then CSUM = 'No Colors Are Selected': Exit Function 所以示例结果中出现了No Colors Are Selected内容,不用在意,就是提醒而已。 会了没?希望对你有帮助,不谢。 |
|