文章目录
- 一、需求
- 二、实现方法
- 1.代码
- 2.创建自定义函数
- 3.使用函数
- 三、参考资料
一、需求
一个Excel中有不同颜色标记的单元格,统计的时候,需要按照颜色进行统计。
人工来做肯定是不可能了,借助Excel的功能好像也没有思路,其实这种情况可以通过使用vba自定义函数来实现。
二、实现方法
1.代码
根据颜色求和函数代码
' 根据颜色求和
Function SumColor(i As Range, ary1 As Range)
Dim icell As Range
Application.Volatile
For Each icell In ary1
If icell.Interior.ColorIndex = i.Interior.ColorIndex Then
SumColor = Application.Sum(icell) + SumColor
End If
Next icell
End Function
根据颜色计数函数代码
' 根据颜色计数
Function CountColor(x As Range, ary2 As Range)
Application.Volatile
For Each i In ary2
If i.Interior.ColorIndex = x.Interior.ColorIndex Then
CountColor = CountColor + 1
End If
Next
End Function
在这里我们定义了SumColor与CountColor两个自定义函数,
SumColor:对指定颜色的单元格求和
第一参数:想要求和的单元格颜色
第二参数:求和的数据区域
CountColor:对指定颜色的单元格计数
第一参数:想要计数的单元格颜色
第二参数:想要计数的单元格区域
2.创建自定义函数
打开开发工具
标签页–>点击Visual Basic
–>点击插入-模块
–>把代码复制到窗口中–>保存
如果你也是Mac版本的Excel,发现没有开发工具
这个标签页,可以按如下方法设置。
点击左上角Excel,找到偏好设置
->视图
,勾选"开发工具"选项卡
。
3.使用函数
函数使用方法和使用其他Excel内置函数没有什么区别,也是类似于=SumColor(H3,A1:F9)
这种形式即可,不过要注意这里是两个参数,第一个参数是一个单元格,第二个参数是一个范围。具体如图所示:
这里我就不自己截图了,使用网上现成的动图吧
三、参考资料
https://wenku.so.com/d/e776b4fd732883a47b03fe22f7c1a360
https://baijiahao.baidu.com/s?id=1654264602680369970&wfr=spider&for=pc