
在日常学习工作中,有时我们需要对数据用颜色进行标注,以突出显示有特殊意义的数据。
但不管是EXCEL还是WPS中,函数库中并没有根据颜色统计求和的函数。如果我们要根据颜色统计数据,怎么办呢?
今天我们分享两个方法,特别是最后一种,非常灵活方便,任何颜色都可以统计,要写SUM函数一样简单。
方法一:自定义名称
此方法适用于标记的颜色种类少的情况,如下图案例:
案例中,只有两个颜色,现在我们需要对这两个颜色进行求和以及统计数量。步骤如下:
1、选中数据区域,CTRL+F,设置查找的填充颜色格式,查找全部
2、CTRL+A全选找到的单元格
3、关闭查找替换对话框,在左上角【名称框】中,输入“红色”名称,按回车;
这样,红色的数据单元格,就被命名成一个名为“红色”的数据区域。用同样的方法,再命名一个“黄色”区域名称;
4、最后,用SUM和COUNTA求和统计
函数的参数直接写刚才我们定义的名称就行了。
=SUM(红色)=COUNTA(红色)但这个方法,也有缺点:
1、如果颜色有很多种,操作就比较复杂,需要一个个颜色定义名称;
2、如果颜色单元格数量标注变动,无法自动更新;
方法二:自定义函数
鉴于第一种方法的缺点,最好的方法,还是要回归函数的思路上,既然EXCEL中没有根据颜色求和的函数,我们可以自己【发明】一个函数。
EXCEL中的函数,也是用VBA语言开发的,只是官方帮你开发好了,你可以直接调用而已。
所以,我们也可以自己开发这个函数,代码我放在后面,我们先演示一下新函数的效果。
函数的名称和参数如下:
=SumByColor(颜色取样单元格,数据区域)=CountByColor(颜色取样单元格,数据区域)直接根据颜色样本单元格进行统计,如果数据区域单元格颜色改变,统计会自动更新数据结果,非常灵活方便。
操作方法如下:
在EXCEL或者WPS中,按 Alt+F11 打开 VBA 编辑器,插入新模块(插入→模块)。
函数代码如下:
'颜色求和Function SumByColor(targetCell As Range, sumRange As Range)Dim cell As RangeDim sumVal As DoublesumVal = 0For Each cell In sumRangeIf IsNumeric(cell.Value) ThenIf cell.Interior.Color = targetCell.Interior.Color ThensumVal = sumVal + cell.ValueEnd IfElseSumByColor = "#VALUE"Exit FunctionEnd IfNext cellSumByColor = sumValEnd Function'颜色统计个数Function CountByColor(targetCell As Range, countRange As Range) As LongDim cell As RangeDim count As Longcount = 0For Each cell In countRangeIf IsNumeric(cell.Value) ThenIf cell.Interior.Color = targetCell.Interior.Color Thencount = count + 1End IfEnd IfNext cellCountByColor = countEnd Function
你学会了吗?
如果你想“从入门到精通”学习办公软件,老师推荐以下两个教程:
关注我,学习更多高效办公技巧!

往期干货文章学习推荐:
分享高效办公技巧及免费自动化模版,避免以后需要找不到,请您持续关注哦