我有一个看起来像这样的数组
11100100110
本质上,一个固定大小的数组,每一项都是1或0,最后一项总是等于0。
把每一组连续的1看作是一个“桶”。我想要一个公式来决定每个水桶的大小。因此,上述序列的公式输出应该是
312
作为一个数组。理想情况下,这在excel和google中都能实现。
如果您感兴趣,这是星条旗配置列表的结果,其中0在我的序列中表示条形图,1表示星星(最后的值是一个虚拟0,可以使事情更容易处理)。我要的大小,每个非空桶在一个给定的配置星星和酒吧。
谢谢,提前。
发布于 2022-01-01 12:25:47
您还可以使用使用Excel365和GS的使用频率的标准方法:
=FILTER(FREQUENCY(IF(A1:A11=1,ROW(A1:A11)),IF(A1:A11=0,ROW(A1:A11))),FREQUENCY(IF(A1:A11=1,ROW(A1:A11)),IF(A1:A11=0,ROW(A1:A11))))
发布于 2022-01-01 12:02:03
尝试:
=INDEX((JOIN(, LEN(SPLIT(A1, 0)))))
最新情况:
=INDEX(IFERROR(1/(1/SUBSTITUTE(FLATTEN(QUERY(TRANSPOSE(IFERROR(1/(1/
LEN(SPLIT(SUBSTITUTE(FLATTEN(QUERY(
TRANSPOSE(A1:K),, 9^9)), " ", ), 0))))),, 9^9)), " ", ))))
发布于 2022-01-01 12:42:02
假设A2:A9
包含数据,
=ARRAYFORMULA(QUERY(FREQUENCY(IF(A2:A9,ROW(A2:A9)),IF(NOT(A2:A9),ROW(A2:A9))),"where Col1>0",))
FREQUENCY(data,classes)
获取data
在classes
中的频率data
,如果是1
classes
(如果不是1
)QUERY
https://stackoverflow.com/questions/70551267
复制