首页 > 解决方案 > 气候:计算连续降雨天数

问题描述

我有一个数据列雨量,并且在那个日期有一列;我打算在单独的列中从中提取连续的雨天。使用下面的公式,我提取了 Consecutive :

columnF=IF(B2>0,SUM(F1)+1,0)

但结果在一列中,我无法像附图中那样将它们分开(参见所需的结果)。如果我们想在单独的列中提取连续降雨怎么办?

我的结果:

期望的结果:

标签: excelvba

解决方案


根据 Ted D 的评论...第二个辅助列的可能公式是(在单元格中G2):

=IF(F2=0,0,MATCH(0,F3:F999,0)-1+F2)

这会在我们的行下方0的计数器列 ( F) 中查找第一个(向下查找大约 1000 行 -999可以酌情更改)。我们使用它加上我们当前的计数器来给我们块的大小。

从那里,我们可以制作带有dx1day等标题的列,并用公式填充它们:

=IF($G2=VALUE(SUBSTITUTE(MID(H$1,3,999),"day","")),$F2,"")

dx1day这是从列顶部解析数字(在本例中H)(如果您仅使用数字和自定义格式进行解析,则可以保存该位*)。然后我们检查当前的“块大小”值(在列中G)是否与标题中的相同。如果是,我们复制计数器值(从列F),否则为空白。

$G2您可以通过替换-来摆脱第二个帮助列,(IF($F2=0,0,MATCH(0,$F3:$F999,0)-1+$F2))但如果让理解(和调试 :-) 变得更加令人头疼

*这样做的方法是使用“类型”进行自定义格式"dx"0"day"......然后公式变为=IF($G2=H$1,$F2,"")=IF((IF($F2=0,0,MATCH(0,$F3:$F999,0)-1+$F2))=H$1,$F2,"")用于无第二辅助列版本


推荐阅读