Excel:依日期找出下一個最高/最低值

Excel:依日期找出下一個最高/最低值

範例數據

在此範例資料中,按日期(降序)列出,我希望能夠按日期找到該值上次高於或低於當前值的時間。

如果當前月份是 12 月且值為 5,則上次較低是在 11 月 (4),上次較高是在 9 月 (8)。

到目前為止,我使用 MATCH/INDEX/etc 找到的解決方案將返回下一個較高值,即 August (6),因為它是下一個最接近 5 的較高值。

例如,這可以用來表示「本月的值是自 9 月以來的最高值」。

答案1

如果有動態數組公式過濾器:

=@FILTER(A3:A7,B3:B7>=B2)

=@FILTER(A3:A7,B3:B7<=B2)

在此輸入影像描述


如果沒有,那我們使用 INDEX/AGGREGATE:

=INDEX(A:A,AGGREGATE(15,7,ROW(A3:A7)/(B3:B7>=B2),1))

=INDEX(A:A,AGGREGATE(15,7,ROW(A3:A7)/(B3:B7<=B2),1))

在此輸入影像描述

答案2

這個數組(CSE)公式幾乎解決了這個問題:

在此輸入影像描述

  • 單元格 S16 中的公式:

    {=INDEX($P$16:$P$21,MAX(IF(($Q$16:$Q$21<=$Q16),$Q$16:$Q$21,0),0))}
    
  • 在儲存格 T16 中:

    {=INDEX($P$16:$P$21,MIN(IF(($Q$16:$Q$21>=$Q16),$Q$16:$Q$21,0),0))}
    

注意

  • 完成公式Ctrl+Shift+Enter

:編輯:

我想推薦這個兩步驟解決方案找到最接近的最高/最低值。

在此輸入影像描述

  • 儲存格 S20 中的陣列 (CSE) 公式:

    {=INDEX($P$16:$P$21,MATCH(MIN(IF($Q$16:$Q$21>$Q16,$Q$16:$Q$21)),$Q$16:$Q$21,0))}
    
  • 儲存格 T20 中的陣列 (CSE) 公式:

     {=INDEX($P$16:$P$21,MATCH(MAX(IF($Q$16:$Q$21<$Q16,$Q$16:$Q$21)),$Q$16:$Q$21,0))}
    

注意

  • 在 S20 和 T20 完成配方Ctrl+Shift+Enter

  • 您可以根據需要調整公式中的儲存格參考。

相關內容