返回列表 上一主題 發帖

怎麼用函數求出第三大的數 ?

回復 16# zz5151353

拍手叫好.gif
原來FREQUENCY的bins_array是不需要連續數值及單一性
這函數很少去用他值得研究看看
學海無涯_不恥下問

TOP

解的好,學習了
知之為知之,不知為不知,誠實也!

TOP

gong 版主
還是可以用回原來的 FREQUENCY 函數

{=LARGE(IF(FREQUENCY(A1:A100,A1:A100),A1:A100),3)}
300 字節以內
不支持自定義 Discuz! 代碼

TOP

本帖最後由 gong 於 2010-7-7 00:05 編輯

{=INDEX(A2:A100,MATCH(LARGE(IF(ISNUMBER(MATCH(ROW(1:100),RANK($A$2:$A$100,$A$2:$A$100,1),0)),ROW(1:100),0),3),RANK($A$2:$A$100,$A$2:$A$100,1),0))}

gong.rar (4.76 KB)

知之為知之,不知為不知,誠實也!

TOP

我也知道這樣有點偷雞
用函數還真不好玩
只能說樓主出的題目都挺有深度
值得來學習及動動腦
知之為知之,不知為不知,誠實也!

TOP

回復 12# gong


    若C欄中的數值很大時如超過65536
恐怕就無法使用此法了
學海無涯_不恥下問

TOP

不曉得這樣合用嗎
{=LARGE(IF(FREQUENCY(A2:A17,ROW(1:99)),ROW(1:100),0),3)}

Book1.rar (2.13 KB)

知之為知之,不知為不知,誠實也!

TOP

应该是在没有确定错误的情况下才使用on error
学习

TOP

dictionary物件要使用add方法可配合exists先檢查是否索引值已經存在
個人並不贊同使用on error陳述式來避開錯誤
只有在不確定錯誤產生狀況才使用on error resume next
  1. Function maxk(rng As Range, k As Integer)
  2. Set d = CreateObject("scripting.dictionary")
  3. Dim rngg As Range
  4. For Each rngg In rng
  5. If d.exists(rngg.Value) = False Then d(rngg.Value) = ""
  6. Next
  7. maxk = Application.WorksheetFunction.Large(d.keys, k)
  8. End Function
複製代碼
學海無涯_不恥下問

TOP

本帖最後由 wqfzqgk 於 2010-7-6 20:54 編輯

回復 8# wqfzqgk


    我没有看你的程序,我的那个不加不行,討論不重複清單中也可以用个来实现
学习

TOP

        靜思自在 : 【是否發揮了良能?】人間壽命因為短暫,才更顯得珍貴。難得來一趟人間,應問是否為人間發揮了自己的良能,而不要一味求長壽。
返回列表 上一主題