第2个回答 2015-03-19
如果你想通过函数来实现,那就要自己用VBA写自定义函数了。你可以百度查一下:CountColor 和SumColor函数,以下是别人写的自定义函数,参考后可以照搬或者修改后再用。
方法:
打开你的工作表:点开发工具-Visual
Basic-左边上边的小窗口空白处点右键-插入-模块,然后在打开的编辑框中粘贴以下代码:
Function CountColor(col As
Range, countrange As Range) As Integer
Dim
icell As Range
Application.Volatile
For Each icell In
countrange
If icell.Interior.ColorIndex = col.Interior.ColorIndex
Then
CountColor = CountColor +
1
End If
Next icell
End Function
Function SumColor(col As Range, sumrange As Range) As
Integer
Dim icell As
Range
Application.Volatile
For Each icell In
sumrange
If icell.Interior.ColorIndex = col.Interior.ColorIndex
Then
SumColor = Application.Sum(icell) +
SumColor
End If
Next icell
End Function
然后关闭,反回到工作表,点击宏安全性-选择启用所有宏,并勾选信任对VBA工程的访问,保存关闭
用法:
按颜色求和:sumcolor(颜色示列格,求和区域或列);按颜色计数:countcolor(颜色示列格,求和区域或列)
例如:要求和从a1到a10这个区域内的红色格,
=sumcolor($a$1,$a$1:$A$10)
计数:countcolor($a$1,$a$1:$A$10)
注意:$a$1
必须是红色格,这是定义颜色的,你也可以设成其它格,但必须是你要求和的颜色