BOM 是什麼?料號、用量、階層與版本,一張用料表怎麼撐起報價到生產
BOM 是什麼?一句話定義,它出現在哪張單據上
BOM 是什麼?BOM(Bill of Materials,物料清單,現場常叫用料表)是一份寫清楚「這個產品由哪些料組成、每種料各用幾個」的清單,也是全廠共用的那一份產品定義。依維基百科的材料清單條目,它記載原物料、加工流程、各部位明細與半成品、成品的數量,常作為代工雙方聯繫或公司內部溝通的文件;在 Odoo 的物料清單說明文件裡,它記載生產或維修產品所需的零組件與各自的數量,通常還帶著生產作業與逐步指引。這篇只講一件事:把這張表建對,它才撐得起報價到生產。
舉兩個現場的例子。一家塑膠射出廠做一款水壺,用料表上有壺身、壺蓋組、矽膠圈、吊繩與彩盒;一家成衣輔料廠接一張拉鍊的單,配件表上有鏈齒、拉頭、拉片、上下止與包裝袋。這兩張表都會同時出現在四個地方:業務報價時用它算材料成本,採購用它算要買多少,倉庫照它發料,月底會計照它結轉成本。四個部門讀的是同一張表,所以這張表錯了,四個部門一起錯。
這篇講到哪裡為止:料號、用量、單位、位置、替代料、版本這幾個欄位在單據上長什麼樣、一變誰要跟著變,以及搬進系統前要保住什麼。詢價報價、物料需求與工程變更各有自己的一篇,這裡只提名詞。
這張表錯了,毛利從哪裡漏
BOM 錯了不會跳出錯誤訊息。當用料表散在 Excel、紙本與經驗裡,每一次報價、每一次備料都要有人重抓一次數字,抓到的版本不一樣,結果就不一樣,而且沒有人會在當下發現。錯誤會安靜地往下游流,依序在四個地方爆開:
- 報價那一站先爆:材料成本少算一顆料或多算一組替代料,報出去的價就偏了,單接到了毛利已經不對。
- 採購量那一站接著爆:用量乘以套數算錯、替代料被當成好幾種料各買一份,倉庫多出一堆用不完的料,關鍵的那一顆反而少買。
- 領料那一站在產線爆:倉庫照表發料,產線裝到一半發現這個位置少一顆,才回頭翻圖面。
- 成本結轉那一站最後爆:月底會計照表結轉材料成本,結出來的毛利看起來正常,其實和實際用掉的料對不起來。
下面這張流程圖來自 ERPNext 的說明文件,看的是方向:工單、領料與完工入庫都從 BOM 算出來。

BOM 是上游:工單、領料與完工入庫都從它算出來,這也是 BOM 一改大家都要跟著改的原因。畫面來自 ERPNext 說明文件(2026-10-23 截圖)
這就是主檔要先治理的原因:BOM 與料號沒建對,後面任何報表、物料需求計算或 AI 工具讀到的都是錯的,算得再快也只是更快地錯。
先認識五個名詞:料號、用量、位置、階層、版本
這五個名詞是用料表的骨架,後面每一節都會回到它們。表裡的上游是「要先有它,這個名詞才成立」,下游是「它一變,誰要跟著重算」;連結指到本篇定義它的那一節,指向後面幾篇的名詞先寫文字。
| 名詞 | 一句話 | 上游(要先有它) | 下游(它一變誰要變) | 新手常誤解 |
|---|---|---|---|---|
| 料號(Item/Part Number,現場也叫品號) | 系統裡代表「一種東西」的代碼,數量、成本、庫存都掛在它身上 | 圖面與規格,它是源頭 | 三種編號的對照、BOM 的每一列、庫存與成本(庫存篇、成本篇) | 以為料號只有一種,其實原廠、客戶、自己各有一套 |
| 用量(Usage/Quantity Per,現場叫單耗) | 做一個成品要用幾個這個料 | BOM 的每一列 | 展開與採購量、材料成本與領料(報價篇、工單篇) | 以為用量就是採購量,其實還要加損耗、取整到最小訂購量 |
| 位置(Location/Reference,現場叫件號或工序) | 這個料裝在成品的哪裡,或在哪一道工序用掉 | BOM 的每一列 | 用量的檢查、工程變更(工程變更篇) | 以為是倉庫的儲位,其實這裡指裝在產品的哪裡 |
| 階層(Level,現場叫幾階、子件) | 子組件再有自己的用料,BOM 就有第二階、第三階 | BOM 的每一列 | 展開與委外、物料需求計算(物料需求篇) | 以為攤平之後就不需要階層,其實攤平是另外算出來的 |
| 版本(Revision/Rev,現場叫版次、改版) | 這張表的版次,收到新版第一件事是比對 | BOM 的每一列、工程變更(工程變更篇) | 改版比對與凍結、報價與成本重算(報價篇) | 以為收到新版要整份重做 |
版本是五個名詞裡最常被放錯地方的一個。下圖是 Odoo 說明文件裡同一張 BOM 的其他分頁:版本和途程、前置天數一樣是表頭的欄位,改版時升的就是這個號碼。

