需要对最后一列包含 0 之后的 16 列求和

需要对最后一列包含 0 之后的 16 列求和

例子:

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2

我想从第十七列开始,对数字进行求和,直到最后一个 1(16 列)。但是,对于第二个 1 以及之后的所有内容,我不希望有任何求和,因为它不符合前面有零的条件。我使用的是SUMIF,但是当我尝试将其扩展到我的工作表上时,它继续求和,例如 - SUMIF(A1:A16, "=0", A17:A33),对于我的第二个 1,我仍然会得到一个非零值。

答案1

我真的不确定这是否是你想要的,但是情况如下:

在 中B2,使用以下公式:

=IF(AND(SUM($A1:A1)=0,B1>0),SUM(B1:Q1),"")

并填充右侧

你最终应该得到如下结果:

在此处输入图片描述

答案2

这将找到范围内第一个不存在的列0,然后对接下来的 16 列求和。

=SUM(INDEX(A1:AH1,MATCH(0,A1:AH1)+1):INDEX(A1:AH1,MIN(MATCH(0,A1:AH1)+16,COLUMNS(A1:AH1))))

MATCH(0,A1:AH1)0返回当前单元格所在位置且下一个单元格大于的相对列号0。我们在范围开头加 1,在范围结尾加 17。

在此处输入图片描述

答案3

我想建议一些使用SUMIF&SUMPRODUCT函数的技巧方法:

怎么运行的:

  • 两种方法都需要辅助值,134在 Row 中1(检查屏幕截图)。

在此处输入图片描述

  • 单元格中的公式AV3:

    =SUMIFS(N2:AU2,N1:AU1,">=17",N1:AU1,"<=32")
    
  • 在单元格中输入此公式AV4:

    =SUMPRODUCT(SMALL(N2:AU2,{17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32}))
    

如果您正在处理庞大的数据集,那么您可以使用这个公式。

=SUM(INDEX(N2:AU2,0,COLUMNS(N2:AU2)-(L$6-3)):INDEX(N2:AU2,0,COLUMNS(N2:AU2)))
  • 单元格L6进行计数1s,最好在单元格中使用此公式L6

    =COUNTIF(N2:AU2,1)

  • 您可以根据需要调整公式中的单元格引用。

相关内容