跳到主要內容跳到頁尾

月報表怎麼做:用 SUMIFS 做門市 × 月份彙總與達成率

8 分鐘閱讀Lv.3 中級摘要與日期

拿一份茶飲銷售明細,用 SUMIFS 做出門市 × 月份的月報矩陣,再用 COUNTIFS、AVERAGEIFS、MAXIFS 算筆數、平均與單筆最高,日期區間放在儲存格,最後加上目標與達成率。

發布 更新

文章目錄

每個月初,我都要把上個月的銷售明細整理成一張「門市 × 月份」的報表,順便對一下目標達成了沒。這篇就拿 SUMIFS 做這張矩陣,再搭配 COUNTIFS、AVERAGEIFS、MAXIFS 補上筆數、平均和單筆最高。

單一條件的寫法在 SUMIF 與 COUNTIF 入門,日期區間、文字日期、萬用字元這些會踩的坑在 SUMIFS 進階陷阱,這邊都不重講,直接做報表。

先看明細資料

三家門市,八月到十月的銷售明細,一共 16 筆,放在 A1:E17:

ABCDE
1日期門市品項杯數金額
22026/08/04信義蘋果紅茶341530
32026/08/12板橋青茶21840
42026/08/19左營蘋果綠茶17765
52026/08/27信義鮮奶茶261170
62026/09/02板橋蘋果紅茶431935
72026/09/09左營青茶12480
82026/09/15信義蘋果綠茶381710
92026/09/23板橋鮮奶茶291305
102026/09/30左營蘋果紅茶22990
112026/10/01信義青茶311240
122026/10/03板橋蘋果綠茶18810
132026/10/06左營鮮奶茶472115
142026/10/07信義蘋果紅茶251125
152026/10/09板橋青茶14560
162026/10/10左營蘋果紅茶361620
172026/10/10信義鮮奶茶19855

日期都是真正的日期,不是文字。我故意放了 9/30 和 10/01 這種剛好跨月的兩筆,等下看月份有沒有切對。

我想要的成品是這樣:左邊一欄是門市,上面一列是月份,交叉的格子就是那家店那個月的金額。手算信義十月的話,是 1240 + 1125 + 855 = 3220,等一下公式的結果要跟它一樣。

做出門市 × 月份矩陣

矩陣放在 G1:K5。G 欄放門市名稱,H1:J1 放三個月份的「月初日期」,也就是 2026/08/01、2026/09/01、2026/10/01。月份用真正的日期,不要打成文字的「8月」,這樣公式才能拿它來算區間。看起來想只顯示月份的話,把這三格的數字格式改成自訂的 M"月" 就可以了,儲存格裡面還是日期。

H2 這一格,我要的是「G2 那家店、H1 那個月」的金額:

Google 試算表公式
fx

信義在 2026/08 的金額

=SUMIFS( $E$2:$E$17, $B$2:$B$17, $G2, $A$2:$A$17, ">="&H$1, $A$2:$A$17, "<"&EDATE(H$1, 1) )
  • 加總範圍:$E$2:$E$17,金額欄。
  • 第一組條件:$B$2:$B$17 等於 $G2,門市要一樣。
  • 第二組條件:日期大於或等於 H$1,也就是月初那一天。
  • 第三組條件:日期小於 EDATE(H$1, 1),也就是下個月的月初。

EDATE 是把日期往後推幾個月,EDATE(2026/08/01, 1) 就是 2026/09/01,這樣不用自己判斷這個月有 28、30 還是 31 天。EDATE 的細節在 日期計算實戰。

美元符號的位置是這條公式的重點。$G2 鎖住欄、不鎖列,往右複製時門市永遠看 G 欄,往下複製才會換成下一家店。H$1 鎖住列、不鎖欄,往下複製時月份永遠看第 1 列,往右複製才會換成下一個月。加總範圍與三組條件範圍都整個鎖死,因為明細的位置不會跟著動。

