簡體   English   中英

從match()返回最后一個索引值

[英]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), , ))

浮動最后11個值

怎么樣:

=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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM