2015-12-02 122 views
-1

問題與標題中相同。需要注意的是LARGE(range, k)並沒有告訴我的價值的位置,並試圖尋找它使用INDEX可以在副本的存在失敗。有另一種方法嗎?如何在Excel中找到範圍的第K個最大值的位置?

+1

所以你要的所有位置「使用索引可以在副本的存在失敗尋找它」? – 2015-12-02 12:33:25

+0

解決方法是使用LARGE(range,k)和任意數量的可以在SO上找到的「返回多個結果」方法的組合。例如,在這裏:http://stackoverflow.com/questions/26424226/excel-return-multiple-matching-values-from-a-column-horizo​​ntally-in-one-row –

+0

@RC:並非所有*的*他們,但我需要不同的地點爲不同的k。 – Mehrdad

回答

-1

如果你使用一列,然後鍵入=IFERROR(RANG.eq(K2;"range of K")+SUMPRODUCT(--(K2=K$2:K$74"ex");--(K2<K$2:K$74));"")和一列=IFERROR(COUNTIFS(M2"new column":$M$74;M2)+M2-1;"")什麼。 之後,以K所有數字將介於即使等於,你可以使用LARGE

1

根據原始數據和無論你是在一個位置,修改工作簿,一個方法是使用一個「助手列「來爲您的數據添加一個非常小的行依賴值,例如行數除以1000000,從而爲您提供唯一值。只要附加值不大於數據值中最小的真實差異,它就不會改變數據的排名順序,但它確實使其具有獨特性,並具有相對「簡單」的優點。

screenshot from an Excel spreadsheet demonstrating this technique

在這個例子中B3:B17主要包含整數值,一對」 0.5" 級分,具有一定的重複。我已經將C3:C17設置爲助手列,我在其中添加並調整行號* 0.0000001的值。由於真實數據中的最小步驟變化比最大調整值大得多,所以不存在不正確排序的風險 - 只有在原始數據完全相同的情況下,排序現在基於表格中的位置。

列F列出了最大的幫助器值(例如單元格F3公式"=LARGE($C$3:$C$17,E3)"),列G找到該值所在的行(單元格G3公式"=MATCH(F3,C:C,0)"),然後您的輸出表使用此行數查找真正的數據。

+0

這是一個聰明的黑客,但你是否基本上說沒有其他解決方案? – Mehrdad

+0

不,但它具有易於實施的好處,因爲「排名調整」不會超出數據中所需的精度。 這真是一兩個問題 - 從非唯一數據確定獨特的名次,然後確定位置。 還有其他方法問題的第一部分不需要幫手列,如看芯片皮爾遜的網站[鏈接](http://www.cpearson.com/excel/Rank.aspx),但你仍然需要解決地點,我懷疑這是一個尷尬的部分。 –

相關問題