请问如何按单元格颜色统计数值?(财务工具箱里的不管用)

首先需要做成公式,因为数据会变,根据数据内容颜色会不一样,从而导致应计算的合计数不一样,同时因为这个数据颜色是通过条件格式设置的,所以使用“财务工具箱”里的“按单元格颜色统计数值”是无法识别的(只能识别出“无填充颜色”)。 具体情况如下,我现在有12个月每个月一张明细表,每个月不同小组A/B/C/D等会在不同地区X/Y/Z等的销售(实际上有数十个小组),每个小组每个月只在一个地区销售并汇总金额(不同小组可能在同一地区销售)。 然后我有一张汇总表,统计A/B/C/D等小组全年总数据,然后根据每个月明细表中的不同地区,设置“条件格式“赋予不同颜色。 我们既需要不同小组每个月合计数,也需要合计每个月不同地区的合计数。 现在其他条件格式的公示表都做好了,就差一个“根据单元格填充颜色汇总数据”,“财务工具箱”里的“按单元格颜色统计”功能无法识别“条件格式”给单元格填充的颜色,统一视作“无填充颜色”。 手工按不同颜色一个一个单元格加也能做到,但是容易出现漏加,而且必须在每个明细表新数据填完后才能在总表中计算,无法提前计算。 现在遇到的问题,需要制作一个模板公式,提前录入,以方便后期数据登录之后直接生成数据。
新疆
浏览 909
收藏
2
分享
2 +1
6
+1
全部评论 6
 
恰同学少年
function test(){ CountByFillColor("F1:F3"); } function CountByFillColor(strRng){ let obj={}; for(let cell of Range(strRng)){ let c = String(cell.Interior.Color) obj[c] = obj[c] == undefined ? cell.Value2 : obj[c] + cell.Value2 } let row = ActiveCell.Row; let col = ActiveCell.Column; let n = 0; Object.entries(obj).forEach(([key,value])=>{ Cells.Item(row+n,col).Interior.Color = parseInt(key); Cells.Item(row+n,col).Value2 = value; n++; }) }
· 黑龙江省
回复
恰同学少年
我用的版本不支持动态数组。只能举个例子。根据实际需要,你再改造代码。
· 黑龙江省
回复
 
嘉禾宝宝
回答;使用填充单元格颜色计算,会不会出现颜色被修改,如填数据直接复制粘贴变了颜色,这样数据就错了:既然分组及小组已登记清楚,何不利用CTRL+T把表变成超级表,利用透视表分析数据变化或者利用PIVOTBY建立分组统计,每次增加数据可自动更新,或者把数利用智能表和多维表根据统计表建立仪表盘,制作各类分析表,每月自动更新
· 安徽省
回复
 
亂雲飛渡
亂雲飛渡

WPS寻令官

回答:看了你的描述,需要统计小组及地区数据,建议直接按小组、地区用多条件求和函数SUMIFS 求和。如果方便的话可以截图或上传文件能更好的解决问题。
· 广东省
回复
 
1
1

WPS金话筒 | WPS寻令官

回答,既然颜色是根据“地区”刷的,那么你的汇总表应该直接根据“地区”来汇总。在汇总表中,直接使用 SUMIF 或 SUMIFS 函数,筛选对应的“地区”名称进行求和。这样既稳定,又能随着数据自动更新
· 云南省
回复
 
乌鲁不齐
可以是可以 但有个问题是 改变单元格颜色 是不会触发公式计算的 即使加了 你也得手动触发一次公式计算才能计算结果
· 湖北省
回复