跳到主要內容跳到頁尾

歸檔系統設計:訂單越堆越多,做完的資料搬去哪

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

訂單表用了幾年就越來越慢時,怎麼判斷哪些資料可以歸檔:用標記欄找出待歸檔的列、貼成值搬進歷史,再決定歷史放同一份檔案還是拆到另一份,以及舊資料要查時怎麼取。

發布 更新

文章目錄

我手上有一份訂單表,第一年用起來很順,第三年開始每次打開都要等一下,改一格也會卡一下。公式沒有寫錯,是做完的訂單一直留在同一張表裡,每一列都還帶著公式。

這篇用這份訂單表,示範怎麼把「做完、不會再改」的列搬出主表。

資料依還會不會改分三帶:熱資料還在改、溫資料剛做完、冷資料已定型,越往下越少有人碰← 左右滑動看完整的圖,點圖可放大

圖:歸檔要做的事,就是把資料從上面一帶慢慢往下搬。

先判斷哪些列可以搬

我用一個問題決定:「這一列還會改嗎?」

  • 狀態已經是「已完成」,之後不會再改金額或品項,可以搬。
  • 還在進行中、還會補資料的,不能搬,不管它多舊。
  • 其他公式還在引用它的,先不要搬。

最後一點要多想一下。套用 三層架構 的說法,歸檔搬走的是原數據層裡的舊列,計算層和呈現層還留在主檔。如果計算層的年度彙總還會用到去年的訂單,搬走之後那條公式就算不到了,要先決定彙總怎麼接(後面「要查舊資料時」會講)。

變慢是怎麼發生的

訂單表變慢的過程,大致是這樣:

資料列越來越多、每列帶公式、公式總數變多、開檔與重算變慢、沒人想更新,五個步驟由上往下← 左右滑動看完整的圖,點圖可放大

圖:一路往下,每一步都沒有人覺得不對,到第四步才有人注意。

這條鏈上,歸檔切的是第一步:讓列不要一直累積。至於你的檔案是不是真的慢在這裡,要自己看,我沒有替你的檔案量過。檢查方式(哪些函式、哪些範圍拖慢)在 試算表為什麼越來越慢 有講,先照那篇看一次再決定要不要歸檔。

先標出待歸檔的列

與其每次憑印象找哪些可以搬,我會在「當前訂單」多加一欄,讓公式標出來。資料長這樣,F 欄是要加的標記欄:

訂單編號訂單日期品項金額狀態
ORD-1012026/04/18蘋果紅茶1665已完成
ORD-1182026/06/02烏龍奶茶2310已完成
ORD-1252026/07/15青茶639進行中
ORD-1392026/08/09蘋果紅茶448已完成
ORD-1522026/09/21桂花烏龍1075已完成
ORD-1602026/10/04蘋果綠茶912進行中

這 5 欄在 A 到 E 欄,第 1 列是標題,資料從第 2 列到第 7 列。 H1 放「基準日」、I1 放 2026/10/11;H2 放「保留天數」、I2 放 60。這兩格是參數:做完的訂單放滿幾天才歸檔,看你多久會回頭翻,我先放 60。

基準日我在文章裡寫死成 2026/10/11,是為了讓結果不會變。實際用的時候,I1 改成 就會跟著今天走,標記的結果也會每天變。

F2 輸入,往下拖到 F7:

Google 試算表公式
fx

狀態是已完成,而且距離基準日超過保留天數,就標「待歸檔」

=IF(AND(E2="已完成", DAYS($I$1, B2) > $I$2), "待歸檔", "")
  • E2="已完成":只有做完的才可能歸檔。
  • DAYS($I$1, B2):從訂單日期到基準日隔幾天。$I$1 前面加 $ 鎖住,往下拖才不會跑掉。
  • > $I$2:超過保留天數。

來看看結果:

列訂單日期狀態F 歸檔標記
22026/04/18已完成待歸檔
32026/06/02已完成待歸檔
42026/07/15進行中
52026/08/09已完成待歸檔
62026/09/21已完成
72026/10/04進行中

第 4 列已經 88 天,但是進行中,所以沒有被標。第 6 列已完成,才 20 天,還沒到 60,也沒被標。有幾列待歸檔,用 COUNTIF 數:

Google 試算表公式
fx

數 F 欄有幾列待歸檔

=COUNTIF(F2:F7, "待歸檔")

結果是 3。我另外對 F 欄「待歸檔」的列加了灰底(條件式格式,做法在 條件式格式),掃一眼就看得到:

「當前訂單」工作表,F 欄顯示待歸檔的三列整列灰底,其他列維持白底← 左右滑動看完整的圖,點圖可放大

圖:灰底的列就是這次要搬的,數量一眼就看得出來。

搬進歷史:貼成值

搬的時候要做「去公式化」:只留算出來的結果,不帶公式。已經定型的訂單不需要再算,貼成值之後,這些列就不再有公式。

我的做法,每個月或每季做一次:

  1. 在「當前訂單」啟用篩選,F 欄只留「待歸檔」。
  2. 選取這些列的 A 到 E 欄(不含標記欄),複製。
  3. 切到「歷史訂單」,點最後一列的下一列的 A 欄。
  4. 貼成值:「編輯」>「選擇性貼上」>「僅貼上值」。快捷鍵在 Chrome 是 Ctrl+Shift+V(Mac 是 Cmd+Shift+V)。
  5. 核對筆數:歷史新增的列數要等於上面 COUNTIF 的數字,這個例子是 3 列。
  6. 確認沒錯,才回「當前訂單」刪掉那 3 列。
  7. 在「歸檔記錄」工作表記下日期與筆數。

「編輯」>「選擇性貼上」子選單展開,游標停在「僅貼上值」

