我接手過一份茶飲店的月報表:訂單從 A 欄貼到 D 欄,E 欄隨手加了幾個 SUM,旁邊貼著一張圖表,圖表下面又有一格是老闆手改過的「9 月總計」。數字有天對不上,我花了半小時才分得出是訂單打錯、公式範圍少一列,還是那格總計被手改過。
這種表的毛病出在資料、公式、報表全擠在同一個地方,跟技巧好壞沒關係。這篇用同一份月報,拆成三個分頁。
圖:三層各管一件事,資料只往右流,沒有任何一條線往回指。
我用「食材倉庫、廚房、餐盤」來記:倉庫只放食材,廚房才切菜煮菜,擺盤是最後一步。你不會在餐盤上切菜,也不會在倉庫裡擺盤。
先放資料:原數據層
先建一個分頁叫 原數據_訂單,把訂單照原樣放進去。我這份只有 8 筆,日期欄是真正的日期:
| 日期 | 品項 | 杯數 | 金額 |
|---|---|---|---|
| 2026/09/03 | 蘋果紅茶 | 12 | 660 |
| 2026/09/03 | 青茶 | 7 | 315 |
| 2026/09/10 | 蘋果紅茶 | 5 | 275 |
| 2026/09/17 | 烏龍拿鐵 | 9 | 585 |
| 2026/09/21 | 青茶 | 14 | 630 |
| 2026/10/02 | 蘋果紅茶 | 8 | 440 |
| 2026/10/05 | 烏龍拿鐵 | 11 | 715 |
| 2026/10/09 | 青茶 | 6 | 270 |
這一頁只有手打的資料或表單回應,沒有公式,不上色,也不做小計。原數據就像證據,你要能拿它去跟單據對。
筆誤我會直接在這裡改,因為那是在修正「事實」。但是「退貨不算」「這筆算到下個月」這類算法上的決定,不要動原數據,放到下一層處理。
再放公式:計算層
第二個分頁叫 計算_月彙總。B1 放「要算哪個月」,我填月份的第一天 2026/09/01。A3 放標題,A4:A6 是品項清單,B 欄算杯數:
B4:品項是 A4、日期落在 B1 當月的杯數加總,往下拉到 B6
=SUMIFS(
原數據_訂單!$C$2:$C,
原數據_訂單!$B$2:$B, $A4,
原數據_訂單!$A$2:$A, ">="&$B$1,
原數據_訂單!$A$2:$A, "<"&EDATE($B$1, 1)
)EDATE($B$1, 1) 是 B1 往後一個月,也就是 2026/10/01。這樣日期條件就是「大於等於 9/1、小於 10/1」,不用手寫月底是 30 還是 31(SUMIFS 的語法在 SUMIFS 多條件加總 講過)。範圍寫成 $C$2:$C 不寫死列數,訂單新增時公式不用改。
C 欄的銷售額是同一條公式,只把加總範圍換成金額欄,原數據_訂單!$D$2:$D。A7 寫「合計」,B7、C7 用 SUM。來看看結果:
| 品項 | 杯數 | 銷售額 |
|---|---|---|
| 蘋果紅茶 | 17 | 935 |
| 青茶 | 21 | 945 |
| 烏龍拿鐵 | 9 | 585 |
| 合計 | 47 | 2465 |
手算一次:蘋果紅茶 12 + 5 = 17 杯,660 + 275 = 935 元,跟公式一樣。
這一頁還有一個好處:把 B1 改成 2026/10/01,整張表會變成 10 月,蘋果紅茶 8 杯 440 元、青茶 6 杯 270 元、烏龍拿鐵 11 杯 715 元,合計 25 杯 1425 元。月份只改一格,公式一個字都沒動。
最後才擺盤:呈現層
第三個分頁 報表_月報,只做一件事:把計算層的結果拿過來。A3:C6 都是參照,例如 B4 寫 ,總計那格寫:
直接參照計算層的合計,不在呈現層重新加總
=計算_月彙總!C7圖表、千分位、字體大小、條件式格式,都做在這一頁。老闆說要改成「杯數放前面」,你調整這一頁的欄位順序就好,計算層不會知道。
分頁建好之後,我會順手把三個分頁標籤塗上不同顏色,灰、綠、藍,打開檔案一眼就知道誰是誰:
圖:分頁名稱加前綴、標籤塗色,是三層在介面上看得到的樣子。
圖:三個分頁各自的內容,改 B1 的月份,右邊兩頁一起換。
資料只能從左往右走,這個規則附帶一個好處:計算層不會去看呈現層,所以不會繞成「A 依賴 B、B 又依賴 A」的循環參照。
數字不對時往哪裡查
假設老闆說「9 月的烏龍拿鐵應該是 10 杯,不是 9 杯」。三層分開之後,排查順序是固定的:
圖:由呈現層往上游查,每一關只問一個問題。
先看報表那格是參照還是被手改過;再看計算層的 SUMIFS 範圍有沒有漏掉列,B1 是不是 9 月;兩關都過,才回原數據去對 2026/09/17 那一筆的單據。這個例子裡,問題多半出在最後一關:那筆訂單當天其實是 10 杯。
三關都在不同分頁,你不用在一張大表裡找針。
什麼時候不用分三個分頁
如果表只有你一個人用、資料幾十筆、用完就丟,一個分頁就夠了,心裡知道「這幾欄是原始資料、這幾欄是算的」也算分層。我自己的小表就常這樣。
等到有第二個人要改資料、或同一份資料要放好幾個月,再拆成三個分頁。拆成多個檔案、權限怎麼配,下一篇接著談:三層架構進階:拆檔、IMPORTRANGE、權限與效能取捨。
加一欄平均單價
在計算層的 D 欄加「平均單價」,算出每杯平均賣多少錢,蘋果紅茶(9 月)應該顯示多少?
這條公式也放在計算層,不要放到報表頁:報表只負責參照現成的結果。
試著把自己手上最亂的那份表,拆出一個只放原始資料的分頁看看吧!
接下來可以
這篇在技能樹的 Lv.0「核心思維」,模組「三層架構設計思維」(第 1/2 篇)。
回到技能樹相關文章
查看所有文章留言討論
共 0 則留言

