跳到主要內容跳到頁尾

三層架構入門:把原數據、計算、呈現分到三個分頁

5 分鐘閱讀Lv.0 初學者摘要與日期

用一份茶飲店月報當例子,示範怎麼把試算表拆成原數據層、計算層、呈現層三個分頁,改一格月份整份報表跟著換,數字不對時也知道從哪一層開始查。

發布 更新

文章目錄

我接手過一份茶飲店的月報表:訂單從 A 欄貼到 D 欄,E 欄隨手加了幾個 SUM,旁邊貼著一張圖表,圖表下面又有一格是老闆手改過的「9 月總計」。數字有天對不上,我花了半小時才分得出是訂單打錯、公式範圍少一列,還是那格總計被手改過。

這種表的毛病出在資料、公式、報表全擠在同一個地方,跟技巧好壞沒關係。這篇用同一份月報,拆成三個分頁。

三層架構:原數據層、計算層、呈現層,資料只往右流,下游不回頭改上游← 左右滑動看完整的圖,點圖可放大

圖:三層各管一件事,資料只往右流,沒有任何一條線往回指。

我用「食材倉庫、廚房、餐盤」來記:倉庫只放食材,廚房才切菜煮菜,擺盤是最後一步。你不會在餐盤上切菜,也不會在倉庫裡擺盤。

先放資料:原數據層

先建一個分頁叫 原數據_訂單,把訂單照原樣放進去。我這份只有 8 筆,日期欄是真正的日期:

日期品項杯數金額
2026/09/03蘋果紅茶12660
2026/09/03青茶7315
2026/09/10蘋果紅茶5275
2026/09/17烏龍拿鐵9585
2026/09/21青茶14630
2026/10/02蘋果紅茶8440
2026/10/05烏龍拿鐵11715
2026/10/09青茶6270

這一頁只有手打的資料或表單回應,沒有公式,不上色,也不做小計。原數據就像證據,你要能拿它去跟單據對。

筆誤我會直接在這裡改,因為那是在修正「事實」。但是「退貨不算」「這筆算到下個月」這類算法上的決定,不要動原數據,放到下一層處理。

再放公式:計算層

第二個分頁叫 計算_月彙總。B1 放「要算哪個月」,我填月份的第一天 2026/09/01。A3 放標題,A4:A6 是品項清單,B 欄算杯數:

Google 試算表公式
fx

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。來看看結果:

品項杯數銷售額
蘋果紅茶17935
青茶21945
烏龍拿鐵9585
合計472465

手算一次:蘋果紅茶 12 + 5 = 17 杯,660 + 275 = 935 元,跟公式一樣。

這一頁還有一個好處:把 B1 改成 2026/10/01,整張表會變成 10 月,蘋果紅茶 8 杯 440 元、青茶 6 杯 270 元、烏龍拿鐵 11 杯 715 元,合計 25 杯 1425 元。月份只改一格,公式一個字都沒動。

最後才擺盤:呈現層

第三個分頁 報表_月報,只做一件事:把計算層的結果拿過來。A3:C6 都是參照,例如 B4 寫 ,總計那格寫:

Google 試算表公式
fx

直接參照計算層的合計,不在呈現層重新加總

=計算_月彙總!C7

圖表、千分位、字體大小、條件式格式,都做在這一頁。老闆說要改成「杯數放前面」,你調整這一頁的欄位順序就好,計算層不會知道。

分頁建好之後,我會順手把三個分頁標籤塗上不同顏色,灰、綠、藍,打開檔案一眼就知道誰是誰:

分頁列顯示三個分頁,依序為灰色的原數據_訂單、綠色的計算_月彙總、藍色的報表_月報← 左右滑動看完整的圖,點圖可放大

圖:分頁名稱加前綴、標籤塗色,是三層在介面上看得到的樣子。

原數據_訂單的八筆訂單,經 SUMIFS 進入計算_月彙總,再被報表_月報參照← 左右滑動看完整的圖,點圖可放大

圖:三個分頁各自的內容,改 B1 的月份,右邊兩頁一起換。

資料只能從左往右走,這個規則附帶一個好處:計算層不會去看呈現層,所以不會繞成「A 依賴 B、B 又依賴 A」的循環參照。

數字不對時往哪裡查

假設老闆說「9 月的烏龍拿鐵應該是 10 杯,不是 9 杯」。三層分開之後,排查順序是固定的:

排查順序:先查報表_月報的參照,再查計算_月彙總的公式與月份,最後查原數據_訂單的那一筆資料← 左右滑動看完整的圖,點圖可放大

圖:由呈現層往上游查,每一關只問一個問題。

先看報表那格是參照還是被手改過;再看計算層的 SUMIFS 範圍有沒有漏掉列,B1 是不是 9 月;兩關都過,才回原數據去對 2026/09/17 那一筆的單據。這個例子裡,問題多半出在最後一關:那筆訂單當天其實是 10 杯。

三關都在不同分頁,你不用在一張大表裡找針。

什麼時候不用分三個分頁

如果表只有你一個人用、資料幾十筆、用完就丟,一個分頁就夠了,心裡知道「這幾欄是原始資料、這幾欄是算的」也算分層。我自己的小表就常這樣。

等到有第二個人要改資料、或同一份資料要放好幾個月,再拆成三個分頁。拆成多個檔案、權限怎麼配,下一篇接著談:三層架構進階:拆檔、IMPORTRANGE、權限與效能取捨。

1

加一欄平均單價

在計算層的 D 欄加「平均單價」,算出每杯平均賣多少錢,蘋果紅茶(9 月)應該顯示多少?

這條公式也放在計算層,不要放到報表頁:報表只負責參照現成的結果。

試著把自己手上最亂的那份表,拆出一個只放原始資料的分頁看看吧!

分享:
喜特先生 Mr. Sheet

喜特先生 Mr. Sheet

數據分析師/商業分析師

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

接下來可以

這篇在技能樹的 Lv.0「核心思維」,模組「三層架構設計思維」(第 1/2 篇)。

回到技能樹

相關文章

查看所有文章

留言討論

共 0 則留言

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

免費,隨時可取消。

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