通过VBA编程可以实现你要的按颜色对指定区域符合条件的单元格求和的效果。
下面的内容非本人原创,但绝对可以解答上面的问题。
在Excel中,有很多函数。但是,却没有一个函数能够根据提供的单元格颜色来求和的。
比如,有如下的单元格区域。
我们知道,上表中,不相邻的单元格,有些单元格的背景颜色是一样的。现在的问题是,如何对颜色一样的单元格进行求和。即对颜色相同的单元格中的数字进行求和。
要解决这个问题,得使用VBA来实现,普通的函数是无法完成这种求和的。
首先,在EXCEL界面中,按下组合键 Alt + F11
这个时候,会弹出一个Microsoft Visual Basic窗口。
之后,在此窗口中,执行菜单操作:“插入”→“模块”,如下图。
接着,我们会看到一个“模块1(代码)”的白色小窗体。这个窗体就是用来输入VBA代码的窗体。如下图。
直接在输入小窗体中输入VBA代码即可,如上图的那些代码就是,注意,完整的跟着输入,千万别错了。
为方便大家的学习,下面将代码粘贴如下:
Function MyColorSum(Ref_color As Range, Sum_range As Range)
Application.Volatile
Dim iCol As Integer
Dim rCell As Range
iCol = Ref_color.Interior.ColorIndex
For Each rCell In Sum_range
If iCol = rCell.Interior.ColorIndex Then
MyColorSum = MyColorSum + rCell.Value
End If
Next rCell
输入好了,接下来,就关闭Microsoft Visual Basic窗口,返回到EXCEL窗口,然后,对EXCEL进行一次保存操作。
现在,就到了最后的一步了。
如下图一样,要想统计哪种颜色的单元格的和,就使用上面代码的函数名称进行统计即可。
比如,我们要统计红色的单元格的和,那么,就输入如上图的代码。
=MyColorSum(C2,A1:C10)
知识扩展:
该VBA代码实现的功能,其实是一种自定义函数。该函数具有相当大的灵活性,可满足我们日常工作中的针对颜色进行求和的需要。
我们可以将此公式这样来理解。
MyColorSum(具有同类颜色的任何一个单元格名称,要统计的数据范围)
今后,您就可以自行对有颜色的单元格进行求和统计了,只需要修改具有颜色的单元格名称和统计范围就行了。
===================
针对问题中指定的区域,在应用自建的这个MyColorSum函数时,只需要相应修改目标颜色单元格(譬如:A3)和数据区域就可以了。
=MyColorSum(A3,A1:A200)