圖:第 4 步的選單路徑,貼進歷史的是值,不是公式。

我個人堅持第 6 步放在第 5 步之後:先貼過去、核對筆數、才刪來源。貼值不能復原成公式,如果還沒確認就先刪了,貼錯了只能去版本記錄翻,那很麻煩。

這段只說流程,快捷鍵的整套用法在 鍵盤快捷鍵。

歷史放同一份檔案,還是拆成另一份

搬進「歷史訂單」之後,歷史還在同一份試算表裡。要不要再把它拆成另一份檔案,我用下面這張圖想:

左邊是同一份試算表疊著當前訂單與兩張歷史分頁;右邊是主檔加兩份只給檢視的歸檔檔,歸檔檔經 IMPORTRANGE 把摘要匯入主檔的年度摘要← 左右滑動看完整的圖,點圖可放大

圖:左邊歷史越疊越多,右邊主檔只留還在動的資料,要看歷史再用 IMPORTRANGE 取。

我通常不會一開始就拆。拆檔要符合下面其中一項才值得:

  • 舊的年度資料要給不同的人看,或要鎖成唯讀,同一份檔案很難切得這麼細。
  • 檔案開起來或改一格已經明顯慢,而且照 試算表為什麼越來越慢 把範圍和公式整理過,還是慢。
  • 歷史資料要交給別人保管。

反過來,只有你一個人用、隨時要翻舊資料、同一支公式要跨年度加總,放在同一份的分頁就夠了。

拆檔換來的是主檔變輕,歷史檔可以整份設成唯讀;代價是每個「來源檔 → 目標檔」組合首次連結時要授權,出了錯得一個檔一個檔往上追;同一組檔案新增公式不必逐條重新授權。授權的規則跟 IMPORTRANGE 跨試算表同步 一樣:按「允許存取」的人要對歸檔檔至少有檢視權限,其他人打開主檔,看到的是匯進來的結果,不用自己也有歸檔檔的權限。依官方授權規則,目標檔任何編輯者還能匯入該來源的其他範圍,直到授權者被移出來源檔;不是只開放當前公式指定的幾欄。

歸檔檔我會讓所有人都只是檢視者,只有負責歸檔的人能編輯。權限怎麼配,在 共用與保護 講。

要查舊資料時

拆出去之後,免不了有人想問「蘋果紅茶歷年賣了多少」。有個做法我不推薦:把所有歷史資料用 IMPORTRANGE 全部拉回主檔。這等於把冷資料搬回主檔,歸檔就白做了。

我的做法是只在需要的地方取,而且取彙總值,不取明細。「2025 歸檔」工作表長這樣(A 到 E 欄,貼成值):

訂單編號訂單日期品項金額狀態
ORD-0312025/03/12蘋果紅茶1320已完成
ORD-0472025/05/28青茶584已完成
ORD-0662025/08/09蘋果紅茶975已完成
ORD-0832025/11/21烏龍奶茶2064已完成
ORD-0902025/12/17蘋果紅茶436已完成

主檔的「年度摘要」放:

Google 試算表公式
fx

從 2025 歸檔檔取蘋果紅茶的金額合計,標題改成「蘋果紅茶歷史金額」

=QUERY( IMPORTRANGE("2025歸檔檔ID", "2025歸檔!A:E"), "select sum(Col4)" & " where Col3 = '蘋果紅茶'" & " label sum(Col4) '蘋果紅茶歷史金額'", 1 )

「2025歸檔檔ID」換成歸檔檔網址裡的 ID。第一次會出現 #REF! 與「允許存取」,按下去就好。結果:

儲存格顯示
A1蘋果紅茶歷史金額
A22731

1320 加 975 加 436,等於 2731。要提醒一件事:QUERY 還是會讀整個 IMPORTRANGE 範圍,只是畫面上只留下彙總;所以我的習慣是把這種公式集中放在「年度摘要」一張工作表,不要散在每個儲存格。

至於要查單筆舊訂單,我會直接打開歸檔檔用 Ctrl+F 找(Mac 是 Cmd+F),比寫一條巢狀公式實際。

什麼時候不用歸檔

  • 資料不多,開檔與重算都沒有感覺慢,歸檔只是多了一道手續。
  • 舊資料還在被每天的公式引用,例如年度對比的儀表板,一搬走公式就斷了。
  • 慢的原因不在歷史列,而在別處,例如公式範圍、IMPORTRANGE 數量。先照 試算表為什麼越來越慢 找原因,找到再歸檔不遲。

新增與交接

日常維護只有兩件事:每個月或每季,把待歸檔的列照上面七步搬一次;年底時,把「歷史訂單」整張以貼成值的方式複製到一份新檔「2026 歸檔檔」,給所有人檢視權限,再清掉主檔的歷史頁,新的一年接著用。

換人接手看「歸檔記錄」那一頁,上面有每次歸檔的日期與筆數。

1

縮短保留天數

資料同上,基準日 I1 是 2026/10/11。把保留天數 I2 從 60 改成 15 之後,F2:F7 有幾列會標「待歸檔」?請寫出算筆數的公式與結果。

試著先拿一份副本的訂單表跑一次歸檔流程,核對筆數沒問題,再對正式的表動手吧!

我是喜特先生,Mr. Sheet,我們下個教學見!

分享:
#歸檔系統#去公式化#資料管理#試算表設計
喜特先生 Mr. Sheet

喜特先生 Mr. Sheet

數據分析師/商業分析師

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

接下來可以

這篇在技能樹的 Lv.3「資料整合與自動化」,模組「歸檔系統設計」(第 1/1 篇)。讀完這篇,路線上的下一個模組是「匯出與轉換資料格式」。

回到技能樹

相關文章

查看所有文章

留言討論

共 0 則留言

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

免費,隨時可取消。

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