首页 > 解决方案 > 计算一个范围内的序列数

问题描述

我想计算数据集中的序列数。每当值从零变为正或从正变为零时,就会开始一个新序列。

数据代表一天中每个小时的 mm 雨一个条目。如果开始下雨,则开始新的序列,如果停止下雨,则也开始新的序列。在某些日子里,它一直在下雨(1 序列下雨,0 序列干燥)。在其他日子它将是干燥的(0 序列下雨,1 序列干燥)。其他日子将有 X 序列下雨和 Y 序列干燥(X 和 Y 相差 0 或 1)。

示例:范围 (N1:N25) 包含

RH
0
0
0
0
0
0
1
3
9
2
0
0
0
0
0
0
2
0
0
0
0
0
0
0

使用矩阵公式,我可以计算最长的非零序列,即 4,通过

=MAX(FREQUENCY(IF($N$2:$N$25>0,ROW($N$2:$N$25)),IF($N$2:$N$25<=0,ROW($N$2:$N$25)))

但我无法计算非零序列的数量为 2,也无法计算序列的总数为 5。

我怎样才能做到这一点?

我在 Stackoverflow 上寻找答案,但找不到

标签: excel-formula

解决方案


要获取非0分组的计数:

=SUMPRODUCT(--(FREQUENCY(IF($N$2:$N$25<>0,ROW($N$2:$N$25)),IF($N$2:$N$25=0,ROW($N$2:$N$25)))>0))

要获取0分组计数:

=SUMPRODUCT(--(FREQUENCY(IF($N$2:$N$25=0,ROW($N$2:$N$25)),IF($N$2:$N$25<>0,ROW($N$2:$N$25)))>0))

然后你可以把它们加在一起。


推荐阅读