Hello,大家好,今天跟大家分享下我们如何根据单元格的颜色进行求和与计数,很多粉丝都提到过类似的问题,其实这都是源于我们数据整理的时候太过随意,如果在数据整理的的时候就能将数据分类独立的罗列出来,后期直接求和或者计数即可,根据单元格颜色求和与计数各跟大家分享3种方法
一、查找法首先我们要选择想要统计的数据区域,然后按Ctrl F调出查找的窗口,然后点击选项,点击格式选择从单元格选取格式,鼠标就会变成一个小吸管的样子,我们直接吸取想要统计颜色的单元格,然后点击全部查找,紧接着按Ctrl a选择查找到的全部数据,在工作表右下角的状态栏就会显示该颜色的个数及求和
二、宏表函数法有可能会问到宏表函数是什么,宏表函数可以说是vba的前身,但是随着vba的出现,宏表函数已经被逐渐的取代,但是现在仍然可以使用,只不过只能通过定义名称来使用
在这里我们需要用到的宏表函数是GET.CELL,他的参数一共有两个
第一参数:type_num,单元格中的信息,会根据输入的代码返回不同的单元的信息 第二参数: Reference,单元格范围
我们想要获取单元格的单色信息,就需要将GET.CELL函数的第一参数设置为63.因为代码63返回的是单元色的颜色信息
宏表函数的使用必须先对其定义名称,首选我们点击公式,点击定义名称,将名称设置为颜色,然后输入公式=GET.CELL(63,Sheet1!B2),在这里Sheet1是表格的名称,B2是统计区域的第一个单元格,设置完后点击确定
然后我们直接输入等于颜色,然后向下填充数据,就会根据不同的颜色返回不同的结果,黄色的结果为6.绿色的结果为10
最后我们使用SUMIF函数和countif函数进行求与计数即可
求和公式:=SumIF(C2:C18,6,B2:B18)
计数公式:=COUNTIF(C2:C18,6)
三、使用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
2.根据颜色计数代码
Function CountColor(ary1 As Range, ary2 As Range) Application.Volatile For Each i In ary2 If i.Interior.ColorIndex = ary1.Interior.ColorIndex Then CountColor = CountColor 1 End If Next End Function
想要使用这两个代码,我们就必须先将其粘贴进vba中,首先我们点击开发工具,选择visual basic,进入vba的编辑界面,然后点击插入,选择模块,将代码粘贴进去即可
在这里我们自定了了两个函数,根据颜色求和的函数名称是SumColor,根据颜色计数的函数名称是CountColor
这两个函数的参数都是一样的
第一参数:统计颜色的单元格
第二参数:要统计的数据区域
使用方法如下动图
以上就是今天的全部内容了,怎么样,你学会了吗?
我是excel从零到一,关注我持续分享更多excel技巧