[英]Return last index value from a match()
我正在使用Excel中的時間序列數據將一些計算結果傳達給我們的程序員。 我被困試圖返回數組中最后一個最大值的索引位置。 我一直在使用match()函數,如單元格D12中所示:
= MATCH(C12,B2:B12,0)
這將返回值1,因為在數組1和7的位置處復制了126.47。 我真正想要返回的是7,最后一個最大值的位置。 我已經研究過index()和lookup()函數,但是沒有成功。 謝謝您的幫助!
編輯1:澄清一下,除了這些重復項之外,Match函數完成了我想做的90%的事情。 這是更多數據,以強調我唯一的錯誤在於重復項:
您實際上正在尋找的是偽MAXIF函數。
=MAX(INDEX(ROW($1:$11)*($B$2:$B$12=$C$12), , ))
這將返回行號(就像MATCH函數一樣在范圍內的位置)。 要從A列中檢索日期,應該是,
=INDEX($A$2:$A$12, MAX(INDEX(ROW($1:$11)*($B$2:$B$12=$C$12), , )))
可以使用SMALL函數或LARGE函數代替MAX函數來檢索中間值(如果有兩個以上)。
為自己的目的而轉錄時,請記住ROW(1:11)
是B2:B12中的位置 ,而不是工作表上的實際行。 返回的數字類似於類似的MATCH函數返回的數字。
編輯-浮動最后11個值:
要捕獲最后11個值,應從B和C列單元格范圍引用中刪除絕對行引用。
=MAX(INDEX(ROW($1:$11)*(B2:B12=C12), , ))
怎么樣:
=MAX(IF(C12=$B$2:INDEX(B:B,COUNTA(B:B)),ROW($B$2:INDEX(B:B,COUNTA(B:B)))))-1
您將需要使用ctrl + shift + enter進行數組輸入。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.