如何在EXCEL中实现按单元格背景颜色求和或计数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
EXCEL进阶
如何在EXCEL中实现按单元格背景颜色求和或计数我们在EXCEL工作表中,如果要对多个单元格的数值进行求和,一般都会用到SUM函数,SUM 函数的计算结果可以根据各个对象单元格数值的变化而发生变化,满足了大多数EXCLE用户的需求。但是,在SUM函数中,当被求和单元格的位置发生变化时,SUM函数是无法进行自动求和的,这就需要用到SUM COLOR函数,它能根据单元格的背景颜色进行求和,无论是单元格的位置发生了变化还是单元格数值发生变化,只要被求和单元格的背景颜色一致,SUM COLOR函数都可以实现对她们的求和。如果要对相同颜色单元格进行计数,也可以运用COUNTCOLOR函数实现。
可是,EXCLE本身并没有这两项功能,我们必须要通过宏与VBA才能实现,方法很简单,以EXCEL2003为例:
首先,打开你的EXCEL2003工作表,点工具--宏--Visual Basic 编辑器,得到以下界面:在界面左上角Sheet1点右键--插入--模块,打开以下编辑界面:
然后在打开的编辑框中输入以下代码:(有需要的朋友可以找作者索取此代码直接粘贴即可)
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
然后关闭此界面,返回到工作表。点击工具--宏--安全性--安全级--低--确定。保存并关闭工
作表,再打开工作表就可以使用SUM COLOR和COUNTCOLOR函数了。
现在我们再来根据单元格的背景颜色进行求和与计数,方法如下:
按颜色求和公式为:sumcolor(颜色示列格,求和区域或列);
按颜色计数公式为: countcolor(颜色示列格,求和区域或列)。
如下图,
要对A1到A11这个区域内的蓝色格进行求和,在E1单元格中编辑公式=sumcolor(D1,$A$1:$A$11);
要对A1到A11这个区域内的蓝色格进行计数,在E6单元格中编辑公式=countcolor(D6,$A$1:$A$11),一定要在半角模式下编辑公式哦!
如果A1到A11这个区域内单元格背景颜色发生变化,只需双击E1单元格,再按回车键,E列单元格中的数值就会随着颜色的改变而变化过来。如下图:
请注意,只有在EXCEL表中对宏进行设置之后,才能使用SUMCOLOR和COUNTCOLOR函数,如果不做任何宏设置,直接输入这两个函数,EXCEL是无法识别的。
希望能够帮助到对这方面有需求的同事们!
芜湖购物人力资源部方琴 2012-7-17