求助:如何对相邻非空白单元格求和并获取分组单元格计算结果
对相邻非空白单元格分组求和的实现方法
我来给你拆解一下怎么搞定这种相邻非空白单元格的分组求和——看你的示例,应该是想把连续的数值单元格归成一组,然后在每组的第一个单元格旁边算出这个组的总和对吧?下面给你两种实用的方法,适配不同版本的Excel:
方法一:适合所有Excel版本的传统公式组合
假设你的Quantity数据在A列(从A2开始),要在B列(Price列)显示对应组的求和结果,在B2单元格输入以下公式,然后下拉填充即可:
=IF(A2<>"",SUM(OFFSET(A2,0,0,COUNTA(A2:INDEX(A:A,MATCH(TRUE,A2:A1000="",0))-1),1)),"")
公式逻辑拆解:
IF(A2<>"", ... , ""):只有当前A列单元格非空时才执行求和,空白单元格对应B列也留空OFFSET(A2,0,0,行数,1):从当前A2单元格开始,向下扩展指定行数的区域,作为求和范围COUNTA(A2:INDEX(A:A,MATCH(TRUE,A2:A1000="",0))-1):自动计算当前组的单元格数量——MATCH找到当前行之后第一个空白单元格的位置,INDEX定位到该位置,减1后得到当前组最后一个单元格的行号,再用COUNTA统计非空单元格数
方法二:适合Excel 365/2021的动态数组公式
如果你的Excel支持动态数组,公式会更简洁直观,同样在B2输入:
=IF(A2="","",SUM(A2:INDEX(A:A,XLOOKUP("",A2:A1000,,ROW(A2:A1000)-1,1,1))))
公式逻辑拆解:
XLOOKUP("",A2:A1000,,ROW(A2:A1000)-1,1,1):精准查找当前行之后第一个空白单元格的上一行行号,也就是当前组最后一个单元格的位置INDEX(A:A, 行号):定位到当前组的最后一个单元格SUM(A2:INDEX(...)):对当前组从第一个到最后一个单元格的数值求和
小提示
公式里的A1000可以根据你的实际数据范围调整,改成更大的数值(比如A10000)也不会影响计算效率,能覆盖更多数据行。
内容的提问来源于stack exchange,提问作者Shogh a kat
相关产品推荐
相关产品推荐