在 H2 輸入公式,按下 Enter,再複製到 H2:J4 的九格。來看看結果:

門市8月9月10月合計
信義2700171032207630
板橋840324013705450
左營765147037355970
合計43056420832519050

信義 10 月是 3220,跟剛剛手算的一樣。左營的 9/30 那筆 990 算在九月,10/01 的信義青茶 1240 算在十月,跨月的兩筆都有切對。

合計欄和合計列用 SUM 就好,K2 是 ,H5 是 。K5 的 19050 剛好等於明細金額欄的總和,我習慣拿 對一下,兩個數字一樣才放心把報表交出去。

日期區間放在儲存格

月報有固定的月份,但老闆有時候會問「這個禮拜的板橋店賣多少」,區間不是整月。這種時候我會做一個小小的查詢區,把條件全部放進儲存格,之後只改儲存格就好。

在 G8:H10 放三個條件:

GH
8開始日2026/10/03
9結束日2026/10/09
10門市板橋

H11 算區間內的金額:

Google 試算表公式
fx

板橋在開始日到結束日之間的金額

=SUMIFS( $E$2:$E$17, $B$2:$B$17, $H$10, $A$2:$A$17, ">="&$H$8, $A$2:$A$17, "<"&($H$9+1) )

結束日包含當天,所以條件是「小於結束日加 1」,也就是隔天零點。板橋在 10/03 有 810、10/09 有 560,頭尾兩天都在區間裡,結果是 1370。

門市那一格如果填 *,因為 * 是萬用字元,會比對所有有文字的門市,等於全部門市。同樣的區間改成 *,會把 10/06 的左營 2115 和 10/07 的信義 1125 也算進來,結果是 4610。

筆數、平均、最高

金額之外,我通常還會看三個數字。條件都沿用查詢區那幾格,只有第一個範圍會換:

筆數用 COUNTIFS,它沒有加總範圍,直接放條件:

Google 試算表公式
fx

區間內板橋的訂單筆數

=COUNTIFS($B$2:$B$17, $H$10, $A$2:$A$17, ">="&$H$8, $A$2:$A$17, "<"&($H$9+1))

結果是 2。

平均每筆金額用 AVERAGEIFS,第一個參數是要平均的範圍:

Google 試算表公式
fx

區間內板橋平均每筆金額

=AVERAGEIFS( $E$2:$E$17, $B$2:$B$17, $H$10, $A$2:$A$17, ">="&$H$8, $A$2:$A$17, "<"&($H$9+1) )

(810 + 560) / 2,結果是 685。

單筆最高杯數用 MAXIFS,一樣是要找最大值的範圍放第一個:

Google 試算表公式
fx

區間內板橋單筆最高杯數

=MAXIFS( $D$2:$D$17, $B$2:$B$17, $H$10, $A$2:$A$17, ">="&$H$8, $A$2:$A$17, "<"&($H$9+1) )

10/03 是 18 杯、10/09 是 14 杯,結果是 18。

區間裡沒有資料的時候

把開始日改成 2026/11/01、結束日改成 2026/11/30,十一月還沒有任何資料。這時候三個函式的反應不一樣:COUNTIFS 和 SUMIFS 得到 0,MAXIFS 也得到 0,只有 AVERAGEIFS 會是 #DIV/0!,因為沒有任何一筆可以拿來除。

MAXIFS 的 0 要小心,它看起來就像「最高是 0 杯」,其實是「沒有資料」。報表上我會把平均那格包起來,讓人一眼看出是沒資料:

Google 試算表公式
fx

沒有符合的資料時顯示尚無資料

=IFERROR( AVERAGEIFS( $E$2:$E$17, $B$2:$B$17, $H$10, $A$2:$A$17, ">="&$H$8, $A$2:$A$17, "<"&($H$9+1) ), "尚無資料" )

