我需要找出降水过程中的最大相对湿度值。我已经计算了每个事件的持续时间,并能够获得excel来“扫描”正在向后进行的事件。我遇到的问题是,有些事件是从前一天开始的,我不知道如何让excel扫描前一行。
下面是一个示例…

代码:
=IF(AND(Duration!BP3>0), MAX(INDIRECT(ADDRESS(3, COLUMN(C3)-Duration!BP3)):C3),0)示例:上表中的 First事件只有一个小时(L2),因此最大值自动为90。
下一个活动的持续时间为11个小时。我试图让excel找到从21z到02z的最大值。因此,BP3 = 6。由于BP3大于0,我试图通过减去持续时间来获得事件的范围(列(C3)-Duration!BP3),从而求出最大相对湿度。对于此事件,最大值为100。
问题:我得到了"#VALUE!“因为没有带有=(C3-6)的单元格。有没有办法让它也扫描上一行?VBA或python代码工作得更好吗?我对VBA和python相当陌生,所以我不知道该如何做。
发布于 2017-03-28 21:57:18
=IF(BP3<COLUMN(C3),MAX(OFFSET(C3,0,-(BP3-1),1,BP3)),MAX(MAX(A3:C3),MAX(OFFSET(X3,-1,-BP3+COLUMN(C3)+1,1,BP3-COLUMN(C3)))))如果BP3不是太大,则取C3偏移量的最大值向后。如果它太大,取两个范围的最大值:第一个范围是A3:C3。第二个范围是X3,偏移1行,返回许多列(BP3-列(C3))。
如果事件跨越两行以上,则此操作将无法工作。
https://stackoverflow.com/questions/43079740
复制相似问题