返回列表 上一主題 發帖

[發問] 找出各群組的眾數(不含0)

回復 1# PJChen

試試看附件
眾數.zip (8.31 KB)
學海無涯_不恥下問

TOP

回復 4# PJChen
這兩個檔案其實都是陣列公式的運用
尤其使用2007以上版本,如果記憶體不足,資料量又大時更會造成當機可能
這應該從整體流程上來檢討
就如同"不知如何下標題"中已經很多是用已算出的結果當作輔助欄來計算
學海無涯_不恥下問

TOP

回復 6# PJChen

更改登錄值有用嗎?
電腦記憶體多大?要使用2007以上版本最好有大於2G的記憶體
我的筆電雙核心處理器+2G記憶體跑起來是OK的
學海無涯_不恥下問

TOP

回復 13# PJChen

既然你試著不使用定義名稱就可以使用,那還有甚麼問題?
學海無涯_不恥下問

TOP

回復 18# PJChen

Bodhidharm的檔案再加一輔助欄位不用定義

    眾數.rar (9.08 KB)
學海無涯_不恥下問

TOP

回復 23# Bodhidharma

條件越多就越麻煩,輔助欄位就要增加

    眾數.rar (10.73 KB)
學海無涯_不恥下問

TOP

回復 36# Bodhidharma
1.這樣可傳回同群組內B欄各數值的第一次出現的位置,傳回該數值出現次數  
=FREQUENCY(OFFSET($B$1,MATCH($A2,$A:$A,0)-1,,COUNTIF($A:$A,$A2),)*10^0,OFFSET($B$1,MATCH($A2,$A:$A,0)-1,,COUNTIF($A:$A,$A2),)*10^0)
2.這樣判斷是否B欄數值為連續出現
=(FREQUENCY(INDIRECT("RC2:R"&MATCH($A2,$A:$A,0)+COUNTIF($A:$A,$A2)-1&"C2",0)*10^0,INDIRECT("RC2:R"&MATCH($A2,$A:$A,0)+COUNTIF($A:$A,$A2)-1&"C2",0)*10^0)=FREQUENCY(INDIRECT("R[1]C2:R"&MATCH($A2,$A:$A,0)+COUNTIF($A:$A,$A2)-1&"C2",0)*10^0,INDIRECT("R[1]C2:R"&MATCH($A2,$A:$A,0)+COUNTIF($A:$A,$A2)-1&"C2",0)*10^0)+1)
3.C欄只要是以上兩條件吻合就是該群組連續最多的眾數
兩個判斷式相乘再乘上B欄的值,就能得到答案
眾數.rar (12.04 KB)
學海無涯_不恥下問

TOP

回復 40# Bodhidharma
bin_array非遞增數值陣列時
會以小於等於bin_array陣列元素,並扣除其餘元素以計算過之元素作為計算
例如:陣列元素中有重複的值,因為在第一次出現時已經計算過該值以下的出現頻率
所以第二次出現時就會扣除已計算過的結果

學海無涯_不恥下問

TOP

回復 57# PJChen

寫的頭有點昏了,看看結果如何?

    眾數_Hsieh 2.rar (198.08 KB)
學海無涯_不恥下問

TOP

回復 62# PJChen
再把結果取出最大值
眾數_Hsieh 2.zip (176.7 KB)
學海無涯_不恥下問

TOP

        靜思自在 : 【時日莫空過】一個人在世間做了多少事,就等於壽命有多長。因此必須與時間競爭,切莫使時日空過。
返回列表 上一主題