Python Excel-使用上一行和各种范围大小查找最大值

Python Excel-使用上一行和各种范围大小查找最大值,python,excel,vba,max,Python,Excel,Vba,Max,我需要找到降水事件期间的最大相对湿度值。我已经计算了每个事件的持续时间,并且能够让excel向后“扫描”事件。我遇到的问题是,有些事件是在前一天开始的,我不知道如何让excel扫描前一行 这里有一个例子 代码: =IF(AND(Duration!BP3>0), MAX(INDIRECT(ADDRESS(3, COLUMN(C3)-Duration!BP3)):C3),0) 示例:上表中的第一个事件只有一小时(L2),因此最大值自动为90 下一个活动的持续时间为11小时。我试图让exce

我需要找到降水事件期间的最大相对湿度值。我已经计算了每个事件的持续时间,并且能够让excel向后“扫描”事件。我遇到的问题是,有些事件是在前一天开始的,我不知道如何让excel扫描前一行

这里有一个例子

代码:

=IF(AND(Duration!BP3>0), MAX(INDIRECT(ADDRESS(3, COLUMN(C3)-Duration!BP3)):C3),0)
示例:上表中的第一个事件只有一小时(L2),因此最大值自动为90

下一个活动的持续时间为11小时。我试图让excel找到21z到02z的最大值。所以BP3=6。由于BP3大于0,我试图通过减去持续时间来获得事件的范围(第(C3列)-持续时间!BP3),从而找到最大相对湿度。对于此事件,最大值为100


问题:我得到“#值!”,因为没有带=(C3-6)的单元格。有没有办法让它也扫描上一行?VBA或python代码会更好吗?我对VBA和python相当陌生,所以我不知道该怎么做

=IF(bp3谢谢!我以前从未听说过/使用过偏移量。比间接/地址函数工作得更好
=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)))))