基于某些原因,图 7.71 中的业绩使用多种颜色加以标示,现要求对不同颜色的区域分类汇总,Excel如何才能实现?

Excel 能按单元格背景色分类求和吗?-Excel22

图7.71 用颜色标示的业绩表

解题步骤

Excel的所有工作表函数都无法识别颜色,只有早期版本的宏表函数get.cell可以做到,因此本例使用get.cell函数搭配SUMIF函数解题,具体步骤如下。

1.选择C2单元格,按组合键<Ctrl+F3>,弹出“名称管理器”对话框。

2.单击“新建”按钮弹出“新建名称”对话框,将名称设置为“颜色”,将引用位置设置为“=get.cell(63,B2)”,设置界面如图7.72所示。

Excel 能按单元格背景色分类求和吗?-Excel22

图7.72 新建名称“颜色”

3.单击“确定”按钮,返回工作表界面。

4.在C1中输入“颜色”,在C2中输入公式“=颜色”,然后双击C2的填充柄从而取得B2:B11区域中每个单元格的颜色编码,效果如图7.73所示。

5.在F2单元格中输入公式“=SUMIF($C$2:$C$11,颜色,$B$2:$B$11)”,公式的结果是无背景色的业绩之和。

6.将F2单元格的公式向下填充到F4,公式会分别计算出无色、红色和黄色三种颜色的业绩之和,效果如图7.74所示。

Excel 能按单元格背景色分类求和吗?-Excel22

图7.73 识别数据源中的颜色编码

Excel 能按单元格背景色分类求和吗?-Excel22

图7.74 对所有背景色的业绩分类汇总

知识扩展

1.只要使用了宏表函数,工作簿就不能保存为xlsx格式,否则定义的名称会自动丢失,从而导致公式计算出错。

2.get.cell函数的第一参数是63时表示计算单元格的颜色编码,0表示无色、3表示红色、6表示黄色、55表示蓝色、50表示绿色……get.cell函数的第二参数表示要在其中提取颜色的单元格,只能是单个单元格。

3.定义名称“颜色”前选择了 C2,名称的引用对象是“=get.cell(63,B2)”,公式的计算对象B2是相对引用,位于C2左方,因此名称“颜色”的含义就是提取左边一个单元格的颜色编码。

在C2单元格输入公式“=颜色”可以生成B2的颜色编码,在F2单元格输入公式“=颜色”则可以生成E2的颜色编码。

4.C 列作为公式“=SUMIF($C$2:$C$11,颜色,$B$2:$B$11)”的辅助区域,它提供了参考数据,没有C列的值就无法计算出业绩汇总,因此C列的值不能删除。如果觉得C列多余,可以隐藏C列。