在电子表格(GDocs或类似的)中,如何查找数字的最长运行时间?

时间:2012-07-06 10:06:18

标签: excel google-sheets

这对我来说似乎是一个微不足道的问题,但我无法正确完成。我的数据集的一部分看起来像这样

1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0    

并包含两个“运行”1(不确定这是否是正确的单词),一个长度为3,另一个长度为5。

如何使用Google文档或类似的电子表格应用程序查找最长的运行时间?

2 个答案:

答案 0 :(得分:3)

在Excel中,您可以使用单个公式来获得连续1的最大数量,即

=MAX(FREQUENCY(IF(A2:A100=1,ROW(A2:A100)),IF(A2:A100<>1,ROW(A2:A100))))

使用CTRL + SHIFT + ENTER确认

在googledocs中你可以使用相同的公式,但是使用数组法包装而不是使用CSE,即

=arrayformula(MAX(FREQUENCY(IF(A2:A100=1,ROW(A2:A100)),IF(A2:A100<>1,ROW(A2:A100)))))

假设A2:A100中的数据没有空白

答案 1 :(得分:2)

编辑:whuber的建议对我来说太简单了,不能更新此回复。可以使用简单的IF语句检查当前行是否等于1.如果是,则启动计数器(前一行+ 1),如果不是,则再次在0处启动计数器。

您只需要将B1的第一行初始化为1或0.一旦填写完其余部分,就会使用动态更新单元格公式。

所以你会开始;

A   B
1   1
1   =IF(A2=1, B1+1, 0)
1   
0   
0   
1   
1   
1   
1   
0   
0   
0   

然后填写;

A   B
1   1
1   =IF(A2=1, B1+1, 0)
1   =IF(A3=1, B2+1, 0)
0   =IF(A4=1, B3+1, 0)
0   =IF(A5=1, B4+1, 0)
1   =IF(A6=1, B5+1, 0)
1   =IF(A7=1, B6+1, 0)
1   =IF(A8=1, B7+1, 0)
1   =IF(A9=1, B8+1, 0)
0   =IF(A10=1, B9+1, 0)
0   =IF(A11=1, B10+1, 0)
0   =IF(A12=1, B11+1, 0)

这里B列的结果是;

A   B
1   1
1   2
1   3
0   0
0   0
1   1
1   2
1   3
1   4
0   0
0   0
0   0

希望逻辑可以扩展到Google Docs。