同一張 BOM 的表頭還帶版本、途程與前置天數,版本就是改版時要升的那個數字。畫面來自 Odoo 說明文件(2026-10-23 截圖)
一個東西、三種編號:原廠型號、客戶料號、內部料號
同一顆料在三個人眼裡有三個名字,三個都對,差別在誰給的、用在哪張單。
| 編號 | 誰給的 | 出現在哪張單 | 拿來做什麼 |
|---|---|---|---|
| 原廠型號 | 做這顆料的廠商,例如布料供應商的色號、五金供應商的型號 | 採購單、供應商的報價單 | 向供應商下單與比價 |
| 客戶料號 | 客戶自己的編碼,例如五金件客戶圖面上的圖號 | 客戶寄來的 BOM、客戶訂單、出貨單 | 對客戶報價、出貨對帳 |
| 內部料號 | 你自己公司給的,例如食品廠給每種原料的自編碼 | 自己的 BOM、庫存帳、成本表 | 管庫存、算成本、跨客戶共用料 |
料號編碼原則先守兩條就夠:一個東西一個料號,料號給出去就不改。編碼本身長什麼樣,流水號還是帶分類意義的碼,各廠不同;重點是三種編號之間的對照表本身是一份要維護的資料,食品廠的原料換了供應商、五金件客戶改了圖號,對照表就要跟著更新。
規格敘述不能拿來當鍵。同一支螺栓三個人三種寫法:「M8 不鏽鋼螺栓 20mm」「螺栓 M8x20 SUS304」「白鐵螺絲 8 厘」,搬進系統時如果照文字比對,就會變成三個料號、三份庫存、三個價。規格敘述給人看、給程式猜都可以,決定兩筆資料算不算同一個東西的,只能是料號。
BOM 的一列要回答三個問題:什麼、幾個、用在哪
一列至少要回答三個問題:這是什麼東西、做一個成品要用幾個、裝在哪裡或在哪一道工序用掉。以下是自擬的範例,料號與數量都是教學用的格式,目的是讓你對照自己那張表少了哪一欄。
| 料號 | 品名規格 | 用量 | 單位 | 位置或工序 | 替代料 |
|---|---|---|---|---|---|
| 範例-M-001 | 法蘭用六角螺栓 M8x20 不鏽鋼 | 6 | 支 | 組件圖件號 3 至 8 | 範例-M-001A、範例-M-001B |
| 範例-P-010 | 外箱,五層瓦楞紙 | 1 | 個 | 包裝工序 | 無 |
| 範例-E-205 | 電阻 10k 歐姆,0603 封裝(電子板上的小零件) | 4 | 顆 | R12、R13、R20、R21 | 範例-E-205A |
單位是這張表最常被省略的格子。食品廠的配方以公斤算、射出廠的原料以克算、成衣輔料的織帶以碼或公尺算,用量寫 0.5 旁邊沒有單位,報價的人會用自己的假設補上,備料的人再用另一個假設補一次。單位要寫在每一格裡;寫在欄標題或備註裡的單位,搬進系統時會全部變成「個」。
位置欄給了一個不用花錢就能做的檢查:位置數應該等於用量。法蘭組件圖上件號 3 到 8 標了六顆螺栓,用量就該是 6;電子板上列了四個電阻位置,用量就該是 4。對不起來,通常代表客戶改了設計卻只改了一半:刪掉一顆料,用量改了、位置欄沒改,列了 5 個位置、用量寫 4。Excel 不會報錯,這個矛盾會一路傳到下游,等成本算完、要交報價的最後一刻才爆。這個檢查該做在收到 BOM 的第一步。
下圖是 Odoo 說明文件裡的一張 BOM 表單,看的是表的形狀:表頭與表身分開,表身一列一個料。

