2022-11-11 22:25来源:m.sf1369.com作者:宇宇
Excel要想统计相同颜色的数量,也就是说我们在Excel表里面对单元格都进行了不同颜色的填充,而我们需要对这些相同颜色的单元格分别的去统计出来一个数值,那么我们就给他复制粘贴到一个新的工作表当中,然后我们保留需要选的一种颜色的单元格,然后将其他的全部进行删除,然后再给他排序,这样从数字一到底下就可以看出来是多少个了。
案例:
如果我们需要对每个人的奖金求和,即跨表调用并求和,怎么实现?
解决方案:
方案1 . 假如总表的人员排名跟所有月表的人员排名完全一致,可以用以下公式:
=SUM('*'!B2)
回车后,公式会自动变成 =SUM('1月:3月'!B2),即读取所有 sheet 的 B2 单元格并求和
* 请注意:这个方法很简单,但是对表格要求比较高,但凡人员列稍有差异,结果就出错。比如,郭德纲 2 月休假,没有奖金,2 月的表里就没有放他的名字,本方案就不适用
方案 2. 输入以下数组公式,按 Ctrl +Shift + Enter 生效:
=SUM(SUMIF(INDIRECT(ROW($1:$3)&"月!A:A"),A2,INDIRECT(ROW($1:$3)&"月!b:b")))
公式翻译:
INDIRECT(ROW($1:$3)&"月!A:A"):读取 sheet”1 月“到”3 月“的 A 列值,即姓名
sumif(...,A2,INDIRECT(ROW($1:$3)&"月!b:b")):将上一步读取的值与 A2 的值比较,如果相等(即姓名相同),则读取 sheet”1 月“到”3 月“的 B 列值,即奖金
最后用 Sum 对读出的每个月奖金值求和
可以利用按颜色筛选来统计有颜色的单元格数量。软件版本:Office2007方法如下:
1.统计A列中有颜色的单元格个数:
2.选择A列,点击数据中的筛选:
3.点击筛选,按颜色筛选,选择颜色:
4.这样就筛选出带颜色的单元格了,可以在下面看到具体的数量:
一、查找法
首先我们要选择想要统计的数据区域,然后按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
这两个函数的参数都是一样的
第一参数:统计颜色的单元格
第二参数:要统计的数据区域
使用方法如下动图
准备好要统计的表格
打开查找与替换对话框,点击查找内容后面的“格式”按钮,填充,背景色中选中要统计的颜色,确定,返回对话框。
在“替换为”框中输入一个字母,注意不同颜色使用不同字母,点击全部替换。用同样的方法将另一种颜色单元格内容替换为字母,直到所有颜色替换完成。
在需要统计某一行或某一列中某颜色单元格数目的单元格中输入对应的COUNTIF公式,如“=COUNTIF(B$2:B$17,"a")”,注意根据实际情况选择单元格范围和需要统计的字母。
然后拉动含公式的单元格就可以统计所有行列中某颜色的单元格数目了
这个需要自定义函数 Function colorcount(y As Range, rng) Application.Volatile Dim c As Double Dim x As Range For Each x In rng If
相信很多朋友都有在使用excel表格,那么大家在使用excel中,经常会遇到如何按单元格颜色分类汇总数据?关于这个问题,小编就和大家分享一下我的经验,希望能够帮助到大家。
1将对应颜色的进行汇总,如图所示。
2选中B2单元格-【公式】-【名称管理器】-【新建】建立名称管理。
3在单元格中输入=颜色即可,然后通过拖拽的方式下拉。
4使用数据透视表进行汇总,颜色字段为分类项,其他为计算项。
5重新新建一个颜色名称管理器和前面一样。
6使用sumif条件求和即可解决问题得出按颜色汇总。
方法如下:
1.统计A列中各种颜色单元格的个数:
2.选择B1单元格,利用公式中的名称管理器,新建一个“颜色”为名的名称,引用位置公式如下图所示:
3.在B1中输入=颜色,并往下填充:
4.然后建立辅助列,得到每种颜色和相应的=颜色的数值:
5.然后利用countif就可以得到每种颜色单元格的个数:
注意实现:此处为公式法
还可以利用颜色筛选法(操作简单,但是过程复杂)
或者VBA的方法(代码稍难,但是操作简单)等等统计颜色单元格的个数
1、首先看表,有些单元格只有颜色标准,没有什么特别之处,所以你不能使用内置函数对带有颜色标签的单元格进行统计分析。
2、选择E2单元格,然后单击菜单栏“公式” - “定义名称”以打开“新名称”对话框。
3、在“新名称”对话框中,首先创建一个新名称“YSTJ”,输入位置“= get.cell(63,b2)* now()^ 0”,然后单击“确定”。 get.cell函数可以获取有关指定单元格的一些信息。参数“63”是返回指定单元格填充颜色的代码。
now()函数是一个volatile函数,now()^ 0的结果是1.您可以通过乘以结果而不改变结果来乘以结果。当单元格发生变化时,可以随时刷新公式以获得新公式。结果。
4、在E2单元格中输入“= YSTJ”(即新创建的名称),按Enter键得到结果3,即红色填充码为3。通过拖动填充手柄将E2单元复制到E2:G12区域。 B2:D12区域单元填充颜色的代码对应于E2:G12区域的“映射”。使用辅助区域E2:G12,我们可以计算B2:D12区域。
5、例如,计算红色单元格的数量:在单元格I2中输入“= COUNTIF($ E $ 2:$ G $ 12,3)”并得到6的结果。计算绿色单元格值的总和:在I3单元格中,输入:“= SUMPRODUCT(B2:D12,(E2:G12 = 10)* 1)”(绿色填充码为10),结果为330。
6、因为使用了宏表函数,所以当工作表用完时,它应该保存为“启用宏的工作簿”文件格式,并且允许在打开宏时启用它。