【面试题】下面左表是项目对应的销量,需要把同一项目的销量在合并单元格里计算出销量总额及平均值(实现右表这样的效果)
方法一:如果不规定显示的格式,可以把项目这一列的合并单元格拆分成每一行都显示项目,然后使用数据透视表汇总得到销量总额,同理得到销量平均值,如下图所示:
具体操作步骤是,先选中所有的合并单元格,然后按【合并后居中】按钮,把合并的单元格都拆分。
然后按快捷键【ctrl G】用定位功能找到空白单元格,在A3单元格里输入公式【=A2】,同时按【ctrl enter】即可批量填充空白单元格,再选中整个表格,插入数据透视表即可。
动态过程演示如下图
方法二:如果规定了显示格式,也就是销量总额和销量平均值要和项目的合并单元格格式一致,结果要像下表这样:
如何实现这样的效果呢?
可以使用函数先计算,然后再处理格式。
在C2单元格里写上以下公式:
【=IF(A2<>"",SUM(OFFSET(B2,0,0,IFERROR(MATCH("*",A3:A$1000,0),1)))," ")】
这个公式看起来复杂,不要害怕,我们一起来看下里面包括的内容。
1)MATCH公式
结果意义:从A3起在A3:A$10000区域里,第一个不是空的单元格是第几个,也就是A2合并单元格所占行数即是A项目所占的行数,同理得到B,C,D等每个项目所占的行数。
2)IFERROR公式
3)OFFSET公式:
4)IF与SUM公式:
将公式下拉填充后得到的以下结果:
再把A列的格式复制到C列,动图演示如下:
如果再想求每个项目的平均值,则把公式的SUM函数改成AVERAGE就可以了,然后再更改格式。
代码语言:javascript复制IF(A2<>"",AVERAGE(OFFSET(B2,0,0,IFERROR(MATCH("*",A3:A$991,0),1)))," ")
最终结果如下,是不是很酷。
【总结】
1.计算合并单元格时,可以把合并的单元格拆分然后再用数据透视表功能汇总。
2.也可以使用MATCH,IFEEOR,OFFSEN,SUM,IF等公式嵌套得到结果,再粘贴格式,和原文格式显示保持一致。