找到最大的值、第N大的值以及其他之前的值嗎? (同時忽略重複)

找到最大的值、第N大的值以及其他之前的值嗎? (同時忽略重複)

所以我有一列 A 看起來像這樣:

I
15
0
3
15
M
8
0
8
21
Q
0
5
0
0

我可以找到最大值=最大值(A1:A100) 我可以找到最小值=小(A1:A100,1)

我如何找到最大的之前的一個以及最大的之前的一個。我可以使用 Large 來呼叫第 N 個值,但是我如何知道函數計數了多少個 N 值,以便我可以知道它使用的位置指的是最後 3 個(最大的和之前的 2 個)?

忽略重複項- 在範例中最大的是21,前面的一個是15,再前面的是8。 。我正在尋找 8 作為第三大值。

下面你會發現網路上有幫助的人提供了一個資料透視表,一個陣列公式解決方案,我終於能夠做一個簡單的公式一。

如果你堅持我們擁有一切,你可以為這項工作提供 vba,否則已經足夠了。

答案1

使用資料透視表快速取得清單的重複資料刪除版本(只需將資料列新增至行標籤),然後在去重列表上使用LARGE和函數:SMALL

=LARGE(D4:D9,3)

資料透視表去重複列表

如果您願意,您可以透過刪除資料透視表來整理資料透視表累計和切換欄位標題關閉,這樣它只顯示您的重複資料刪除清單。

答案2

列中包含數據A喜歡:

在此輸入影像描述

B1進入:

=MAX(A:A)

B2輸入數組公式:

=MAX(IF(A$1:A$10<B1,A$1:A$10))

然後複製B2根據需要向下移動。

數組公式Ctrl必須使用+ Shift+輸入,Enter而不僅僅是按鍵Enter

在此輸入影像描述

答案3

有了我得到的所有很酷的幫助,它讓我思考我是否可以做資料透視表所做的事情,我想出了這個:(即使是我自己的哈哈)

=IF(COUNTIF($A$1:A1,A1)<=1,A1,"")

對感興趣的資料製作一個平行列可以解決這個問題。 (例如貼上C1並向下複製)

它提供了初始的重複資料刪除列表,您可以根據大小進行判斷。作為一個簡單的解決方案,它不應該幹擾文件中可能存在的任何不穩定內容。我個人可以沒有 vba。如果存在混合資料類型,任何意外的轉變都應該可以用 IFERROR 來控制。

答案4

@helena4 試試這個陣列公式

=LARGE(IF(A1:A15 < LARGE(A1:A15,1),A1:A15),3)

然後按Ctrl+Shift+Enter

它會忽略重複項。

相關內容