今天要來聊聊 SUMIF 和 COUNTIF,一個按條件加總、一個按條件計數。
簡單來說,它們就是 SUM、COUNT 跟「如果⋯⋯就⋯⋯」的結合,你可以自己定義條件,只算符合條件的那幾格。這篇只講一個條件,兩個以上的條件留給 SUMIFS 多條件那篇。
手動算有多麻煩
我手上有一張手搖飲的銷售清單,A 欄是品項、B 欄是杯數、C 欄是金額,一共 10 筆:
| A | B | C | |
|---|---|---|---|
| 1 | 品項 | 杯數 | 金額 |
| 2 | 蘋果紅茶 | 12 | 540 |
| 3 | 蘋果綠茶 | 8 | 392 |
| 4 | 烏龍奶茶 | 37 | 1628 |
| 5 | 蘋果紅茶 | 21 | 945 |
| 6 | 青茶 | 29 | 1189 |
| 7 | 蘋果烏龍茶 | 6 | 318 |
| 8 | 烏龍奶茶 | 15 | 660 |
| 9 | 蘋果紅茶 | 9 | 396 |
| 10 | 青茶 | 17 | 697 |
| 11 | 蘋果奶茶 | 11 | 506 |
我想知道「蘋果紅茶」總共賣了幾杯。手動的話,要先在 A 欄找出蘋果紅茶在哪幾列,再去 B 欄把對應的數字加起來:12 + 21 + 9 = 42。10 筆還撐得住,資料每天增加的話,有點太麻煩了吧!這時候就可以把 SUMIF 派上場。
SUMIF
SUMIF 會在一個範圍裡找出符合條件的儲存格,把對應的數字加總起來。
語法
- 搜尋條件範圍:要拿來比對條件的範圍,
SUMIF會在這裡找符合的儲存格。 - 條件:要篩選的條件。
- 加總範圍:選填,如果要加總的範圍跟搜尋條件範圍不一樣,就在這邊指定。省略的話,就是對搜尋條件範圍本身加總,例如
SUMIF(A1:A10,">20")。
三個參數的順序是「去哪裡找、找什麼、加總哪裡」,這邊要小心,條件範圍跟加總範圍很容易搞混。
條件要怎麼寫?
依官方說明,文字條件要放在雙引號裡。數字可以直接寫,也可以在前面加比較符號:
- 等於:
"文字"、"=文字"、1、"=1" - 大於:
">1" - 大於或等於:
">=1" - 小於:
"<1" - 小於或等於:
"<=1" - 不等於:
"<>1"、"<>文字"
比較符號要跟數字一起放進引號,像 ">=15"。
範例
我想找蘋果紅茶的總杯數,也就是剛剛手算的 42。如果要用 SUMIF 寫,就是:
蘋果紅茶的總杯數
=SUMIF(A2:A11, "蘋果紅茶", B2:B11)- 搜尋條件範圍:
A2:A11,品項欄。 - 條件:
"蘋果紅茶"。 - 加總範圍:
B2:B11,杯數欄。
來看看結果:42,跟手算一樣。
加總範圍換成金額欄,就是蘋果紅茶的總金額:
蘋果紅茶的總金額
=SUMIF(A2:A11, "蘋果紅茶", C2:C11)540 + 945 + 396,結果是 1881。
條件也可以是數字的比較。我想知道杯數大於 15 的訂單,金額總共多少:
杯數大於 15 的訂單,金額加總
=SUMIF(B2:B11, ">15", C2:C11)這邊條件範圍是杯數欄、加總範圍是金額欄,兩個欄不同,所以要寫第三個參數。符合的有 37、21、29、17 杯這四筆,結果是 4459。
如果條件範圍跟加總範圍是同一欄,第三個參數就可以不寫:
杯數大於 15 的總杯數,省略加總範圍
=SUMIF(B2:B11, ">15")結果是 104,也就是 37 + 21 + 29 + 17。
萬用字元
如果條件裡有不確定的文字,可以搭配半形的「?」和「*」做模糊搜尋:
- 「
?」代表一個字。 - 「
*」代表零個、一個或很多個字。
清單裡有蘋果紅茶、蘋果綠茶、蘋果奶茶,還有名字比較長的蘋果烏龍茶。先看「蘋果?茶」,中間剛好一個字:
蘋果 + 一個字 + 茶
=SUMIF(A2:A11, "蘋果?茶", B2:B11)蘋果紅茶(42 杯)、蘋果綠茶(8 杯)、蘋果奶茶(11 杯)符合,蘋果烏龍茶因為中間有兩個字所以不符合。來看看結果:61。
換成「*」,只要是蘋果開頭、茶結尾的都算:
蘋果 + 任意字 + 茶
=SUMIF(A2:A11, "蘋果*茶", B2:B11)這次蘋果烏龍茶的 6 杯也進來了,結果是 67。
COUNTIF
COUNTIF 是按條件計算儲存格的數量。它沒有加總的動作,所以少了第三個參數。
語法
- 範圍:要拿來比對條件的範圍。
- 條件:要套用到範圍的條件,寫法跟
SUMIF完全一樣。
範例
蘋果紅茶在清單裡出現幾次?
蘋果紅茶出現幾次
=COUNTIF(A2:A11, "蘋果紅茶")第 2、5、9 列,結果是 3。
杯數大於 15 的訂單有幾筆?
杯數大於 15 的筆數
=COUNTIF(B2:B11, ">15")就是剛剛那四筆,結果是 4。
想算「不是青茶」的筆數,用不等於:
品項不是青茶的筆數
=COUNTIF(A2:A11, "<>青茶")10 筆減掉 2 筆青茶,結果是 8。
COUNTIF 不分大小寫,「paid」和「Paid」會算成一樣;SUMIF 也一樣,「Paid」「PAID」「paid」都會被 "paid" 比對到。
AVERAGEIF
按條件算平均就是 AVERAGEIF,結構跟 SUMIF 一樣:
蘋果紅茶三筆訂單,平均每筆的金額是多少?
蘋果紅茶的平均金額
=AVERAGEIF(A2:A11, "蘋果紅茶", C2:C11)1881 除以 3,結果是 627。青茶的話,(1189 + 697) 除以 2:
青茶的平均金額
=AVERAGEIF(A2:A11, "青茶", C2:C11)結果是 943。
把條件放在儲存格裡
條件寫死在公式裡,要改就得進去改公式。我個人習慣把條件放在儲存格,公式只管參照它。
文字條件很直接,假設 E1 放「青茶」:
條件放在 E1
=SUMIF(A2:A11, E1, B2:B11)數字比較就要注意了。假設 F1 放 15,我想算杯數大於或等於 F1 的筆數,比較符號要用 & 跟儲存格接起來:
大於或等於 F1 的筆數
=COUNTIF(B2:B11, ">="&F1)這樣條件會變成 ">=15",結果是 5(比大於 15 的 4 筆多了杯數剛好是 15 的那一筆)。
如果寫成 ">=F1",Sheets 會把 F1 當成文字,不是儲存格,所以這樣算不出 5,結果是 0。公式看起來沒錯,卻永遠得不到你要的數字,這種錯很難一眼看出來。
找「?」和「*」本身
如果要找的文字剛好就含有「?」或「*」,在前面加一個波浪號「~」,Sheets 就會當成一般的字:"~?"、"~*"。要找波浪號本身的話,寫 "~~"。
舉例來說,假設另一張工作表的 A1:A3 是「半糖?」「半糖冰」「半糖少冰」三個品項備註。
的「?」是萬用字元,「半糖?」和「半糖冰」都符合,結果是 2。
加了波浪號,只找真的有問號的那一個,結果是 1。
練習
烏龍奶茶的總金額
用上面的清單,算出品項是「烏龍奶茶」的總金額。
杯數少於 10 的訂單
杯數少於 10 杯的訂單有幾筆?
小測驗
SUMIF 與 COUNTIF
的三個參數,依序是什麼?
接下來
SUMIF 和 COUNTIF 一次只能有一個條件。想算「蘋果紅茶而且杯數大於 15」這種兩個條件都要成立的,就要換 SUMIFS 和 COUNTIFS,下一篇來聊。如果你想看到符合條件的明細,而不只是一個數字,可以用 FILTER。
先把手邊的清單拿來試試看吧!我是喜特先生,Mr. Sheet,我們下個教學見!
這個步驟如果每週都要重做
- 現在
- 每週把五個分頁各自用 SUMIF 加總,再貼進週報
- 自動化後
- 每週一早上自動加總各分頁,週報寄到你的信箱,你只看結果
接下來可以
這篇在技能樹的 Lv.2「進階分析」,模組「條件式計算」(第 1/2 篇)。
回到技能樹相關文章
查看所有文章留言討論
共 0 則留言
