问与答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)

相关推荐