- 帖子
- 2025
- 主題
- 13
- 精華
- 0
- 積分
- 2053
- 點名
- 0
- 作業系統
- WIN7
- 軟體版本
- Office2007
- 閱讀權限
- 100
- 性別
- 男
- 來自
- 台北市
- 註冊時間
- 2011-3-2
- 最後登錄
- 2024-3-14
     
|
回復 25# c_c_lai
Frequency 可以按F1看看說明。(以前我一開始看也不懂,這是正常的,多做題目才能慢慢了解)
用舉例說明
例一:有一群數字 {1,2,3,4,5,6,7,8,9},要求3個範圍各有多少數字 1~2、3~7、8~9,公式如下
=FREQUENCY({1,2,3,4,5,6,7,8,9},{2,7,9}) = {2;4;2;0},最後0是指大於9之數
用舉例說明
例二:例如以#22程式中下面部分程式來說明
' ↓ 計算每組個數。 注意! Frequency 回傳 i + 1 組,所先將 i - 1
Bins_array = Application.Evaluate("Row(1:" & i - 1 & ")")
ArrN = Application.Frequency(Arr, Bins_array)
MaxN = Application.Max(ArrN)
' ↓ 統計每組個數。 注意! Frequency 回傳 i + 1 組,所先將 MaxN - 1
Bins_array = Application.Evaluate("Row(1:" & MaxN - 1 & ")")
ArrF = Application.Frequency(ArrN, Bins_array)
說明
' ↓ 計算每組個數。
1. 將每組連續0進行序號編碼放在陣列中,陣列資料例如下
Arr={1,1,.."X" ,2,.."X" ,3,3,.."X" ,4,4,.."X" ,5,5,5,.."X" ,6,.."X" ,7,.."X" ,8,8,.."X" ,9,9,9,.."X"}
2. 我想求 1有幾個,2有幾個....9有幾個,可以用下列公式
ArrN = FREQUENCY(Arr,{1,2,3,4,5,6,7,8}) = {2;1;2;2;3;1;1;2;3}
回傳值表示為 1有3個、2有1個、3有2個、4有2個、5有3個、6有1個、7有1個、8有2個、9有3個
3. MaxN = Max({2;1;2;2;3;1;1;2;3}) = 3,所有組數中最大個數為 3 (後面計算要用)
' ↓ 統計每組個數。
4. 上面已經計算出每組的個數陣列 ArrN 及最大個數 MaxN,要統計各個數有幾組,公式如下
ArrF = FREQUENCY(ArrN,{1,2,...,MaxN-1}) = {{2;1;2;2;3;1;1;2;3},{1,2}) = {3;4;2}
回傳值表示為 1個有3組、2個有4組、3個有2組
5. 公式中 Bins_array = Application.Evaluate("Row(1:" & i - 1 & ")") 就是要產生 {1,2,...i-1} 序號
6. 其他說明就要靠 GOOGLE 來查詢,多看幾個網頁說明就能明白,我也是一邊查一邊TRY才成功的。
剛接觸VBA功力尚淺,說明不清之處尚且見諒。 |
|