2007EXCEL使用技巧——按指定的单元格颜色和数字颜色进行计数或求和一、如果Excel工作表的某区域中包含不同的底纹颜色,我们可以用一个自定义函数对该区域按指定的单元格颜色进行计数或求和。方法是:1.按Alt+F11,打开VBA编辑器。2.单击菜单“插入→模块”,将插入名称为“模块1”的模块在右侧的代码窗口中输入下列代码:1.SumByColor,可以对区域按指定单元格的颜色求和。FunctionSumByColor(Ref_colorAsRange,Sum_rangeAsRange)Application.VolatileDimiColAsIntegerDimrCellAsRangeiCol=Ref_color.Interior.ColorIndexForEachrCellInSum_rangeIfiCol=rCell.Interior.ColorIndexThenSumByColor=SumByColor+rCell.ValueEndIfNextrCellEndFunction2.CountByColor,可以统计区域中某种颜色的个数。FunctionCountByColor(Ref_colorAsRange,CountRangeAsRange)Application.VolatileDimiColAsIntegerDimrCellAsRangeiCol=Ref_color.Interior.ColorIndexForEachrCellInCountRangeIfiCol=rCell.Interior.ColorIndexThenCountByColor=CountByColor+1EndIfNextrCellEndFunction上述两个自定义函数,一个是SumByColor,可以对区域按指定单元格的颜色求和。另一个是CountByColor,可以统计区域中某种颜色的个数。这两个自定义函数都有两个参数,前一个参数指定包含某种颜色的单元格,后一个参数为求和或计数区域。3.关闭VBA编辑器。参考实例:使用方法:假如要求和或计数的区域在A1:B10区域中。求出该区域中单元格底纹颜色为红色的所有单元格数值之和,在单元格中输入公式:=sumByColor(A1,A1:B10)求出该区域中单元格底纹颜色为红色的所有单元格的个数,在单元格中输入公式:=CountByColor(A1,A1:B10)二、按字求颜色在Excel的内建功能,内建函数中,应没有针对颜色而自动计算的方法。故可能是唯一办法-VBA自定义函数我刚写了一个简单的VBA,绝对可以做到你的要求FunctionCOLORSUM(xxAsRange,yyAsRange)AsDoubley=yy.Font.ColorIndexForEachxInxxIfx.Font.ColorIndex=yThenxxx=xxx+x.ValueEndIfNextCOLORSUM=xxxEndFunction假设你的数字是在A1:A100,而A2的数字颜色是作为自动求和的识别。只要将上述VBA贴在模块上,COLORSUM函数便可以使用输入公式=COLORSUM(A1:A100,A2)便会所有与A2相同颜色的数字,自动求和。