為什麼大家用 Excel 或 Sheets 開立發票
Excel 和 Google Sheets 無所不在,不用額外花錢,而且不必拿出計算機就能處理算術。對於偶爾寄帳單的自由工作者來說,試算表感覺像是阻力最小的路:開一個格線、把工作打進去、讓儲存格幫你加總,再列印成 PDF。這個直覺很合理:計算正是試算表擅長的事。
問題在於,發票不只是一筆加總。它是一份連續編號的法律記錄,必須在數十或數百份文件之間維持一致、能撐過稽核,而且在你寄出後不會悄悄改變。試算表把算術做得很出色,卻把記錄保存的部分做得很差。本指南的其餘部分會認真看待兩個面向:先談讓試算表發票能運作的公式,再談你在依賴它之前應該知道的漏洞。
設定發票格線
從乾淨的版面開始。把你的公司名稱、地址與聯絡資料放在最上方幾列,客戶區塊放在下方,發票號碼與日期放在右側。為明細項目表格留幾列,再在右下方留一小塊放小計、稅額與總計。Excel 與 Google Sheets 在這裡的操作完全相同,後續各節的公式在兩者裡都一樣,僅有一兩個函式名稱的註記。
- 抬頭區塊
- 你的姓名/公司、地址、VAT 或稅號、電子郵件,以及若想做品牌識別可放一個標誌儲存格。
- 收件方區塊
- 客戶名稱、地址,以及在交易需要時的 VAT 號碼。
- 發票基本資料
- 發票號碼、開立日期與到期日,通常放在如 F4、F5、F6 之類的儲存格。
- 明細項目表格
- 說明、數量、單價與行小計的欄位(例如 A10 到 D25)。
- 合計區塊
- 小計、VAT/稅額與總計堆疊在右下方,每一項都由公式驅動。
公式 1:行小計(數量 x 單價)
項目表格中的每一列都是數量乘以單價。如果數量在 B 欄、單價在 C 欄,那麼 D10 的行小計就只是 =B10*C10。把這個公式往下複製到表格的每一列。
為了避免空白列出現多餘的 0 或錯誤,可以包起來讓空白列保持空白:=IF(B10="","",B10*C10)。當你十列只填了三列時,這能讓發票保持整潔。將 D 欄格式設為貨幣(格式 → 數字 → 貨幣),使其顯示帶有你的符號與兩位小數,而非原始數字。
公式 2-4:小計、VAT 行與總計
有了行小計之後,底部區塊就是三個簡短的公式。小計加總每一行的小計:=SUM(D10:D25)。VAT/稅額行把該小計乘以你的稅率:如果小計在 D27 而你收 21% VAT,稅額儲存格就是 =D27*0.21,或更好用 =ROUND(D27*0.21,2),讓它像列印出的數字一樣四捨五入到兩位小數。總計再把兩者相加:=D27+D28。
- 小計
- <code>=SUM(D10:D25)</code>,加總項目表格的每一行。在 Excel 與 Sheets 中相同。
- VAT/稅額
- <code>=ROUND(D27*0.21,2)</code>,小計乘以你的稅率並四捨五入到 2 位小數。把 0.21 換成你的稅率。
- 多重稅率
- 若各行適用不同稅率,加一個稅率欄並使用 <code>=ROUND(SUMPRODUCT(D10:D25,E10:E25),2)</code>。
- 總計
- <code>=D27+D28</code>,小計加稅額。這就是你用大字級寫出的應付金額。
- 金額大寫(選用)
- Excel 沒有內建函式;有些範本使用很長的巢狀公式或一個小巨集。Sheets 則需要指令碼。
試算表真正幫得上忙的地方
公平地看待這個工具:在算術方面,試算表非常出色,值得使用。改一個數量,每一個相依的儲存格都會即時重算。你可以建立折扣模型(=D27*0.9 表示打九折)、運費行、部分訂金與四捨五入規則,而不會悄悄混入錯誤。對於一次性的內部估算、計算要收多少,或在開立正式文件前對複雜的多稅率帳單做合理性檢查,一張快速的工作表是個很好的計算機。
「有用的計算機」與「有風險的記錄系統」之間的界線,就在你開始把那些工作表當成真正的發票寄給客戶、並依賴它們處理稅務的那一刻。這正是下一節的重點所在。
試算表在開立發票上的失敗之處
讓試算表成為絕佳計算機的那份靈活性,也讓它成為糟糕的開帳系統。每一個儲存格都可編輯、沒有任何鎖定,也沒有強制的結構,這對草稿本來說沒問題,對一份法律性的開帳記錄卻很危險。
- 無連續編號
- 多數司法管轄區要求發票號碼連續且無跳號。試算表不會替你指派,你得手動輸入,於是你會把 INV-014 用了兩次或跳過 INV-015,等到報稅時才發現。
- 版本混亂
- invoice_final.xlsx、invoice_final_v2.xlsx、invoice_FINAL_real.xlsx。沒有集中記錄,你會搞不清楚實際寄出的是哪一版、又收了多少款。
- 沒有真正的品牌識別或乾淨 PDF
- 列印成 PDF 會把欄位切掉、跨頁拆散表格,並讓合計區塊錯位。標誌會跑到不該在的位置。要每次都得到乾淨、帶品牌的 PDF 很麻煩。
- 沒有稽核軌跡
- 已寄出的發票應該不可變更。試算表在事後可被編輯且無歷史記錄,所以金額可能悄悄改變,這正是稽核人員與客戶最不信任的地方。
- 稅額四捨五入的陷阱
- 儲存格儲存完整精度卻只顯示兩位小數,所以一欄看起來已四捨五入的數字,加起來的總計可能差一分錢。若沒有在每一行稅額上用 <code>ROUND()</code>,你的 VAT 就對不起來。
- 公式損壞
- 在表格內插入一列,你的 <code>=SUM(D10:D25)</code> 範圍可能不會延伸到它,於是新的那一行就被悄悄漏出總計之外。
- 沒有客戶清單或狀態
- 試算表不會追蹤誰已付款、哪些逾期,也不會儲存可重複使用的客戶資料,你每次都得重新輸入所有東西。
免費產生器這個替代方案
如果你想同時擁有算術與記錄保存,一個專用的發票產生器能給你兩者,又沒有試算表的缺點。它會自動算出行小計、小計、VAT 與總計,是相同的算術,但正確處理了 ROUND(),讓你的稅額永遠對得起來,並加上試算表做不到的東西:自動連續號碼、每次都乾淨帶品牌的 PDF,以及可重複使用的客戶資料。
FreeBillGen 免費、無需帳號,並在你的瀏覽器中執行。你填入各行,它就計算合計與稅額、指派下一個號碼,並以 80 種語言產出整潔的 PDF。如果你喜歡,可以把試算表留著做快速的內部計算,但請從一個專為當開帳記錄而打造的工具開立真正的發票,而不是任何人都能悄悄覆寫的格線。
Excel 發票範本常見問題
Excel 裡發票行小計的公式是什麼?
把數量乘以單價。如果數量在 B10、單價在 C10,行小計就是 =B10*C10。要讓空白列保持空白,使用 =IF(B10="","",B10*C10)。接著用 =SUM(D10:D25) 加總所有行得到小計。
我要如何在試算表發票中加入 VAT 或銷售稅?
把小計乘以你的稅率並四捨五入到兩位小數。如果小計在 D27、稅率是 21%,稅額儲存格就是 =ROUND(D27*0.21,2)。總計則是 =D27+D28。永遠使用 ROUND(),讓顯示的數字與總計對齊到一分錢。
Excel 與 Google Sheets 的公式不同嗎?
就開立發票而言,不同。SUM、IF、ROUND 與 SUMPRODUCT 在兩者中運作完全相同。差異出現在進階附加功能上,例如把金額轉成大寫要用巨集(Excel VBA)相對於 Apps Script(Sheets),但核心的發票公式是一樣的。
為什麼我試算表的 VAT 總計會差一分錢?
儲存格儲存完整精度卻只顯示兩位小數,所以看起來已四捨五入的數字加起來可能得出略微不同的總計。把每一筆稅額計算用 ROUND(...,2) 包起來,讓每個數字都以你實際顯示的精度儲存。這是最常見的試算表開帳錯誤。
試算表能處理連續發票號碼嗎?
無法可靠地做到。沒有內建機制能跨檔案指派下一個無跳號的號碼,所以你得手動輸入,並冒著重複或跳號的風險,而許多稅務機關不允許這種情況。專用產生器會自動替你指派連續號碼。
試算表發票具有法律效力嗎?
可以,前提是它包含每一項必要欄位與正確的連續號碼,但試算表讓合規更難:它們沒有稽核軌跡、在寄出後可被編輯,並仰賴你手動編號。為了取得可靠、不可變更的記錄,多數企業改用專用的發票工具。