发布网友 发布时间:2022-08-21 10:14
共1个回答
热心网友 时间:2023-11-21 19:37
如果是表示有颜色的数据进行求和,可以通过“筛选”,将有颜色的数据筛选出来,然后再对这些有颜色的数据进行分析,会更便捷追问应该有一个公式用SUMIF 用到宏函数设置辅助列来判断颜色追答打开你的工作表:点开发工具-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
必须是红色格,这是定义颜色的,你也可以设成其它格,但必须是你要求和的颜色