合并单元格下的求和问题
来源:Excel应用之家
小伙伴们,今天要向大家介绍一个合并单元格下的求和问题。请看下图。
有一个项目的4块区域,分别标注了规划面积和实际面积。现在要求根据不同的区域来统计规划面积和实际面积之和。
方法一
在单元格B2中输入“=SUMPRODUCT((LOOKUP(ROW($A$3:$A$14),IF($A$3:$A$14<>'',ROW($A$3:$A$14)),$A$3:$A$14)=$J17)*SUBTOTAL(9,OFFSET($A$1,ROW(INDIRECT('2:'&(COUNT($B:$B)+1))),3*COLUMN(A1),1,3)))”,三键回车,并向右下拖曳即可。
思路:
利用LOOKUP函数IF函数得到一个内存数组,其形式为{'甲';'甲';'甲';'甲';'乙';'乙';'乙';'丙';'丙';'丙';'丙';'丁'},并与单元格J17进行判断,得到如下的内存数组{TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE}
SUBTOTAL部分得出求和区域,其中3*COLUMN(A1)表示向右移动的列数,3列和6列
上述两部分相乘后得到正确结果
但这个确实是一个比较复杂的公式。下面,我们将有更惊艳的公式哦!
方法二
此方法的前半部分是利用的OFFSET函数进行数据偏移,由于比较简单,不再做过多的解释了。
在单元格B2中输入“=SUM(OFFSET($A$1,MATCH($J17,$A:$A,)-1,3*COLUMN(A1),MAX(SUM(MATCH($J17:$J18&0,$A$3:$A$15&0,)*{-1;1}),1),3))”,三键回车并向右下拖曳。
思路:
我们着重介绍公式的后半部分。MATCH函数部分利用了错位相减的思路求得求和区域的范围
$J17:$J18&0,$A$3:$A$15&0部分,链接了“0”避免了向下拖曳时发生数据错误
方法三
此方法和方法二相类似,都是在确定求和区域时有惊艳的表现。
选中单元格区域B2:C5,输入“=SUM(OFFSET(D1,MATCH(J17:J20,A:A,)-1,{0,3},IFERROR(MATCH(J18:J21,A:A,)-MATCH(J17:J20,A:A,),99),3))”,三键回车并向右下拖曳。
思路:
同样,在确定求和区域时利用的错位相减的原理。只不过,这一次是利用两次MATCH函数完成的。
方法四
这是一个纯数学的方法。
在单元格B2中输入“=SUM(OFFSET($A$1,MATCH($J17,$A:$A,)-1,COLUMN(A1)*3,12,3))-SUM(K18:K$21)”,并向右下拖曳即可。