我只是在excel中使用公式,想知道如何计数所有0直到达到1,然后重新开始该过程。仅公式就能实现吗?
现在我正在尝试使用,
=COUNTIF(INDIRECT(F2:F28,0)),1)
...但是它似乎不起作用。
数据:
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
答案 0 :(得分:3)
您在此描述的内容在VBA中称为(Do) While
循环。
诚然,VBA比公式更易于处理-实际上需要几行代码。应该是您应该考虑的事情
从技术上讲,您可以使用公式伪造
Do While
。但这是 通常我不会完全推荐这种做法。
在假定条件下,数据输入在单元格F2中开始,然后在相邻列G2中开始公式
=IF(F2=0, SUM(G1, 1), 0)
并拖动整个公式。产生预期的结果
答案 1 :(得分:2)
答案 2 :(得分:1)
这似乎可以根据您的示例数据进行
=COUNTIF(F2:INDEX(F:F, IFERROR(AGGREGATE(14, 7, ROW($1:2)/(F$1:F2=1), 1), ROW(F2))), 0)
答案 3 :(得分:1)
我有一个解决方案,但这不是很优雅。也许其他人可以对此进行改进。但是这里是:
假设您的数据在A列中。
1)如果B1
是1
,请在A1
中输入0
;如果0
是A1
,请输入1
2)在B2
中输入公式=IF(A2=0,B1+1,0)
3)将上述公式一直向下拖动
4)在C1
中输入公式=IF(B1>B2,B1,"")
5)将上述公式一直向下拖动
6)C
列现在应具有所有零计数。
答案 4 :(得分:0)
您可以在列B
中使用以下公式:
=IF(A3=1,COUNTIF(A$1:A2,0)-SUM(B$1:B1),"")
从第2行开始并将其向下拖动。
答案 5 :(得分:-1)
在第一个0旁边的单元格中放入1(在我的示例中是A1,所以我在B1中放了1);
然后尝试这个= IF(A2 = A1; B1 + 1; 1)