十一月的區間會顯示「尚無資料」,改回十月的區間就是 685。IFERROR 會把所有錯誤一併吃掉,包括公式寫錯造成的錯誤,所以我只包在最外層確定的地方,不會整張表都包。

加上目標與達成率

每家店十月都有業績目標,我在 L1 放標題「10 月目標」,L2:L4 依序是信義 3400、板橋 1500、左營 3700,L5 用 SUM 加總是 8600。M 欄算達成率:

Google 試算表公式
fx

十月實績除以十月目標,四捨五入到小數三位

=ROUND(J2/L2, 3)

M2:M4 往下複製,M5 用 ,再把 M 欄的格式改成百分比(小數一位)。來看看結果:

門市10 月實績10 月目標達成率
信義3220340094.7%
板橋1370150091.3%
左營37353700100.9%
合計8325860096.8%

左營已經超過目標。不過要注意,假設今天是 2026/10/11,十月才過了 11 天,明細只到 10/10,這些達成率是「目前的進度」。月底前還會繼續變動,所以我會把這一欄的標題寫成「截至今天」,免得有人拿去當結案數字。

達成率想用顏色標出落後的店,可以接著看 條件式格式。

新增資料的時候

明細每天都會新增一列,可是上面公式的範圍是寫死的 $E$2:$E$17,第 18 列的資料不會被算進去。我的做法是把範圍都改成整欄,$E:$E、$B:$B、$A:$A、$D:$D:

Google 試算表公式
fx

整欄範圍的版本,新增明細不用改公式

=SUMIFS($E:$E, $B:$B, $G2, $A:$A, ">="&H$1, $A:$A, "<"&EDATE(H$1, 1))

結果和上面一模一樣,信義 8 月還是 2700。標題列那格是文字,不會符合日期條件,所以不受影響。代價是明細所在的 A 到 E 欄,下面不能再放別的東西,合計或備註要放到別欄,我才把報表放在 G 欄之後。

下個月要多一欄的話,不要直接在 K 欄輸入,因為 K 欄現在是合計,右邊還有 L 欄的目標和 M 欄的達成率。選取 K 欄,按右鍵選「在左側插入 1 欄」,原本的合計、目標、達成率會各往右移一欄,公式也會自動跟著調整(達成率仍然是用 J 欄的十月實績除以十月目標)。接著在新的 K1 輸入 2026/11/01,把 J2:J4 的公式複製到 K2:K4。最後把合計的 SUM 範圍補上新的一欄,例如信義的合計改成 ,合計列 K5 用 ,因為插在範圍最右側的欄不會被自動納入原本的 SUM。

為什麼不用樞紐分析表

兩種做法我都用,取捨是這樣:

  • 樞紐分析表:拖拉幾下就有,資料新增時會自動更新,臨時看一種切法很快,做法在 樞紐分析表。
  • SUMIFS 矩陣:每一格都是自己寫的公式,目標、達成率這種要跟別張表對照的欄位,可以直接放在旁邊一起算,缺點是範圍和月份標題要自己維護。

月報的版面每個月都一樣,又要放目標欄,我個人會選 SUMIFS。臨時想換個角度看資料,就拉一張樞紐分析表。

動手練習

1

信義十月的平均杯數

信義十月的訂單平均每筆賣幾杯?月份用 J1(2026/10/01)當條件,不要把日期寫死在公式裡。

把自己店裡的明細貼進來,換掉門市名稱和月份試試看吧!我是喜特先生,Mr. Sheet,我們下個教學見!

分享:
喜特先生 Mr. Sheet

喜特先生 Mr. Sheet

數據分析師/商業分析師

八年工作經驗,跨不同業界解決數據需求。做過的案例都整理在作品集。

接下來可以

相關文章

查看所有文章

留言討論

共 0 則留言

訂閱電子報,新文章上線就通知你

免費,隨時可取消。

送出即表示同意服務條款與隱私權政策。