在电子表格(GDocs或类似的)中,我怎样才能找出最长的一个数字?

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

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

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

如何使用Google文档或类似的电子表格应用程序来查找这些运行中最长的一个?

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

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

用CTRL + SHIFT + ENTER确认

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

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

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

编辑:whuber的build议是太简单,我不更新此响应。 我们可以使用一个简单的IF语句来检查当前行是否等于1.如果是,则启动一个计数器(前一行+1),如果不是,则以0再次启动计数器。

您只需要将B1的第一行初始化为1或0.使用单元格公式的dynamic更新,一旦它写入一次,其余部分将被填充。

所以你会开始

 AB 1 1 1 =IF(A2=1, B1+1, 0) 1 0 0 1 1 1 1 0 0 0 

然后填写;

 AB 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列的结果是

 AB 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。