想在excel里按单元格填充色求和?最稳最快的办法,就是先用名称公式提取出填充色的专属编号,再用sumif按编号汇总对应金额。这次演示用的是microsoft 365版本的excel,而且这个方法只适用于手动上色的数据;如果颜色是条件格式自动生成的,结果会不准,需要换筛选或者vba方案。
第一步:准备带颜色的金额
先把所有要统计的金额整理到同一列,比如示例里的B2:B15区间即可。这里要注意:要统计的颜色得直接涂在金额单元格上,别只给旁边的姓名列上色——后面取色编号的时候,Excel只认金额单元格本身的填充色。

第二步:创建取色名称
点击顶部的「公式」选项卡,打开名称管理器,新建一个名称:名称栏填 ColorCode,引用位置输入 =GET.CELL(63,Sheet1!$B2)。这里的 $B2 很关键:只锁B列、不锁行号,后面向下填充的时候,才能依次读取B2、B3、B4……每一行的颜色。

第三步:填充颜色编号
在C2单元格输入 =ColorCode,再向下拖填充柄到C15。填充完成后会看到,不同填充色对应不同的数字,比如橙色可能对应40,黄色是6,没填色的单元格默认返回0。这个编号只是用来区分颜色的,和金额大小没有关系。

第四步:用 SUMIF 汇总
找个空白单元格输入 =SUMIF(C2:C15,40,B2:B15),就能把C列里编号为40的所有对应金额加总。要算黄色的总和也不复杂,直接把公式第二个参数改成黄色对应的编号即可,比如 =SUMIF(C2:C15,6,B2:B15)。

公式语法和参数说明
整套方法其实只用到两个函数,一个负责提取颜色编号,一个负责按编号求和。
本文档主要介绍如何通过python对office excel进行读写操作,使用了xlrd、xlwt和xlutils模块。另外还演示了如何通过Tcl tcom包对excel操作。感兴趣的朋友可以过来看看
| 公式 | 语法 | 作用 |
|---|---|---|
| GET.CELL | =GET.CELL(63,引用单元格) |
返回引用单元格的填充色编号,不能直接当普通工作表函数用,得放在自定义名称里才能生效。 |
| SUMIF | =SUMIF(条件区域,条件,求和区域) |
在颜色编号列里匹配指定编号,再把对应行的金额加起来。 |
| 参数 | 本例填写 | 填写规则 |
|---|---|---|
| GET.CELL 的 63 | 63 |
代表读取填充色编号,是固定写法,不要改成其他数字。 |
| 引用单元格 | Sheet1!$B2 |
B是金额所在列,行号前面不加美元符号,才能往下逐行读取每一行的单元格。 |
| SUMIF 条件区域 | C2:C15 |
就是放颜色编号的辅助列区间。 |
| SUMIF 条件 | 40 |
要统计的颜色对应的编号,先从辅助列里确认好再填。 |
| SUMIF 求和区域 | B2:B15 |
是真正需要相加的金额所在区间。 |
常见出错点排查
如果C列所有单元格都显示同一个编号,大概率是名称公式里的单元格写成了 $B$2,行号被完全锁死了,改回 $B2 再重新填充。改完单元格颜色后结果没更新也很正常,GET.CELL不会自动触发刷新,按一下键盘上的 F9 手动重算,或者重新拖一遍辅助列的填充公式即可。
如果使用 WPS 或旧版 Excel,需要先确认是否支持这种自定义名称公式。保存工作簿的时候,建议选 .xlsx 或者 .xlsm 格式,不要存成CSV,CSV格式不会保留单元格填充色,否则前面的颜色信息不会保留下来。
扩展示例:同时统计两种颜色
如果橙色和黄色的总和都要算,也不用重新做表,分别引用对应编号写公式就行。橙色编号是40,就写 =SUMIF(C2:C15,40,B2:B15);黄色编号是6,就写 =SUMIF(C2:C15,6,B2:B15)。如果想直接把两种颜色的金额加总到一起,公式可以写成 =SUMIF(C2:C15,40,B2:B15)+SUMIF(C2:C15,6,B2:B15)。
最后核对辅助列:颜色编号和金额列的行号必须一一对应,汇总的区域也要从同一行开始对齐,只要三个区间没对错位,按颜色求和基本不会出错。










