我手上有一份訂單表,第一年用起來很順,第三年開始每次打開都要等一下,改一格也會卡一下。公式沒有寫錯,是做完的訂單一直留在同一張表裡,每一列都還帶著公式。
這篇用這份訂單表,示範怎麼把「做完、不會再改」的列搬出主表。
圖:歸檔要做的事,就是把資料從上面一帶慢慢往下搬。
先判斷哪些列可以搬
我用一個問題決定:「這一列還會改嗎?」
- 狀態已經是「已完成」,之後不會再改金額或品項,可以搬。
- 還在進行中、還會補資料的,不能搬,不管它多舊。
- 其他公式還在引用它的,先不要搬。
最後一點要多想一下。套用 三層架構 的說法,歸檔搬走的是原數據層裡的舊列,計算層和呈現層還留在主檔。如果計算層的年度彙總還會用到去年的訂單,搬走之後那條公式就算不到了,要先決定彙總怎麼接(後面「要查舊資料時」會講)。
變慢是怎麼發生的
訂單表變慢的過程,大致是這樣:
圖:一路往下,每一步都沒有人覺得不對,到第四步才有人注意。
這條鏈上,歸檔切的是第一步:讓列不要一直累積。至於你的檔案是不是真的慢在這裡,要自己看,我沒有替你的檔案量過。檢查方式(哪些函式、哪些範圍拖慢)在 試算表為什麼越來越慢 有講,先照那篇看一次再決定要不要歸檔。
先標出待歸檔的列
與其每次憑印象找哪些可以搬,我會在「當前訂單」多加一欄,讓公式標出來。資料長這樣,F 欄是要加的標記欄:
| 訂單編號 | 訂單日期 | 品項 | 金額 | 狀態 |
|---|---|---|---|---|
| ORD-101 | 2026/04/18 | 蘋果紅茶 | 1665 | 已完成 |
| ORD-118 | 2026/06/02 | 烏龍奶茶 | 2310 | 已完成 |
| ORD-125 | 2026/07/15 | 青茶 | 639 | 進行中 |
| ORD-139 | 2026/08/09 | 蘋果紅茶 | 448 | 已完成 |
| ORD-152 | 2026/09/21 | 桂花烏龍 | 1075 | 已完成 |
| ORD-160 | 2026/10/04 | 蘋果綠茶 | 912 | 進行中 |
這 5 欄在 A 到 E 欄,第 1 列是標題,資料從第 2 列到第 7 列。
H1 放「基準日」、I1 放 2026/10/11;H2 放「保留天數」、I2 放 60。這兩格是參數:做完的訂單放滿幾天才歸檔,看你多久會回頭翻,我先放 60。
基準日我在文章裡寫死成 2026/10/11,是為了讓結果不會變。實際用的時候,I1 改成 就會跟著今天走,標記的結果也會每天變。
F2 輸入,往下拖到 F7:
狀態是已完成,而且距離基準日超過保留天數,就標「待歸檔」
=IF(AND(E2="已完成", DAYS($I$1, B2) > $I$2), "待歸檔", "")E2="已完成":只有做完的才可能歸檔。DAYS($I$1, B2):從訂單日期到基準日隔幾天。$I$1前面加$鎖住,往下拖才不會跑掉。> $I$2:超過保留天數。
來看看結果:
| 列 | 訂單日期 | 狀態 | F 歸檔標記 |
|---|---|---|---|
| 2 | 2026/04/18 | 已完成 | 待歸檔 |
| 3 | 2026/06/02 | 已完成 | 待歸檔 |
| 4 | 2026/07/15 | 進行中 | |
| 5 | 2026/08/09 | 已完成 | 待歸檔 |
| 6 | 2026/09/21 | 已完成 | |
| 7 | 2026/10/04 | 進行中 |
第 4 列已經 88 天,但是進行中,所以沒有被標。第 6 列已完成,才 20 天,還沒到 60,也沒被標。有幾列待歸檔,用 COUNTIF 數:
數 F 欄有幾列待歸檔
=COUNTIF(F2:F7, "待歸檔")結果是 3。我另外對 F 欄「待歸檔」的列加了灰底(條件式格式,做法在 條件式格式),掃一眼就看得到:
圖:灰底的列就是這次要搬的,數量一眼就看得出來。
搬進歷史:貼成值
搬的時候要做「去公式化」:只留算出來的結果,不帶公式。已經定型的訂單不需要再算,貼成值之後,這些列就不再有公式。
我的做法,每個月或每季做一次:
- 在「當前訂單」啟用篩選,F 欄只留「待歸檔」。
- 選取這些列的 A 到 E 欄(不含標記欄),複製。
- 切到「歷史訂單」,點最後一列的下一列的 A 欄。
- 貼成值:「編輯」>「選擇性貼上」>「僅貼上值」。快捷鍵在 Chrome 是 Ctrl+Shift+V(Mac 是 Cmd+Shift+V)。
- 核對筆數:歷史新增的列數要等於上面
COUNTIF的數字,這個例子是 3 列。 - 確認沒錯,才回「當前訂單」刪掉那 3 列。
- 在「歸檔記錄」工作表記下日期與筆數。
圖:第 4 步的選單路徑,貼進歷史的是值,不是公式。
我個人堅持第 6 步放在第 5 步之後:先貼過去、核對筆數、才刪來源。貼值不能復原成公式,如果還沒確認就先刪了,貼錯了只能去版本記錄翻,那很麻煩。
這段只說流程,快捷鍵的整套用法在 鍵盤快捷鍵。
歷史放同一份檔案,還是拆成另一份
搬進「歷史訂單」之後,歷史還在同一份試算表裡。要不要再把它拆成另一份檔案,我用下面這張圖想:
圖:左邊歷史越疊越多,右邊主檔只留還在動的資料,要看歷史再用 IMPORTRANGE 取。
我通常不會一開始就拆。拆檔要符合下面其中一項才值得:
- 舊的年度資料要給不同的人看,或要鎖成唯讀,同一份檔案很難切得這麼細。
- 檔案開起來或改一格已經明顯慢,而且照 試算表為什麼越來越慢 把範圍和公式整理過,還是慢。
- 歷史資料要交給別人保管。
反過來,只有你一個人用、隨時要翻舊資料、同一支公式要跨年度加總,放在同一份的分頁就夠了。
拆檔換來的是主檔變輕,歷史檔可以整份設成唯讀;代價是每個「來源檔 → 目標檔」組合首次連結時要授權,出了錯得一個檔一個檔往上追;同一組檔案新增公式不必逐條重新授權。授權的規則跟 IMPORTRANGE 跨試算表同步 一樣:按「允許存取」的人要對歸檔檔至少有檢視權限,其他人打開主檔,看到的是匯進來的結果,不用自己也有歸檔檔的權限。依官方授權規則,目標檔任何編輯者還能匯入該來源的其他範圍,直到授權者被移出來源檔;不是只開放當前公式指定的幾欄。
歸檔檔我會讓所有人都只是檢視者,只有負責歸檔的人能編輯。權限怎麼配,在 共用與保護 講。
要查舊資料時
拆出去之後,免不了有人想問「蘋果紅茶歷年賣了多少」。有個做法我不推薦:把所有歷史資料用 IMPORTRANGE 全部拉回主檔。這等於把冷資料搬回主檔,歸檔就白做了。
我的做法是只在需要的地方取,而且取彙總值,不取明細。「2025 歸檔」工作表長這樣(A 到 E 欄,貼成值):
| 訂單編號 | 訂單日期 | 品項 | 金額 | 狀態 |
|---|---|---|---|---|
| ORD-031 | 2025/03/12 | 蘋果紅茶 | 1320 | 已完成 |
| ORD-047 | 2025/05/28 | 青茶 | 584 | 已完成 |
| ORD-066 | 2025/08/09 | 蘋果紅茶 | 975 | 已完成 |
| ORD-083 | 2025/11/21 | 烏龍奶茶 | 2064 | 已完成 |
| ORD-090 | 2025/12/17 | 蘋果紅茶 | 436 | 已完成 |
主檔的「年度摘要」放:
從 2025 歸檔檔取蘋果紅茶的金額合計,標題改成「蘋果紅茶歷史金額」
=QUERY(
IMPORTRANGE("2025歸檔檔ID", "2025歸檔!A:E"),
"select sum(Col4)" &
" where Col3 = '蘋果紅茶'" &
" label sum(Col4) '蘋果紅茶歷史金額'",
1
)「2025歸檔檔ID」換成歸檔檔網址裡的 ID。第一次會出現 #REF! 與「允許存取」,按下去就好。結果:
| 儲存格 | 顯示 |
|---|---|
A1 | 蘋果紅茶歷史金額 |
A2 | 2731 |
1320 加 975 加 436,等於 2731。要提醒一件事:QUERY 還是會讀整個 IMPORTRANGE 範圍,只是畫面上只留下彙總;所以我的習慣是把這種公式集中放在「年度摘要」一張工作表,不要散在每個儲存格。
至於要查單筆舊訂單,我會直接打開歸檔檔用 Ctrl+F 找(Mac 是 Cmd+F),比寫一條巢狀公式實際。
什麼時候不用歸檔
- 資料不多,開檔與重算都沒有感覺慢,歸檔只是多了一道手續。
- 舊資料還在被每天的公式引用,例如年度對比的儀表板,一搬走公式就斷了。
- 慢的原因不在歷史列,而在別處,例如公式範圍、
IMPORTRANGE數量。先照 試算表為什麼越來越慢 找原因,找到再歸檔不遲。
新增與交接
日常維護只有兩件事:每個月或每季,把待歸檔的列照上面七步搬一次;年底時,把「歷史訂單」整張以貼成值的方式複製到一份新檔「2026 歸檔檔」,給所有人檢視權限,再清掉主檔的歷史頁,新的一年接著用。
換人接手看「歸檔記錄」那一頁,上面有每次歸檔的日期與筆數。
縮短保留天數
資料同上,基準日 I1 是 2026/10/11。把保留天數 I2 從 60 改成 15 之後,F2:F7 有幾列會標「待歸檔」?請寫出算筆數的公式與結果。
試著先拿一份副本的訂單表跑一次歸檔流程,核對筆數沒問題,再對正式的表動手吧!
我是喜特先生,Mr. Sheet,我們下個教學見!
接下來可以
這篇在技能樹的 Lv.3「資料整合與自動化」,模組「歸檔系統設計」(第 1/1 篇)。讀完這篇,路線上的下一個模組是「匯出與轉換資料格式」。
回到技能樹相關文章
查看所有文章留言討論
共 0 則留言


