问与答99:如何根据组合条件求和?
excelperfect
Q:如下图1所示的数据排列,每组数据都由“月份、分类、字母、数值”组成,但是月份在单独的行,其他的数据分布在各行中且存在重复。
图1
现在,要求每组数据中各字母对应的数值之和,如下图2所示。
图2
怎么使用公式根据单元格区域B2:G11中的数据得到单元格区域J14:P15中的值?
A:有多个公式可以实现。
公式1:在单元格J14中输入公式:
=SUMIFS(OFFSET($A$3:$A$11,0,MATCH($I14,$B$2:$G$2,0)+2),OFFSET($A$3:$A$11,0,MATCH($I14,$B$2:$G$2,0)+1),J$13)
然后向左向下复制到单元格区域J14:P15。
公式2:在单元格J14中输入数组公式:
=SUM(IF(($B$2:$E$2=$I14)*($C$3:$F$11=J$13),$D$3:$G$11,''))
然后向左向下复制到单元格区域J14:P15。
公式3:在单元格J14中输入公式:
=SUMPRODUCT(($B$2:$E$2=$I14)*($C$3:$F$11=J$13),$D$3:$G$11)
然后向左向下复制到单元格区域J14:P15。
这三个公式都能实现想要的结果,只是复杂程度不同。公式的运行原理相对来说不是很复杂,你可以结合“公式求值”功能来自已研究。
当然,我们也可以先对单元格区域B2:G11中的数据进行整理,使得每行中都包含月份、分类、字母和数值,这样就可以使用数据透视表来实现。此外,也可以使用VBA代码来获得相同的结果。有兴趣的朋友可以试试。
赞 (0)