3889370_g.zip
资源文件列表:

Excel中_按单元格颜色求和的实现.docx 20.14KB
资源介绍:
3889370_g.zip
在 excel2003 中按单元格背景颜色求和
2008-11-22 15:13
今天应一网友要求:按颜色求和,在网上一查还真找到了这一方法,经过测试(在
Excel2003 和 2007 中),非常好用,整理出来,与大家分享:
Excel 本身没有这个功能,可用以下办法实现:
打开你的工作表:点工具--宏--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
然后关闭,反回到工作表,点击--工具-选项--安全性--宏安全性--安全级选--
低--确定
保存关闭工作表,然后再打开,这时就可以用了
用法:
按颜色求和:sumcolor(颜色示列格,求和区域或列);按颜色计数:countcolor
(颜色示列格,求和区域或列)
例如:要求和从 a1 到 a10 这个区域内的红色格,
=sumcolor($a$1,$a$1:$A$10)
计数:countcolor($a$1,$a$1:$A$10)
注意:$a$1 必须是红色格,这是定义颜色的,你也可以设成其它格,但必须是你
要求和的颜色
ok!有问题可以留言。

在 excel2007 中按单元格背景颜色求和
一、在“开发工具”选项卡的“代码”组中,单击“宏安全性”。
提示 如果未显示“开发工具”选项卡,请单击“Office 按
钮” ,单击“Excel 选项”,然后在“常用”类别中的“使用 Excel
时采用的首选项”下单击“在功能区显示‘开发工具’选项卡”。
二、在“宏设置”类别中的“宏设置”下,单击所需的选项。
打开要进行分背景颜色计算的工作簿,点击开发工具---VISUALBASIC—插入—模
块—复制以下内容
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
到打开的模块范围内,即会自动产生 SUMCOLOR()函数;然后点击该 VB 的窗
口保存图标---会显示“另存为”窗,在保存类型选项选择“excel 启用宏的工
作簿”,保存即可---在该工作簿中建立数据表格,在点击要放汇总的单元格—
公式—f(x)函数—选择类别--全部—即会在下拉中看到 sumcolor()函数---
格式为 sumcolor(操作颜色示例单元格例如 A12,求和范围例 B13:B78)---
按出现的顺序操作即可。
操作颜色示例单元格最好在图表旁边另建(颜色模板),防止因数据表中颜色
调整而影响到计算结果;此处颜色不是字体颜色,而是背景颜色。
建完后要进行保存,最好也保存为“excel 启用宏的工作簿”。
另外应将宏安全级别降低或改为提醒:开发工具—宏安全--选择禁用所有宏,并
发出通知或者启用所有宏(不推荐)