用VBA可以
输入如下宏代码,加载到按钮上
Sub 矩形1_单击()
Sum = 0
For Each s In Range("a3:i3")
If s.Interior.ColorIndex = 3 Then
Sum = Sum + s.Value
End If
Next s
Range("j3").Value = Sum
End Sub
效果如下图:
改善 peakiso 的方法
输入如下宏代码
Public Function sumdiy(rnd1, rnd2)
Sum = 0
For Each s In Range(rnd1.Address)
colr = rnd2.Interior.ColorIndex
If s.Interior.ColorIndex = colr Then
Sum = Sum + s.Value
End If
Next s
sumdiy = Sum
End Function
使用方法
直接在单元格输入公式
=sumdiy(求和单元格范围,求和颜色所在单元格)
‘===========================
比如可以这样
=sumdiy(a1:a100,a1)
求 a1:a100 单元格中 和 A1 颜色一样的单元格的和
’==========说明=================
在只改变单元格颜色的情况下 公式是不重新计算的
只有当其表格的任何一个单元格被修改 才会重新计算(重新计算所有公式)