2017-03-28 71 views
1

我需要查找降水事件期間的最大相對溼度值。我計算了每個事件的持續時間,並且能夠很好地「掃描」事件後退。我陷入困境的問題是,有些事件在前一天開始,我不知道如何讓excel掃描前一行。Excel - 查找上一行和各種範圍大小的最大值

下面是一個例子...

Example image

代碼:

=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,我試圖通過減去持續時間來獲得事件範圍(COLUMN(C3) - 持續時間!BP3)來找到最大相對溼度。對於此事件,最大值將爲100.

問題:我得到「#VALUE!」因爲沒有=(C3-6)的單元格。有沒有辦法讓它掃描前一行? VBA或Python代碼會更好嗎?我對VBA和Python很新,所以我不知道如何去做這件事。

回答

2
=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-column(c3))。

如果事件跨越兩行以上,則這將不起作用。

+0

謝謝!我從來沒有聽說過/使用過偏移量。比間接/地址功能更好地工作 – muffint0p