系統裡的一張 BOM:表頭寫產品、數量與類型,表身一列一個料、各有數量與單位。畫面來自 Odoo 說明文件(2026-10-23 截圖)
單階、多階與 BOM 展開:為什麼要有子組件
水壺的壺蓋組自己也有一張用料:蓋體、矽膠圈、按鍵、彈簧。這時候用料表就有了第二階,壺蓋組是成品底下的子組件,矽膠圈是子組件底下的料。多階存在的理由很實際:壺蓋組常是委外廠做好整組送來的,它可以單獨採購、單獨入庫、單獨報價,硬攤成一階就看不出這一組是一個可以獨立處理的東西。
BOM 表怎麼做?從圖面到可以報價的 BOM,順序是固定的,下圖是五步。
- 收圖面與規格
客戶圖、規格書與樣品一起收,缺的先問 - 建料號與單位
一個東西一個料號,單位寫在每一格裡 - 逐列填用量
做一個成品要用幾個,位置數要對得上用量 - 掛替代料與客供料標記
替代料掛在原列底下,客供料留在表上不報價 - 定版本並凍結
版本號與生效日寫在表上,再改就走下一版
BOM 展開是把多階往下算成總需求,用量逐階相乘。一個水壺用一個壺蓋組、一個壺蓋組用兩個矽膠圈,五百個水壺就要一千個矽膠圈。展開出來的攤平清單是衍生資料,拿來算採購量與材料成本很方便,但原本的階層要另外留著,攤平之後就看不出哪些料屬於哪個子組件了。
下圖是 ERPNext 說明文件裡的展開畫面,看的是攤平之後每個料只剩料號、品名、數量這幾欄。

