
先進先出(FIFO,First In First Out)有兩種意思。在倉庫,它是出貨規則:先入庫的那批貨先出去,避免舊貨放到過期。在會計,它是存貨計價方法:假設先買進的那批成本先轉成銷貨成本,月底剩下的庫存用最近幾批的進價計算。兩種都叫先進先出,管的東西不一樣,負責的人也不一樣。
我們跟中小企業聊庫存系統時,常遇到同一間公司裡,倉管說的先進先出和會計說的先進先出各講各的。倉管在意的是「哪一箱先拿」,會計在意的是「這批出貨的成本算幾塊」。兩邊對不上,月底就會出現帳上說剩 50 件、倉庫說剩的那 50 件其實是上個月那批的狀況。
這篇先把兩種意思分清楚,再分別講倉庫怎麼做到先進先出、會計怎麼算先進先出法,最後比較 Excel 手管與系統管的差別。想看整個物料流程(料號、領料、呆料)可以看物料管理怎麼做;正在挑庫存軟體的話,看庫存管理系統怎麼選。這篇只講先進先出這一件事。
先進先出是什麼?倉庫出貨與存貨計價的兩種意思
先講結論:倉庫的先進先出管「實體貨物的出貨順序」,會計的先進先出法管「帳上成本的流動順序」。兩者可以一致,也可以不一致,法規也沒有要求兩邊一定要同一套。
比較項目 | 倉庫的先進先出(出貨規則) | 會計的先進先出法(存貨計價) |
|---|---|---|
管什麼 | 哪一批實體貨先出庫 | 哪一批進貨成本先轉成銷貨成本 |
誰在用 | 倉管、物流、生管、門市 | 會計、財務、記帳士 |
出錯的後果 | 貨放到過期、客訴、報廢、食品業被稽查 | 毛利與存貨金額算錯、報稅與查帳出問題 |
靠什麼做到 | 批號、效期標示、儲位規劃、揀貨順序 | 進貨單價紀錄、計價方法設定、月結計算 |
法規依據 | 食品業:食品良好衛生規範準則第 7 條 | 所得稅法第 44 條、IFRS 的 IAS 2 |
常見替代做法 | 先到期先出(FEFO) | 加權平均法、移動平均法、個別辨認法 |
所以搜「先進先出」時,先問自己是哪一邊的人。倉管、門市主管看下一段「倉庫的先進先出」;會計和老闆想知道成本怎麼算,直接跳到「存貨計價」那段。兩邊都想搞懂的,通常是準備把庫存從 Excel 搬到系統的老闆,最後一段會用得上。
如果你已經在想「我們的倉庫流程適不適合上系統」,也可以直接加 LINE 把現在的做法丟過來,我們先幫你看哪一段最值得先動。
倉庫的先進先出:FIFO、FEFO、LIFO 差在哪
一句話分工:一般貨用先進先出(FIFO),有效期限的貨用先到期先出(FEFO),只有不怕放、拿取方便比較重要的散裝貨,現場才會出現後進先出(LIFO)。
出貨原則 | 怎麼出 | 適合的產業與貨品 | 要先準備什麼 |
|---|---|---|---|
先進先出 FIFO | 入庫日期越早越先出 | 五金、零件、包材、服飾、一般消費品 | 每批入庫日期、批號或入庫序號 |
先到期先出 FEFO | 有效期限越近越先出,不看入庫日 | 食品、飲料、藥品、化妝品、保健品、化學品 | 每批有效日期,同一料號分批記錄 |
後進先出 LIFO | 最後放進去的先拿出來 | 砂石、煤炭、堆疊的建材,或推入式貨架 | 多半不用特別管,但要確認貨不會變質 |
指定批號出貨 | 客戶或規格指定哪一批就出哪一批 | 電子料、醫材、有追溯要求的原料 | 批號、檢驗報告、客戶指定紀錄 |
FIFO 和 FEFO 最容易搞混。大部分情況下先進的那批也會先到期,兩個規則結果一樣;但只要供應商這次送來的貨效期比上次短(例如上批是剩 12 個月的庫存品,這批是剩 6 個月的尾貨),照入庫日出貨就會讓短效期那批卡在架上。這也是食品業法規把兩種都寫進去的原因。
食品良好衛生規範準則第 7 條寫得很直接:倉儲作業「依先到期先出或先進先出原則辦理,並確實記錄」。重點在後半句「確實記錄」,稽查時看的是紀錄。違反良好衛生規範、經命限期改正卻沒改的,食品安全衛生管理法第 44 條的罰鍰是新臺幣 6 萬元到 2 億元。食品業的出貨順序光靠倉管記性,稽查時拿不出東西。
食品業如果還要做到原料追溯,先進先出只是第一步,後面還有批號往上追到供應商、往下追到客戶,細節可以看食品追溯追蹤系統怎麼做。
存貨計價的先進先出法:和加權平均法、個別辨認法一起算一次
先講結論:同一批進出貨,用不同計價方法,算出來的銷貨成本和期末存貨都不一樣,毛利也跟著不一樣。物價上漲時,先進先出法的銷貨成本最低、帳面毛利最高、期末存貨最接近現在的進價。
用一個簡單的例子算給你看。某商品這個月進貨兩次,賣出一次:
- 1 月 5 日進貨 100 件,每件 50 元,共 5,000 元
- 1 月 15 日進貨 100 件,每件 60 元,共 6,000 元
- 1 月 25 日賣出 150 件(實際出貨是第一批 80 件、第二批 70 件)
可供銷售的總成本是 11,000 元。四種方法的算法與結果如下(後進先出只是對照,台灣現行規定不能用,原因下一小節說明):
計價方法 | 銷貨成本怎麼算 | 銷貨成本 | 期末存貨 50 件 |
|---|---|---|---|
先進先出法 | 100 件 × 50 元 + 50 件 × 60 元 | 8,000 元 | 50 件 × 60 元 = 3,000 元 |
加權平均法 | 平均單價 11,000 ÷ 200 = 55 元,150 件 × 55 元 | 8,250 元 | 50 件 × 55 元 = 2,750 元 |
個別辨認法 | 照實際出貨批次:80 件 × 50 元 + 70 件 × 60 元 | 8,200 元 | 20 件 × 50 元 + 30 件 × 60 元 = 2,800 元 |
後進先出法(對照) | 100 件 × 60 元 + 50 件 × 50 元 | 8,500 元 | 50 件 × 50 元 = 2,500 元 |
四列的銷貨成本加期末存貨都是 11,000 元,差別只在成本被分到哪一邊。假設這 150 件賣了 15,000 元,先進先出法的毛利是 7,000 元,加權平均法是 6,750 元,同一筆生意帳上差了 250 元。品項一多、進價一波動,差額就會放大。財政部稅務入口網的節稅手冊也用同一批進銷貨比較過不同方法,結論一樣:不同存貨計價方法對損益的影響很大。
移動平均法是加權平均法的變形:每進一次貨就重算一次平均單價。上面的例子因為出貨發生在兩次進貨之後,結果和加權平均法相同;如果中間穿插出貨,數字就會不一樣。用系統管庫存的公司多半採移動平均,因為每一筆出庫當下就能算出成本。
為什麼台灣不能用後進先出法
所得稅法第 44 條列出的存貨成本計算方法是「個別辨認法、先進先出法、加權平均法、移動平均法或其他經主管機關核定之方法」,清單裡沒有後進先出法。上市櫃公司採用的 IFRS,其中IAS 2 存貨準則允許的成本公式只有先進先出法與加權平均法(加上個別辨認),後進先出法在 2003 年修訂時就已刪除。
原因從上面的表就看得出來:物價上漲時,後進先出會讓期末存貨停在很舊的進價,資產負債表上的存貨金額跟現實脫節,帳面利潤也被壓低。美國稅法目前仍允許 LIFO,所以看英文資料時會看到它,台灣公司照著用就會出問題。
計價方法選定後要一致使用,中途想換要先跟會計師確認申報程序。實際申報與查帳細節,請以會計師與國稅局的意見為準。
倉庫怎麼真的做到先進先出:批號、效期標示、儲位與揀貨順序
先講結論:先進先出要能做到,靠的是四件事一起做:每批貨有身分(批號)、看得到期限(效期標示)、放的位置讓舊貨好拿(儲位)、揀貨的人拿到的單子已經排好順序(揀貨單)。少一件,現場就會回到「哪箱近拿哪箱」。
落地環節 | 具體做法 | 常見破功點 |
|---|---|---|
入庫給批號 | 驗收時就給批號,規則可用「料號 + 入庫日 + 流水號」;同料號不同效期一定要拆批 | 驗收很趕,整批混成一筆,後面就分不出新舊 |
效期標示 | 箱外貼大字的入庫日與到期日,或用顏色貼紙代表月份 | 標籤字太小、貼在箱子背面,揀貨時看不到 |
儲位規劃 | 流動式貨架從後面補貨、前面取貨;平面堆放就新貨放後排或下層 | 新貨放最前面最方便,結果舊貨永遠在最裡面 |
揀貨順序 | 揀貨單直接印出要拿哪個儲位、哪一批 | 揀貨單只寫料號和數量,由現場自己判斷 |
出庫紀錄 | 出貨單記錄實際出了哪一批,方便追溯與盤點核對 | 只記數量不記批號,盤點時對不上也查不出原因 |
入庫端的批號要從驗收單就開始記,採購端的採購單如果能預先帶出供應商與預計到貨批次,驗收時會更快。出庫端則看出貨單和領料單有沒有批號欄位,沒有的話先進先出就只能靠倉管的記憶。
最後一步是盤點。先進先出有沒有確實做到,盤點時看各批剩餘數量就知道:如果舊批一直有剩、新批反而先見底,代表現場拿錯順序。盤點表加上批號與效期欄位的做法,可以參考盤點表怎麼做。
先進先出常常做不到,問題多半出在資料
我們的判斷是:大部分公司先進先出做不到,倉管偷懶的情況反而少見。真正的原因是揀貨的人拿到的資訊裡沒有順序。揀貨單只寫「A 料 20 件」,現場只能自己判斷哪箱比較舊,忙起來當然拿最近的那箱。
常見的三種狀況:
- 同一料號放在三個儲位:倉管知道 B 區那箱比較舊,但新來的同事不知道,揀貨單也沒寫。
- 效期記在進貨單上,沒跟著貨走:箱子上看不到到期日,要查得回辦公室翻單據。
- 退貨回倉沒拆批:客戶退回的貨跟新貨放在一起,退回的那批其實最舊。
這三種狀況,貼標語、開會提醒的效果都很短。比較有效的做法是把「該拿哪一批」直接算好、印在揀貨單上,讓現場照單拿就對。這件事 Excel 做得到一部分,品項和儲位一多就會吃力,下一段比較兩者的差別。庫存放太久還會連帶影響存貨週轉率,舊貨卡在架上,週轉天數就會被拉長。
Excel 手管與系統管先進先出:批號、效期警示、出庫建議比較
先講結論:品項在一百個以內、沒有效期問題、只有一個倉庫,Excel 加上紀律就能管好先進先出。有效期限、多個儲位、每天出貨幾十筆以上,三個條件中了兩個,Excel 就會開始漏。
功能 | Excel 手管 | 庫存系統 |
|---|---|---|
批號管理 | 一批一列,靠人手打;同料號多批要自己篩選 | 驗收時自動產生批號,同料號的各批庫存一眼看到 |
效期警示 | 用條件式格式把快到期的標紅,要有人每天打開看 | 到期前自動通知,例如前 30 天推播給負責人 |
出庫建議 | 揀貨的人自己篩選、排序、決定拿哪批 | 開出貨單時自動帶出最舊或最快到期的批號與儲位 |
成本計算 | 先進先出法要自己寫公式逐批扣,改一筆前面全部要重算 | 依設定的計價方法,每次出庫自動算出成本 |
多人同時操作 | 檔案互相覆蓋,誰改了什麼查不到 | 每筆異動都留紀錄,可以追到是誰、什麼時候 |
盤點核對 | 盤點後手動對帳,差異原因難追 | 依批號比對帳上與實際數量,差異直接列出 |
適合規模 | 品項少、單一倉庫、無效期 | 品項多、多儲位或多倉、有效期或追溯需求 |
Excel 版的先進先出法成本計算是最容易出錯的地方。逐批扣庫存的公式寫得出來,但只要中間補登一筆漏打的進貨,後面所有出貨的成本都要重算,月底對帳時常常找不到差在哪。自己用 Excel 撐庫存撐到什麼程度該換,可以參考進銷存軟體怎麼選裡的判斷點。
系統要處理先進先出,核心是「同一個料號在不同時間、不同狀態下,到底還有多少可以用」。這跟租賃業的檔期管理是同一類問題:我們做過同型的營運系統,例如影視器材租賃與檔期系統,同一批器材在不同日期被租出、維修或外調,系統每天重新算出即時可用量,撞期時自動偵測。把「日期」換成「入庫日與到期日」,就是先進先出出庫建議要算的東西。如果你的倉庫也卡在這一段,我們可以先幫你看流程適不適合上系統。
先進先出要從 Excel 搬進系統,老闆先確認這三件事
先講結論:搬系統前,先把批號規則、計價方法和例外處理定下來。這三件事沒定,換什麼系統都會把舊問題一起搬過去。
要先確認的事 | 要問誰 | 沒確認的後果 |
|---|---|---|
批號規則與拆批標準 | 倉管主管、品管 | 系統上線後批號格式亂,出庫建議失準 |
存貨計價方法(先進先出法、加權平均或移動平均) | 會計、會計師 | 系統算出的成本跟報稅用的不同,月底要兩套帳 |
例外怎麼處理(客戶指定批號、退貨、報廢) | 業務、倉管、老闆 | 現場常常繞過系統,系統資料越來越不準 |
要不要跟採購、生產、ERP 串接 | 老闆、IT | 庫存系統變孤島,進貨與領料還要重打一次 |
第三點最常被忽略。先進先出是預設規則,現場一定有例外:客戶指定要某一批、品管扣住某一批不能出、退貨回來的要先出。系統要允許例外,也要把例外記下來,主管才知道規則被跳過幾次、為什麼跳過。
還有一個時間點的建議:如果正在評估 ERP,先進先出、批號、效期這些需求要在選型時就列出來問清楚,很多套裝 ERP 的批號效期是加價模組。選型時要問的題目可以看台灣 ERP 廠商比較;只需要倉儲這一段的話,WMS 倉儲管理系統怎麼選會比較對口。補貨時機則跟安全庫存怎麼算是同一組資料,批號和效期準了,再訂購點才算得準。
ℹ️我們做過這件事
ℹ️我們怎麼看
接下來幾年,先進先出會越來越少靠人記,越來越多變成系統自動排好的揀貨順序。原因很實際:食品法規要求紀錄、客戶要求追溯、倉管人力越來越難找,靠記憶的做法撐不久。我們的取捨是不建議一開始就買整套 WMS,先把批號、效期和出庫建議這三件事做進現有流程,跑順了再往上加。對老闆來說,判斷方法很簡單:上個月有沒有因為舊貨過期報廢、或出錯批被客訴?有的話,損失金額就是這件事值得投資的上限。
Q先進先出是什麼意思?
先進先出(FIFO)有兩種意思。在倉庫是出貨規則,先入庫的那批貨先出;在會計是存貨計價方法,假設先買進的成本先轉成銷貨成本,期末存貨用最近的進價計算。
Q先進先出和先到期先出(FEFO)差在哪?
先進先出看入庫日期,先到期先出看有效期限。大部分時候結果一樣,但供應商送來的新批效期比舊批短時,就要改用先到期先出。食品良好衛生規範準則第 7 條兩種都允許,但要確實記錄。
Q台灣可以用後進先出法嗎?
不行。所得稅法第 44 條列的存貨計價方法是個別辨認法、先進先出法、加權平均法、移動平均法或其他經主管機關核定的方法,沒有後進先出法;IFRS 的 IAS 2 也已刪除後進先出法。
Q先進先出法和加權平均法哪個好?
物價上漲時,先進先出法的銷貨成本較低、毛利較高、期末存貨較接近現價;加權平均法把進價波動攤平,數字比較穩。選哪一種要和會計師討論,選定後要一致使用。
Q先進先出法怎麼算?
把每批進貨依日期排好,出貨時從最早那批開始扣,扣完再扣下一批,扣到的各批數量乘以各自單價加總就是銷貨成本。剩下沒扣到的各批就是期末存貨。
Q倉庫要怎麼做到先進先出?
入庫時給批號、箱外標示入庫日與到期日、儲位讓舊貨在前方好拿、揀貨單直接指定要拿哪一批,出庫時記錄實際出了哪一批,最後用盤點核對各批剩餘數量。
Q什麼時候該用系統管先進先出?
有效期限、多個儲位或多倉、每天出貨幾十筆以上,這三個條件中了兩個,Excel 就容易漏。系統可以自動產生批號、到期前提醒,並在開出貨單時直接帶出該出的批號與儲位。
AUTHOR
恆遠數位編輯團隊
想了解更多?看看我們的相關服務
需要網站系統架設或軟體開發?
無論是品牌官網、客製化系統還是應用程式,我們的團隊擁有豐富經驗,歡迎聯繫我們,讓專業為您的事業加分。






留言(0)
尚無留言,成為第一個留言的人吧!