在工作过程中,有时为了方便区分不同的类别,一般都会选用给单元格标注颜色,这种方法简单快捷。那如果后续想根据单元格颜色来进行汇总怎么办呢?我们都知道可以按单元格颜色进行筛选,那除了最简单的筛选,还有什么其他办法呢?今天给大家介绍几个按Excel单元格颜色求和的方法。
如图,根据下列案例分别按不同的四个颜色对订单数进行求和。
一、查找求和查找这个功能大家都经常用,但是根据颜色来查找大家都会用吗?具体方法如下:
点击开始选项卡下,【编辑】组里的“查找和选择”下方的“查找”或者按Ctrl+F就可以打开“查找和替换”窗口。
在“查找和替换”窗口点击“选项”。选项上方就会出现“格式”下拉框,在下拉框选择“从单元格选择格式”。也可以直接选择格式进行设置,不过从单元格选择当然更方便了。
鼠标就会变成一个吸管,点击黄色的单元格之后,格式旁边的预览窗格就是黄色的。点击“查找全部”下方就会出现所有黄色的单元格。
点击下方查找到的任一条记录,按住Ctrl+A,所有黄色的单元格就被选中了。工作表右下角就出现了所有黄色的求和。
然后再利用这种方法再依次把其他颜色的单元格求和值获取出来就可以了。
这种方法简单易操作,缺点就是只能根据颜色一个个进行操作。
二、宏表函数求和Excel中可以使用宏表函数get.cell来得到单元格的填充色。但宏表函数必须自定义名称才能使用,具体方法如下:
点击公式选项卡下【定义的名称】组里的“定义名称”。
在“编辑名称”窗口,名称输入“color”,引用位置输入“=GET.CELL(63,宏函数!B2)”。“宏表函数”是所在工作表的名称,由于首先在C2单元格输入公式获取颜色值,所以这里选用带颜色的单元格B2。不加绝对引用就可以方便在其他单元格同样也能获取到左侧单元格的颜色值。
然后在C2:C10单元格里输入“=color”。这列的值就是颜色值。
同理,在颜色这一列F2:F5旁边也输入颜色值“=color”。
最后根据一一对应的颜色值,使用SUMIF函数“=SUMIF(C:C,F2,B:B)”即可。
利用宏表函数获取颜色的值,然后通过SUMIF函数进行求和。这种获取颜色值的方法除了可以使用SUMIF函数之外,还可以使用其他不同的函数来对颜色进行多角度分析,非常方便实用。
三、VBA求和获取单元格颜色最方便最快捷的方式当然是使用VBA。Excel本身包含的函数无法实现按颜色求和,我们通过VBA自己构建一个自定义函数来帮助实现按颜色求和。
按住Alt+F11或者在工作表标签上右键“查看代码”打开VBA编辑器。
在VBA编辑器里点击插入下方的“模块”。
点击新创建的模块--模块1,在右侧窗口输入以下代码。
Function SumColor(col As Range, sumrange As Range) As Long 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是自定义的函数名称,里面包括两个参数,第一参数col是要获取颜色的单元格,第二参数sumrange是求和区域。
(这里相当于我们自己创建一个函数SumColor,并且自己定义函数的2个参数的含义。对于初学者来说,暂时可以不用理解这段代码的意思,只需要保存下来,作为模板套用即可)
点击“文件”-“保存”,然后直接关闭VBA编辑器即可。
自定义函数定义好之后,直接在工作表进行使用就可以了。在F2:F5单元格输入“=SumColor(E2,$A$2:$B$10)”就可以了。
注意:宏表函数和VBA用法由于使用了宏,在EXCEL2003版本可以直接保存,但2003以上版本需要保存为“xlsm”格式才能正常使用。
对于标记颜色的单元格来说,查找这个方法容易使用但适用场景不多,VBA功能很强大,但是要想彻底弄懂还需要更深层次的学习。宏表函数这个方法比较简单,而且也比较实用,觉得有用的话赶紧收藏吧!
相关学习推荐:excel教程