多階 BOM 展開後的攤平清單:每個料只剩料號、品名、數量與單價,階層是算出來的衍生資料,原本的階層要另外保留。畫面來自 ERPNext 說明文件(2026-10-23 截圖)
工程 BOM(EBOM)和製造 BOM(MBOM)為什麼不是同一張表
工程 BOM 是研發照圖面開的表,製造 BOM 是生產照實際怎麼做開的表;兩張表對不起來是常態,問題是誰負責同步。EBOM MBOM 差別最常出現在下面五個項目。
| 項目 | 工程 BOM 有沒有 | 製造 BOM 有沒有 | 誰維護 |
|---|---|---|---|
| 主料(壺身、鏈齒、法蘭本體) | 有 | 有 | 研發開列,生管確認 |
| 耗材(膠、油、錫、清潔劑) | 通常沒有 | 有 | 生管或製造 |
| 包材(彩盒、內襯、包裝袋) | 通常沒有 | 有 | 生管與業務 |
| 治具與模具 | 沒有 | 有,列在需要它的工序上 | 製造 |
| 損耗 | 沒有 | 有,加在用量上或另列損耗率 | 生管與成本會計 |
「依企業需求目的的不同,用料表可細分為設計用的工程料表、生產用的製造料表(英語:manufacturing bill of materials)、接單用的銷售材料清單(sales bill of materials)……等。」
資料來源:維基百科「材料清單」條目
小廠不一定要分兩張。一張表加一欄「製造才有」的標記,把耗材、包材、治具與損耗標出來,報價時可以決定算不算進去,生產時照整張表發料。要說清楚的是那一欄誰維護:研發改了圖,耗材與包材那幾列誰跟著看一遍。
替代料與客供料:一列底下其實是一組選項
用料表上的一列常常代表一組可以互換的料。客戶核准三到五家可互換的螺栓、拉頭或色料,這幾家掛在同一列底下,共用同一個用量。把這一組弄對有四件事:
- 替代料共用同一個用量,報價時選其中一家的價,備料時也只買其中一家的量。
- 客供料要留在表上維持結構完整,只標記不報價、不採購;刪掉那一列,產線會在這個位置發現少一顆。
- 把替代料展成獨立的列,材料成本會直接乘以家數,備料也會多買;把替代料整批刪掉,主料缺貨時就沒有第二條路。
- 流通件(市場上買得到的標準料)與定製件(只有特定供應商能做的料)走兩條詢價路,這件事留給詢價報價那一篇講。
這一組選項最常在哪裡壞掉?搬家的時候。很多系統匯出的用料表用空白列表示替代料:階層、料號、用量欄留白,靠「空白等於延續上一列」表達從屬。一般的匯入程式把空白當成缺漏,結果有兩種:重複計價,或整批丟掉。匯入時拆散了,之後沒有任何辦法還原「這幾顆本來是同一個位置的選項」。
我們盤每一個環節都用同一個方法,三欄:東西從哪裡來、照什麼規則做、交給誰。拿 BOM 問一次:圖面與規格從研發或客戶來;照「一個東西一個料號、位置數等於用量、替代料掛在原列底下、版本寫在表上」這幾條規則建;建好交給業務報價、採購買料、倉庫發料、會計結帳。三欄裡任何一欄答不出來,就是這張表會出事的地方。盤整條流程的做法在Odoo ERP 導入指南裡有完整的一節,本系列只在這篇示範一次。
收到新版 BOM,第一件事是比對不是重做
客戶改了設計寄來新版,正確的第一個動作是比對。通常只有一部分的列改了,其餘的詢價與成本可以直接沿用,比對省下的是整個流程的時間。下圖是要比的四個維度。
- 新增的料
新料要建料號、詢價 - 刪除的料
已買的料與做到一半的品要另外處置 - 用量改變
重算材料成本與採購量 - 替代料改變
只重詢、重算改動的列
比對完要做三件事:只重詢、重算改動的那幾列;把新版定成下一個版本號並凍結,舊版留著查;通知採購與生管哪些列變了、哪一天生效。版本寫在檔名與信件主旨裡的風險就在這裡:客戶說「照上次那版報」,沒有人說得準上次是哪一版,也不知道手上這份是不是最新的。系統裡的做法可以參考 Odoo 的版本控制說明文件:每個 BOM 版本存在工程變更指令(ECO)裡,可以追蹤特定日期曾有哪個版本生效,用來處理產品召回或客戶投訴;生效日期的欄位留空,修訂歷史就不會記錄任何日期。這也是生效日要跟版本號一起寫在表上的原因。

改版之後版本號從 1 變成 2:舊版凍結、新版生效,採購與生管看的是同一個號碼。畫面來自 Odoo 說明文件(2026-10-23 截圖)

