存貨移動平均法是每次進貨後就用結存金額除以結存數量重算平均單價,之後賣出的貨品,再以當時的單價計算銷貨成本。贊贊小屋用自己開發的 ERP 進銷存系統,登錄紅茶葉的三筆進貨、兩筆銷貨,逐筆算一次移動平均法,再和加權平均法、先進先出法比較,看看同樣的交易為什麼會算出不同的期末存貨與毛利。
一、存貨計價方法是什麼?財政部介紹的三種計算方式
存貨計價方法,就是決定進貨成本要怎麼分配給已經賣出的商品、與還留在倉庫的商品的規則。財政部稅務入口網的「國稅節稅手冊」,在「營利事業所得稅節稅手冊」裡有一頁〈三、如何選用適當存貨計價方法〉,更新日期是 113-05-24。頁面先說明,在營利事業所得稅查核準則的規範下,存貨計價方法有個別辨認法、先進先出法、加權平均法、移動平均法,或其他經主管機關核定的方法,而且不同方法對企業損益的影響相當大。接著用一家「xx公司」的進銷資料當例子:01/01 的期初存貨是 1,000 單位,單價 80;之後在 03/01、06/03、08/04、11/02 各進一批貨,共進貨 5,700 單位,單價逐次升到 100。期初存貨加上本期進貨,可供銷售的存貨合計 6,700 單位;全年銷貨從 02/05 到 12/12 共五筆,合計 4,900 單位,所以期末存貨數量是 1,800 單位。同樣一份資料,再分別用先進先出法、加權平均法與移動平均法計算,三種結果各不相同。
結果會不同,是因為進貨的錢要分成兩部分:已經賣掉的部分,會成為損益表上的銷貨成本;還沒賣的部分,則留在資產負債表上的期末存貨。進貨總金額固定,只要分配的方式不同,銷貨成本與期末存貨就不同,銷貨收入減掉銷貨成本得到的毛利,自然也跟著改變。
選好方法之後,不能每筆交易任意換。營利事業所得稅查核準則第 51 條規定,存貨成本可以按存貨的種類或性質,採用上述的方法計算,但同一會計年度內,同一種類或性質的存貨,不得採用不同的估價方法;財政部也提醒,企業應慎重選用,並且各期一致採用。
二、ERP進銷存系統:從進貨、銷貨到存貨計價
要實際算一次,需要一組可以重複操作的進銷貨資料,所以贊贊小屋用自己開發的「贊贊小屋 ERP:零售業進銷存」來示範。打開首頁,畫面中央的流程圖有四個方塊,依序是「供應商」「進貨單」「銷貨單」與「存貨計價」,點選任何一個方塊,就會進入那一項功能;左側選單則分成「基本資料」「進銷貨」「存貨」與「範例資料」。方塊下方的說明寫著,這是給飲料店、小超商這類小型零售業使用的系統,只要登錄商品、供應商、進貨單與銷貨單,系統就會用加權平均法、移動平均法與先進先出法各算一次期末存貨與銷貨成本;客人是一般消費者,所以不用建立客戶資料。
這四個功能剛好對應進銷存最基本的資料流:進貨記下買了什麼、成本多少,銷貨記下賣了什麼、收了多少錢,存貨計價則把兩邊的資料合起來,算出已賣掉的成本與還留著的存貨。系統裡的銷貨單不填成本,原因就在於成本不是賣的時候決定的,而是要依照選用的計價方法算出來。
提到這裡,還要分清楚「計價方法」與「盤存制度」是兩件相關但不同的事。永續盤存制是平時持續記錄存貨的增加與減少,定期盤存制則是平時只記進貨,期末盤點後再推算銷貨成本。移動平均法每次進貨後都要更新單價,因此很適合搭配能持續記錄存貨異動的系統;不過這套 ERP 是簡化的教學版本,沒有盤點、調整與期末結帳功能,只用來理解不同計價方法的計算過程。
三、進貨單與銷貨單:建立紅茶葉的交易資料
範例商品是紅茶葉,單位是「包」,供應商是「大同茶行」。在「進貨單」頁面按下「報表」,就會顯示「進貨單明細表」,每一列是一張單據的一個商品,點選任何一列,都能回到那張進貨單修改或查詢。三張進貨單分別是:2026 年 1 月 5 日進貨 100 包,單價 10 元,金額 1,000 元;2 月 10 日進貨 100 包,單價 14 元,金額 1,400 元;4 月 10 日進貨 200 包,單價 16 元,金額 3,200 元。明細表最下方的「金額合計」是 5,600 元,三筆合計 400 包。單價從 10 元一路漲到 16 元,是範例特別安排的價格上漲情境,這樣三種方法的差異才看得出來。這套系統的進貨單是直接登錄,沒有請購、採購與驗收這幾個步驟;進貨前的單據流程,可以參考進貨流程圖。
接著是「銷貨單」。銷貨單 SA-202605-0001 的日期是 2026 年 5 月 20 日,商品選「紅茶葉」,數量填 150 包,「售價」填 20 元,系統自動算出金額 3,000 元;畫面上方的說明也寫明,賣出的成本不在這裡填,由「存貨計價」依計價方法算出。另一張銷貨單在 3 月 1 日,同樣賣出 150 包、售價 20 元。兩次合計賣出 300 包,銷貨收入 6,000 元,所以期末存貨是 400 包減 300 包,剩下 100 包。
進貨單與銷貨單分別記錄了兩種不同性質的金額。進貨單上的「單價」記錄商品的取得成本,銷貨單上的「售價」則用來計算銷貨收入。至於已售出商品的成本,還需要依存貨計價方法計算;將銷貨收入減去銷貨成本,得到的才是銷貨毛利。這個範例的銷貨收入固定是 6,000 元,因此後面三種方法算出的毛利差異,全部來自銷貨成本的分配方式。另外,實務上存貨的取得成本,除了商品本身的進貨價格,還可能包含運費、進口稅捐等使存貨達到目前地點與狀態的必要支出;這個範例為了讓計算容易跟上,直接把進貨單上的單價當成完整的單位成本。
四、加權平均法:期末一次計算平均成本
先看加權平均法。在「存貨計價」選好紅茶葉,頁面上的「加權平均法(期末一次算)」會先列出公式:加權平均單價等於進貨金額合計除以進貨數量合計,期末存貨等於期末數量乘以加權平均單價,銷貨成本等於進貨金額合計減去期末存貨。下方列出三筆進貨,合計 400 包、5,600 元,兩筆銷貨共 300 包,所以期末數量是 100 包。接著用三個步驟計算:5,600 除以 400,得到加權平均單價 14.00 元;期末存貨是 14.00 乘以 100,等於 1,400 元;銷貨成本則是 5,600 減 1,400,等於 4,200 元。
加權平均法的想法,是把不同批次的成本混在一起平均,不再追問賣掉的是哪一批。它的計算簡單,但平均單價要等進貨資料齊全才能得到,所以這個範例採用的是期末一次計算,平時並不會即時知道每一筆銷貨的成本。公式裡的「期初存貨視同進貨」,指的是如果期初就有存貨,要把它的數量與金額一起加進進貨裡平均;這個範例沒有期初存貨,因此只有三筆進貨。
這裡也要先有一個印象:加權平均法是把整段期間的進貨合在一起,一次算出一個單價,而移動平均法則是每進一次貨就算一次。兩者的差別,在於平均成本在什麼時點計算。
五、存貨移動平均法:每次進貨後重新計算單價
存貨移動平均法的算法是:每次進貨後,新的平均單價等於「進貨前的結存金額加上本次進貨金額」,除以「進貨前的結存數量加上本次進貨數量」;每次銷貨的成本,則等於銷貨數量乘以銷貨當時的平均單價。接著用 ERP 逐筆算一次。把計價方式切到「移動平均法(每次進貨後重算)」,畫面上的表格不再只是總和,而是依照交易日期,一列一列呈現「進貨」「銷貨」與「結存」,每一組都有數量、單價與金額。畫面上的做法說明很直接:每進一次貨,就用「結存金額除以結存數量」重算單價;賣出時,用當下的單價來算成本。
1 月 5 日第一次進貨,100 包、單價 10 元、金額 1,000 元,因為這是第一筆,結存就是 100 包、金額 1,000 元,單價 10.00 元。2 月 10 日第二次進貨 100 包、單價 14 元、金額 1,400 元,結存變成 200 包,金額是 1,000 加 1,400,等於 2,400 元,新的單價是 2,400 除以 200,得到 12.00 元。第二批雖然是 14 元買進,但倉庫裡這 200 包是由兩批不同成本的貨混合而成,所以平均成本是 12 元,不是 14 元。
3 月 1 日賣出 150 包,這時的單價是 12.00 元,銷貨成本就是 150 乘以 12.00,等於 1,800 元。結存因此減少為 50 包,金額是 2,400 減 1,800,等於 600 元,單價仍然是 12.00 元。這是移動平均法一個很重要的特點:銷貨只會減少結存的數量與金額,不會改變單價,單價要等到下一次進貨才會重新計算。
4 月 10 日第三次進貨 200 包、單價 16 元、金額 3,200 元。這時要把原本剩下的 50 包、600 元,與新進的 200 包、3,200 元合併,結存成為 250 包、3,800 元,新的單價是 3,800 除以 250,得到 15.20 元。5 月 20 日再賣出 150 包,使用的是這時的 15.20 元,銷貨成本是 150 乘以 15.20,等於 2,280 元;結存剩下 100 包,金額是 3,800 減 2,280,等於 1,520 元,單價維持 15.20 元。兩次銷貨成本合計是 1,800 加 2,280,等於 4,080 元,期末存貨是 1,520 元;也可以從進貨總額驗算,5,600 減 4,080,剛好等於 1,520 元。
移動平均法的好處,是每次進貨之後,企業都能看到更新後的存貨成本,賣出的每一筆也立刻有對應的成本,適合需要隨時掌握毛利的情況。但它的代價是計算次數多,如果進銷貨頻繁,人工逐筆重算很容易出錯,通常需要系統來協助。而且交易的日期與順序很重要:同樣的進貨與銷貨,只要先後順序不同,各筆銷貨使用的單價就可能不同。贊贊小屋這套 ERP 並不把銷貨成本另外存起來,而是每次進入「存貨計價」才依單據即時計算,所以補登一張較早日期的進貨單,後面的單價與成本也會跟著重算。
另外,財政部的資料稱這個方法為「移動平均法」,書籍或網路上也常見「移動加權平均法」的說法,一般指的是同樣每次進貨後重新計算平均單價的作法。
六、先進先出法:依照進貨批次計算銷貨成本
最後看先進先出法。「先進先出法(先買的先賣)」的做法,是賣出時從最早進來、還沒賣完的那一批開始扣,期末剩下的,就是最近進貨的那幾批。3 月 1 日賣出 150 包,先扣 1 月 5 日進貨的 100 包、每包 10 元,不夠的 50 包再從 2 月 10 日進貨的 100 包裡扣,每包 14 元,所以成本是 100 乘以 10 加上 50 乘以 14,等於 1,700 元。
5 月 20 日再賣 150 包,這時 2 月 10 日那一批還剩 50 包,先扣完,每包 14 元,不夠的 100 包再從 4 月 10 日進貨的 200 包裡扣,每包 16 元,成本是 50 乘以 14 加上 100 乘以 16,等於 2,300 元。兩次銷貨成本合計 4,000 元;期末剩下的是 4 月 10 日進貨的 100 包,每包 16 元,期末存貨 1,600 元。
先進先出法屬於「成本流動假設」,意思是用一套假設來決定成本怎麼分配,並不代表倉庫真的先拿最早進貨的商品出貨。像食品、飲料這類有保存期限的商品,實務上常會依到期日安排出貨,也就是先到期的先賣;實際出貨的順序和會計上採用的成本流動假設,是兩件互相有關、卻不一定相同的事。先進先出法因為期末存貨用的是最近幾批的進價,所以資產負債表上的存貨金額,通常比較貼近近期的進貨成本。
七、存貨計價方法比較:期末存貨、銷貨成本與毛利
把三種方法放在同一張表,就能直接比較。紅茶葉的期末數量都是 100 包,銷貨收入都是 6,000 元,差別出現在其他三列:
| 項目 | 加權平均法 | 移動平均法 | 先進先出法 |
|---|---|---|---|
| 期末存貨金額(元) | 1,400 | 1,520 | 1,600 |
| 銷貨成本(元) | 4,200 | 4,080 | 4,000 |
| 銷貨毛利(元) | 1,800 | 1,920 | 2,000 |
三種方法的期末存貨加上銷貨成本,都等於進貨總額 5,600 元;不同的只是這 5,600 元分配給「還在架上」與「已經賣掉」的比例。這個範例的進貨單價從 10 元漲到 16 元,在價格逐漸上漲的情況下,先進先出法把較早、較便宜的成本先算成銷貨成本,留下較貴的存貨,因此期末存貨最大、銷貨成本最小、毛利最高;加權平均法相反;移動平均法居中。
不過,這是這組價格上漲資料的結果,不能直接推論先進先出法永遠毛利最高,也不能因為加權平均法的毛利最低,就認為它一定最節稅。價格如果下跌或上下波動,三種方法的排序就可能改變;在其他條件相同時,銷貨成本愈低,毛利與課稅所得就愈高,這也是財政部提醒企業要慎重選擇、各期一致採用的原因。這套 ERP 把三種方法並列,是為了讓讀者看清楚差異,並不是說正式帳務可以在不同方法之間隨意切換。
總成本不變,變的是怎麼分配
從這組資料來看,最容易被忽略的是,三種方法用的是同一份進貨單、同一份銷貨單,進貨總額也都是 5,600 元,改變的只有「哪一部分算已經賣掉」。移動平均法需要逐筆往下算,才能看出平均單價如何從 10 元、12 元走到 15.20 元,也因此特別適合交給系統處理;加權平均法計算簡單,卻要等資料齊全;先進先出法最貼近大家對「先買先賣」的直覺,卻只是一種成本分配的假設。
選用哪一種方法,答案不在哪一個數字比較漂亮,而是要看商品的特性、進貨價格的變化,以及公司有沒有能持續記錄存貨的系統,選定之後再依規定一致地使用。把進貨單、銷貨單與存貨計價放在同一個系統裡一步步操作,原本抽象的公式,就變成每一筆都找得到出處的數字,也更容易判斷結果是怎麼來的。
