很多小店家跟我說同一件事:「月底一盤點,帳上跟實際差個幾十個,從來沒對過。」

他們大多用 Excel 或 Google 試算表記庫存,而且都很認真在記。落差通常不是因為誰偷懶,而是因為記錄的方式允許你直接改數字,卻沒有要求你說明為什麼改

少量庫存,試算表本來就夠用

先把話說在前面:品項不多、只有一個人維護、進出貨不頻繁的時候,試算表是合理的選擇,不需要為了「比較專業」而換系統。

問題不在於 Excel 本身弱,而在於預設的用法——多數人開一張表,一格一個商品,賣掉就把數字改小。這種用法沒有留下任何異動的痕跡。

「改數字」與「走流程」的差別

改數字:直接把 A2 從 100 改成 85,庫存就少了 15 個。但為什麼少?是賣出去了、損壞了,還是手誤?表格本身不知道。

走流程:開一張出貨單,填明細、填數量、確認。庫存被扣的同時,記下了「誰、什麼時候、因為什麼原因、扣了幾個」。

這個差別不是「Excel 對上系統」,而是「只記結果」對上「記下每一次異動」。同一張試算表,如果你改成一列一筆異動、期末用加總算出結存,就已經拿回大半的可追溯性。

試算表能補到什麼程度

現在的試算表工具比多數人以為的完整:

  • 版本紀錄:Microsoft 365 與 Google 試算表都有版本歷程,可以看到誰在什麼時候改了什麼、必要時還原。單機的舊版 Excel 檔案就沒有這個保障。
  • 權限:共享檔案可以設定檢視或編輯權限,也可以鎖定工作表、保護特定儲存格範圍。設定到什麼程度,取決於你有沒有真的去設。
  • 資料驗證:可以限制只能輸入清單裡的商品編號與正數,減少打錯的機會。

所以「Excel 沒有紀錄、沒有權限」這種講法並不準確——能不能追溯,取決於你用的版本、共享方式,以及有沒有把這些功能打開

試算表真正難處理的,是下面這幾件事:多人同時大量編輯時的衝突與覆蓋、把單據明細與庫存結存綁在一起、以及在幾千筆異動裡快速查出某一批貨的來源。這些不是設定能補的,而是資料結構的差別。

三個最常見的錯帳場景

場景一:出貨忘了扣

貨剛出門,電話又來了,單據想說下午再補,結果下午忘了。今天的庫存少 20 個,帳上看不出來。

場景二:進貨單位搞混

「剛進了 2 箱汽水」,有人把箱當瓶填,庫存多了 24 瓶。直到月底盤點才發現差這麼多。

場景三:取消的單沒有反向還原

某筆出貨取消了,刪掉試算表那一行,卻忘了把庫存加回來。這種最難查,因為連紀錄都被刪掉了。

三種都有一個共同點:動作發生了,但異動沒有被記成一筆有原因的紀錄。

進銷存系統做的是「不給你改數字」

BZ66 的核心設計只有一句:庫存數字必須由單據異動產生,不能手動改。

出貨就開出貨單、進貨就開進貨單、取消就作廢整張單並由系統還原庫存。連損耗與盤點差異這種非正常異動,也要透過調整單填原因,而不是直接改總數。

這個限制本身就是價值所在——代價是彈性變少,你不能再「先改一下、之後再說」。

對不起來的時候,至少知道從哪查

用了進銷存系統之後,如果月底還是有差異,比較常見的原因有:有單沒開、單位或換算填錯、盤點當下還在進出貨、或是實際短少(破損、遺失、竊損)。系統幫你做到的是可以一筆一筆查異動紀錄,而不是保證數字一定會準。

這也是試算表與進銷存系統最本質的差別:不是功能多寡,而是「有沒有把每一次異動留成紀錄」。

想先用試算表把流程建起來,可以照《小公司如何管理庫存?從進貨到盤點的基本流程》 的步驟做——那篇也說明了什麼時候試算表開始不夠用。

相關指南

相關開發日誌