一張 BOM 底下的改版紀錄:每筆變更有編號、負責人與生效日期,誰在什麼時候改了什麼查得到。畫面來自 Odoo 說明文件(2026-10-23 截圖)
你的 BOM 在成熟度第幾級?搬進系統前先保住三件事
成熟度看三件事:表存在哪裡、誰能改、怎麼改版。對照下面五級,先找自己在哪一級,再決定下一步,等級之間不要跳。
| 等級 | BOM 存在哪、誰能改 | 怎麼改版 | 下一步 |
|---|---|---|---|
| 1 級 | 散在研發電腦的 Excel 與經驗裡,拿到檔案的人都能改 | 另存新檔,版本在檔名裡 | 同一張表只留一份,誰能改先定下來 |
| 2 級 | 共用一份檔案,靠人通知同步 | 改完用信件或群組通知 | 把版本號與生效日寫進表上 |
| 3 級 | 系統主檔,改版有紀錄 | 升版本號,舊版凍結 | 把替代料與客供料的標記搬進系統 |
| 4 級 | 系統主檔,版本與生效日可查 | 走變更單,記負責人與生效日 | 讓下游單據自動讀最新版 |
| 5 級 | 系統主檔,與下游單據連動 | 自動比對差異並通知採購與生管 | 量改版到下游更新完成的時間 |
1 級的第一步是只填一次:同一張 BOM 不再有研發一份、業務一份、採購一份。這一步做完再談系統;1 級上面不要蓋 AI,資料散的時候任何工具讀到的都是三份互相矛盾的表。搬進系統的順序是先讓系統長得像現況的用料表,再改善;選系統之前要先盤流程,那個順序在ERP 比較那一篇有講,這裡不重複。
搬進系統時要保住三件事:替代料與原列的從屬關係、版本與生效日、單位。另外有幾種欄位在匯入時最常被當成雜訊丟掉。不報價、客戶指定、停產改用這類標記,原本是儲存格顏色、備註欄或一句手寫備註,其實是藏在表裡的業務規則;位置或工序欄常被當成「生產才需要」而省掉,丟掉的其實是位置數對用量這個檢查。每家客戶的用料表欄位順序與名稱都不同,程式可以建議欄位對應,但人確認過的對應才生效,並存成那家客戶的範本,下次直接套;客戶寄來的 Excel 與紙本怎麼先對欄位,單據辨識那一篇有實際的做法。
表上的資料是事實,誰能改、改了誰要跟著變是判斷標準,兩邊都寫清楚,這張表才撐得起一個可以行動的決定。第一個該量的指標只有一個:新單從收到圖面到 BOM 建完要幾天。現在是幾天都可以,從今天開始有人量就好。政策面也在往同一個方向走,依經濟部中小及新創企業署的數位轉型輔導頁,輔導依數位成熟度分級,逐步提升中小企業的數位基礎技能、流程優化與數位工具導入的能力。先知道自己在哪一級,再決定要什麼工具,這個順序和建 BOM 是同一個順序。

政府端的中小企業數位轉型輔導頁:依數位成熟度分級,從基礎技能到流程優化與工具導入。畫面來自經濟部中小及新創企業署網站(2026-10-23 截圖)
常見問題
BOM 和配方表、料表、用料表是同一件事嗎?
是同一件事的不同叫法。依維基百科的材料清單條目,加工業把用料表稱為配方、原料明細或組成表,台灣的工廠習慣叫用料表或料表。叫法不同,欄位要回答的問題一樣:什麼、幾個、用在哪。差別在加工業的用量常是重量與比例,單位要寫在每一格裡,公斤和克混在同一張表上是最常見的錯。
BOM 一定要用 ERP 建嗎?Excel 可以撐多久?
不一定,Excel 能撐到「同一張表只有一份、改版有人管」為止。撐不住的訊號有三個:同一個產品出現兩份不一樣的表、版本只存在檔名裡、替代料被拆成獨立的列。出現任何一個,先把表建對,再談要搬進哪一套系統;搬進去的順序是先長得像現況的用料表,再改善。
工程 BOM 和製造 BOM 一定要分兩張嗎?小工廠怎麼辦?
不一定要分兩張,但一定要分得出「製造才需要」的項目。小廠可以用一張表加一欄標記,把耗材、包材、治具與損耗標出來,報價時決定算不算、生產時照整張表發料;誰維護那一欄要說清楚,研發改圖之後那幾列要有人跟著看。
一列底下有五家替代料,材料成本要算一份還是五份?
算一份。五家共用同一個用量,報價時選其中一家的價,備料時也只買一家的量。展成五列會讓材料成本乘以家數、備料多買;正確做法是主料加替代料掛在同一列底下,搬進系統時也要保住這個從屬關係。
收到客戶新版 BOM 要整份重做嗎?
不用。先比對四個維度:新增的料、刪除的料、用量改變、替代料改變,只重詢、重算改動的列。比對完要定版本號、記生效日,並通知採購與生管哪些列變了;工程變更還會動到採購單、工單與庫存,那些細節留給工程變更那一篇。
下一步
把最常被客戶問的那張 Excel 用料表拿出來,數一數有幾種單位、版本寫在哪裡、替代料是不是被拆成獨立的列。想把「誰建、誰改、誰用」一次盤清楚,潤謙可以從一日痛點盤點工作坊開始,把這張表的斷點和你的報價、採購、領料流程攤在同一面牆上看。
