确定相等项数组的大小 Excel
Determine Size Of Array of Equal Items Excel
我有一个看起来像这样的数组
11100100110
本质上,一个固定大小的数组,每一项为 1 或 0,最后一项始终等于 0。
将每组连续的 1 视为一个“桶”。我想要一个公式来确定每个桶的大小。所以上面序列的这个公式的输出应该是
312
作为数组。理想情况下,这适用于 excel 和 google 工作表。
如果您有兴趣,这是 stars and bars 配置列表的结果,其中我序列中的 0 代表条,1 代表星(最终值是虚拟 0 以使事情更容易工作和)。我想要在给定的星形和条形配置中每个非空桶的大小。
提前致谢。
尝试:
=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)), " ", ))))
您也可以将标准方法与频率一起使用,它将与 Excel 365 和 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))))
假设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
中的频率
- 如果
1
,则将行号顺序设为data
- 如果不是
1
,则将行号顺序设为classes
QUERY
去掉零
我有一个看起来像这样的数组
11100100110
本质上,一个固定大小的数组,每一项为 1 或 0,最后一项始终等于 0。
将每组连续的 1 视为一个“桶”。我想要一个公式来确定每个桶的大小。所以上面序列的这个公式的输出应该是
312
作为数组。理想情况下,这适用于 excel 和 google 工作表。
如果您有兴趣,这是 stars and bars 配置列表的结果,其中我序列中的 0 代表条,1 代表星(最终值是虚拟 0 以使事情更容易工作和)。我想要在给定的星形和条形配置中每个非空桶的大小。
提前致谢。
尝试:
=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)), " ", ))))
您也可以将标准方法与频率一起使用,它将与 Excel 365 和 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))))
假设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
中的频率
- 如果
1
,则将行号顺序设为 - 如果不是
1
,则将行号顺序设为 QUERY
去掉零
data
classes