根据主题对列中的数字进行计数

时间:2018-07-11 14:55:26

标签: excel vba excel-formula

我只是在excel中使用公式,想知道如何计数所有0直到达到1,然后根据主题编号重新开始该过程。如果仅凭公式无法做到这一点,我如何为此编写VBA代码?

现在我正在尝试使用,

=IF(OR(F4=0,F3=1),"",COUNTIFS($A$2:A2, $A$2,$F$2:F2,0)-SUM($I$2:I2))

我在I3中输入的内容,然后更改了每个主题编号的COUNTIFS($A$#:A#, $A$#...)部分。

这似乎可以用于最后一个分组,因为它不会在下一个主题之前输出数字。

示例数据:

subid         yes       number_yes(output)
1             0
1             0
1             0            3
1             1
1             0            1
1             1
1             0
2             0
2             0            2
2             1
2             0
2             0
3             
etc.

2 个答案:

答案 0 :(得分:1)

空白单元格在数值上为零,这是您接受的条件之一。区分空白和零值。

=IF(and(f4<>"", OR(F4=0,F3=1)),"",COUNTIFS($A$2:A2, $A$2,$F$2:F2,0)-SUM($I$2:I2))

答案 1 :(得分:0)

基于@Jeeped答案。如果您使用-SUMIF($A$2:A2,A3,$I$2:I2)而非-SUM($I$2:I2),则无需为每个主题编号调整此部分。只需在I3中使用以下公式并将其复制下来即可。

=IF(AND(F4<>"",OR(F4=0,F3=1)),"",COUNTIFS($A$2:A3,A3,$F$2:F3,0)-SUMIF($A$2:A2,A3,$I$2:I2))

请注意,我还将COUNTIFS中的第二个参数更改为A3