
我正在嘗試找到一個 MAX 數字及其相關年份。
- 2000-2010 年 (A1:J1)
- 數據(A2:J2)
- DATA 的 MAX 放置在 A3 中
我可以使用 INDEX/MATCH 給我第一個最大年份,它與資料的最大值相匹配,但這個最大值可能會出現在多年(例如 2002、2005、2009)。
B3 的第一個最高年份
我在C3 中有一個公式,現在嘗試使用(OFFSET, 0, B3) 開始另一個索引匹配,以使搜尋在第一個最大年份之後開始,但由於某種原因,它給了我它遇到的第一年。
=INDEX(A1:J1,MATCH(A3,OFFSET(A2:J2,0,MATCH(B3, A1:J1,0))))
我已經四捨五入了我的數字,因此它們有一位小數點,並且我知道我的範圍 A2:J2 中有兩個匹配的 MAX 資料數字。
更新:希望能更清楚解釋的圖像。
謝謝邁克爾
答:
我按照下面評論中的阿卜杜勒的連結找到了一個非常符合我要求的公式。
=IFERROR(INDEX(A1:K1,小(IF(A2:K2=$A$3,COLUMN(A2:K2)-COLUMN(INDEX(A2:K2,1,1))+1),nth))," ”)
第 n 個單元格是 2 號。
希望這對人們有幫助。和精捷是一個很棒的網站。強烈推薦。
答案1
您可以使用僅在 B3、C3 等中輸入的公式來執行此操作。
在儲存格 B4 中輸入:
=MATCH($A3,OFFSET($A2:$K2,0,A4),0)+A4
這將返回第 2行中第一次出現19.06
的列號。現在在儲存格 B3 中輸入:8
11
#N/A
=INDEX($A1:$K1,B4)
並將公式複製到右側。您將獲得發現最大值的年份:2005
,2007
然後2010
在#N/A
其餘儲存格中獲得。
如果您不想看到這些#N/A
值,可以使用IFERROR
函數將它們變更為空白。
答案2
我喜歡布萊克伍德的答案,因為它不需要陣列公式。但是,如果您無法遵守輔助行,或者需要僅使用一個公式來完成此操作,您可以在 A4 中使用它並填充到右側:
=IFERROR(SMALL(IF($A$2:$K$2=$A$3,$A$1:$K$1),COLUMN()),"")
它是一個陣列公式,因此必須使用 來輸入CTRL Shift Enter,而不僅僅是Enter。
這是它的工作原理。 IF() 產生一個年份數組,其中資料與 A3(資料的最大值)匹配,而其他位置則為 FALSE:
{False;False;False;False;False;2005;False;2007;False;False;2010}
然後 SMALL() 使用列號作為索引從該數組中選擇第一個、第二個、第三個等最小值。它僅檢查數字並忽略數組中的“False”值。
最後,IFERROR() 將所有 #N/A 錯誤替換為空白。