有一欄 15 筆的訂單金額,我想知道「60 元以下有幾筆、61 到 80 元有幾筆⋯⋯」,也就是常說的次數分配。今天要介紹的 FREQUENCY 就是做這件事,給它資料和分組的上限,它一次把每一組的筆數都算出來。
手動算有多麻煩
A1 是標題「訂單金額(元)」,A2:A16 是 15 筆訂單:45、60、55、120、65、50、70、140、60、55、85、65、50、180、75。
我想分成五組:60 元以下、61 到 80、81 到 100、101 到 120、超過 120。手動的話,要一筆一筆看,劃記完再數:60 以下有 45、60、55、60、55、50、50,共 7 筆;61 到 80 有 65、70、65、75,共 4 筆;81 到 100 只有 85;101 到 120 只有 120;超過 120 有 140 和 180。7 + 4 + 1 + 1 + 2 = 15,跟總筆數對得上。
15 筆還勉強,資料多一點就會劃錯,換 FREQUENCY 吧。
FREQUENCY
FREQUENCY 會算出資料落在每個分組的筆數,結果是一欄數字,自動往下溢出。
語法
- 資料:要分組的數字範圍。
- 分組上限:每一組的「最大值」,由小到大排成一欄。
分組上限是「含」的,也就是「小於或等於這個上限,而且大於前一個上限」的資料算進這一組。我們的上限是 60、80、100、120,分別放在 D2:D5。
範例
C 欄放組別名稱,D 欄放上限,E 欄放筆數:
| C | D | E | |
|---|---|---|---|
| 1 | 分組 | 上限 | 筆數 |
| 2 | 60 以下 | 60 | |
| 3 | 61 到 80 | 80 | |
| 4 | 81 到 100 | 100 | |
| 5 | 101 到 120 | 120 | |
| 6 | 超過 120 |
E2 輸入:
A2:A16 的訂單金額,依 D2:D5 的上限分組計數
=FREQUENCY(A2:A16, D2:D5)按下 Enter,E2 往下一路填到 E6,不需要拖曳。來看看結果:
| E | |
|---|---|
| 2 | 7 |
| 3 | 4 |
| 4 | 1 |
| 5 | 1 |
| 6 | 2 |
跟前面劃記的一樣,7、4、1、1、2。
為什麼多一格
我給了 4 個上限,結果卻有 5 個數字。多出來的最後一格是「超過最後一個上限」的筆數,也就是大於 120 元的資料,這邊是 140 和 180 兩筆。上限放 n 個,結果一定是 n + 1 格,所以組別名稱那欄要多寫一列,我剛才就是在 C6 寫了「超過 120」。
這個設計很貼心,因為不管資料多大,每一筆都有地方去。要檢查有沒有漏算的話,加總一下:
FREQUENCY 結果加總,應該等於資料筆數
=SUM(E2:E6)得到 15,跟 COUNT(A2:A16) 一樣。
另外,如果你想要橫著排,包一層 TRANSPOSE:
橫向排列的分組計數
=TRANSPOSE(FREQUENCY(A2:A16, D2:D5))結果會從這個儲存格往右溢出 7、4、1、1、2。
跟 COUNTIFS 分組有什麼不同
不用 FREQUENCY 也算得出來,用 COUNTIFS 加上上下限 就行。第一組沒有下限,所以用 COUNTIF:
60 以下的筆數
=COUNTIF(A2:A16, "<=" & D2)得到 7。中間的組別就是大於前一個上限、小於或等於這一個上限:
61 到 80 的筆數
=COUNTIFS(A2:A16, ">" & D2, A2:A16, "<=" & D3)得到 4,跟 FREQUENCY 一樣。最後一組是 ,得到 2。
問題出在大家習慣的寫法。用 COUNTIFS 分組,很多人會寫成「大於或等於下限、小於上限」:
60 以上、小於 80 的筆數
=COUNTIFS(A2:A16, ">=60", A2:A16, "<80")這個會得到 6,不是 4,因為 60 元剛好有兩筆,這種寫法把它們算在「60 到 79」那一組,而 FREQUENCY 把它們算在「60 以下」。兩邊沒有誰對誰錯,只是邊界值落在哪一邊的規則不同,所以拿兩種方式的結果比對時要先確認這件事。
我自己的取捨是這樣:
- 組別固定、資料會一直變,用
FREQUENCY,一條公式搞定,改上限數字結果就跟著改。 - 組別要分開看、或要加其他條件(例如只算某家門市),用
COUNTIFS,因為FREQUENCY沒有條件參數。
接圖表
結果算好了,來畫成圖。選取 C1:C6,按住 Ctrl(Mac 為 Cmd)再選 E1:E6,點「插入」>「圖表」,圖表類型選「柱狀圖」。
組別在 X 軸、筆數在 Y 軸,看起來就是直方圖:左邊兩根最高,右邊拖一個小尾巴,代表多數訂單在 80 元以下,少數大單把平均拉高。
這邊要分清楚兩種做法。「圖表」裡的「直方圖」類型,是直接給它原始的一欄金額,區間由圖表自己切,不需要 FREQUENCY,細節在 圖表類型實戰 的直方圖那一段。用 FREQUENCY 先算再畫柱狀圖,好處是區間你自己決定,而且筆數留在儲存格,可以拿去做百分比或加別的計算。兩種都可以,沒有哪個一定比較好。
幾件要注意的事
- 分組上限要由小到大排好。亂序不會報錯,Sheets 會先在內部排序分組,再依上限原本的位置回傳各組次數,例如上限
{120;60;100;80}會得到 1、7、1、4、2:第 1 格是 120 這個上限對應的組(超過 100 到 120)、第 2 格是 60 以下,依此類推,最後一格是超過最大上限的筆數。結果順序和組別由小到大不一致,很容易看錯,寫公式前先排好最安全。 - 資料裡的空白和文字會被直接忽略,不會被當成 0 算進第一組。
- 上限只有一格也可以,結果就是 2 格:小於或等於它、大於它。
用 FREQUENCY 把金額分成三組
同一批訂單金額 A2:A16,上限放在 D2:D3,分別是 60 與 100。用一條 FREQUENCY 算出「60 以下」「61 到 100」「超過 100」三組各有幾筆。
分組的上限可以隨時改,改完圖就跟著動,試著用用看吧!
接下來可以
相關文章
查看所有文章五組資料,五種圖:趨勢、排名、佔比、關係、分布怎麼選
用茶飲店的五組小資料,示範時間趨勢用折線圖、類別排名用長條圖、佔比用圓餅圖、兩變數關係用散佈圖、分布用直方圖,並說明每種圖的資料要怎麼排才畫得出來。
SUMIF 與 COUNTIF 入門:用一個條件加總和計數
SUMIF、COUNTIF 的語法、條件怎麼寫(文字、比較符號、萬用字元與波浪號),把條件放在儲存格裡的 & 寫法,以及簡單提到的 AVERAGEIF。只談單一條件。
SUMIFS 進階陷阱:多條件、日期區間、萬用字元與 MAXIFS
整理 SUMIFS、COUNTIFS 多條件加總常踩的坑:參數順序和 SUMIF 相反、範圍大小不一致、日期區間與文字日期、OR 條件重複計算、萬用字元與 ~ 跳脫、空白條件,以及 MAXIFS、MINIFS、AVERAGEIFS 與 COUNTUNIQUEIFS。
留言討論
共 0 則留言
