商品有高帳は、商品の種類ごとに受入・払出・残高を「数量・単価・金額」の3つで記録する補助簿です。売価ではなく原価で書くため、この帳簿の残高がそのまま帳簿上の在庫金額になり、払出の合計が売上原価になる仕組みです。この記事では、同じ1か月の取引を先入先出法・移動平均法・総平均法で記入した例を並べ、書き方の手順と方式ごとの数字の差、返品の書き方、実地棚卸との照合で棚卸減耗を出す手順までを扱います。後半では法人税法施行令が定める評価方法と保存期間、Excelで付けるときに崩れやすい箇所、在庫管理システムへ移す判断の目安も整理します。
まとめ:商品有高帳は原価で在庫の動きを追う補助簿、方式で売上原価が変わる
商品有高帳の書き方は、日付・摘要・受入・払出・残高の5つの欄を、仕入と販売のたびに1行ずつ埋めていくだけです。迷いやすいのは払出の単価で、先入先出法なら古い仕入の単価から順に使い、移動平均法なら仕入のたびに平均単価を出し直します。販売した行でも単価は売価ではなく原価を書きます。
この記事の記入例では、同じ取引でも売上原価は先入先出法195,200円、移動平均法196,000円、総平均法197,333円と分かれます。仕入単価が上がっている局面では、先入先出法の利益がいちばん大きくなる結果です。どの方式で付けるかは税務署へ届け出た評価方法に合わせ、届け出ていない法人の評価方法は最終仕入原価法です。
手書きやExcelで回る目安は、品目が数十以内で、入出庫が1日に数行の規模までです。それを超えて移動平均単価の再計算や実地棚卸との差異調査に毎月時間を取られているなら、入出庫の記録から帳簿を自動で作る在庫管理システムへ移す段階です。
商品有高帳とは何か、補助簿としての役割と5つの記入欄の基本的な意味
商品の種類ごとに受入・払出・残高を原価で記録する補助簿の役割
商品有高帳は、商品勘定(三分法なら仕入・繰越商品)の明細を商品の種類ごとに分けて記録する補助簿です。会計の主要簿である仕訳帳と総勘定元帳では「当月の仕入合計」「期末の繰越商品」といった金額しか見えないため、どの商品が何個・いくらで残っているかを追うためにこの帳簿を作ります。
主要簿と補助簿の関係は総勘定元帳の書き方と補助元帳との違いを解説した記事で整理しています。得意先別・仕入先別に分けるのが売掛金元帳・買掛金元帳で、商品別に分けるのが商品有高帳、という位置づけです。
記録の単位は「商品の種類」です。同じボールペンでも色や型番で仕入単価が違うなら、別のページに分けます。この区別は後で触れる法人税法施行令の「種類、品質及び型」ごとの評価とそのまま対応します。
日付・摘要・受入・払出・残高の5欄と、それぞれに書く数字の内訳
一般的な様式は次の5欄で構成され、受入・払出・残高はそれぞれ数量・単価・金額の3列に分かれます。
| 欄 | 書く内容 | 記入する場面 |
|---|---|---|
| 日付 | 取引のあった月日 | すべての行 |
| 摘要 | 前月繰越・仕入先名・得意先名 | すべての行 |
| 受入(数量・単価・金額) | 入ってきた数と原価 | 前月繰越・仕入・売上戻り |
| 払出(数量・単価・金額) | 出ていった数と原価 | 売上・仕入戻し・次月繰越 |
| 残高(数量・単価・金額) | その時点の手元在庫 | 受入・払出のたび |
実務で最初に押さえるのは「払出の単価も原価で書く」という1点だけです。売価800円で売った商品でも、払出欄に書くのは仕入原価の500円や530円です。売価は売上帳の側に記録します。
商品有高帳で分かる3つの数字、月末の在庫金額・売上原価・粗利
月末の残高欄の金額は、帳簿上の期末在庫(繰越商品)の金額です。払出欄のうち売上の行を合計すれば、その月の売上原価になります。売上帳の売上高から売上原価を引けば、商品別の売上総利益(粗利)まで出せます。
三分法の決算では「期首商品棚卸高+当期仕入高−期末商品棚卸高」で売上原価を求めますが、商品有高帳を付けていれば、この式の結果と払出欄の合計が一致するはずです。一致しない場合は記帳漏れか、実物の在庫とのずれがあります。月末在庫を回転率で見る方法は在庫回転率の計算式と目安を解説した記事で扱っています。
商品有高帳の書き方の手順、日々の仕入と販売を1行ずつ記入する流れ
前月繰越から次月繰越まで、月ごとの記入の順番を6つの工程で整理
1か月分の記入は、次の順番で進めます。
- 月初の1行目に「前月繰越」と書き、前月末の残高を受入欄と残高欄に転記する
- 仕入があった日は、仕入先名を摘要に書き、受入欄に数量・仕入単価・金額を書く
- 受入のあとの残高を計算し、残高欄に書く(方式によって単価の扱いが変わる)
- 販売があった日は、得意先名を摘要に書き、払出欄に数量・原価の単価・金額を書く
- 払出のあとの残高を残高欄に書く
- 月末に「次月繰越」を払出欄に書き、受入合計と払出合計が一致することを確かめて締め切る
締め切りの検算が、手作業での記帳ミスを拾う唯一の仕組みです。受入欄の合計(前月繰越を含む)と、払出欄の合計(次月繰越を含む)は、数量も金額も必ず一致します。ずれたら、どこかの行で残高の計算を誤っています。
記入例の前提にする商品Aの10月の取引、仕入2回と販売2回の内訳
以下の3方式の記入例は、すべて同じ取引を使います。数値はこの記事のために作った例です。
| 日付 | 取引 | 数量 | 単価 |
|---|---|---|---|
| 10月1日 | 前月繰越 | 100個 | 500円 |
| 10月5日 | 甲商事から仕入 | 200個 | 530円 |
| 10月12日 | 乙商店へ販売 | 250個 | 売価800円 |
| 10月20日 | 甲商事から仕入 | 150個 | 560円 |
| 10月26日 | 丙商会へ販売 | 120個 | 売価800円 |
仕入単価は500円→530円→560円と上がっていく設定です。当月の受入は前月繰越を含めて450個・240,000円、販売は370個で売上高は296,000円になります。この前提で、方式ごとに払出の単価がどう変わるかを見ていきます。
先入先出法で書く商品有高帳、単価の違う在庫を分けて残す記入例
先入先出法の考え方、古い仕入の単価から順に払い出す原価の決め方
先入先出法は、先に仕入れた商品から先に出ていったとみなして払出の単価を決める方法です。法人税法施行令第28条では、期末に残っている在庫を「期末に最も近い時に取得したものから順に成るもの」とみなす方法として定義されています(法人税法施行令 第28条第1項第1号ロ(e-Gov法令検索))。
帳簿の上では、単価の違う在庫を混ぜずに行を分けて残すのが特徴です。残高欄に「100個×500円」と「200個×530円」が2段で並ぶ状態になり、販売のときは上の段から先に減らします。
商品Aを先入先出法で記入した10月分、払出の行が2段に分かれる
前提の取引を先入先出法で記入すると、次のとおりです。表では受入・払出・残高を「数量×単価=金額」の形でまとめています。
| 日付 | 摘要 | 受入 | 払出 | 残高 |
|---|---|---|---|---|
| 10月1日 | 前月繰越 | 100×500=50,000 | 100×500=50,000 | |
| 10月5日 | 甲商事 | 200×530=106,000 | 100×500=50,000 | |
| 200×530=106,000 | ||||
| 10月12日 | 乙商店 | 100×500=50,000 | ||
| 150×530=79,500 | 50×530=26,500 | |||
| 10月20日 | 甲商事 | 150×560=84,000 | 50×530=26,500 | |
| 150×560=84,000 | ||||
| 10月26日 | 丙商会 | 50×530=26,500 | ||
| 70×560=39,200 | 80×560=44,800 | |||
| 10月31日 | 次月繰越 | 80×560=44,800 |
10月12日の販売250個は、前月繰越の100個(500円)を使い切ってから、5日仕入分の150個(530円)を払い出します。売上原価は129,500円+65,700円で195,200円、次月繰越は80個×560円=44,800円です。払出合計240,000円(次月繰越を含む)が受入合計と一致し、締め切りの検算も通ります。
先入先出法で間違えやすい箇所、残高を1行にまとめてしまう失敗
手書きの記帳で多い誤りは、10月5日の残高を「300個×?円」と1行にまとめてしまうことです。単価の違う在庫を合算すると、次の販売でどの単価から払い出すかが分からなくなります。先入先出法では単価ごとの段を残し、波かっこでくくって同じ日付の残高だと示すのが簿記の書き方です。
もう1つは、払出が2つの単価にまたがるときに1行で書いてしまう誤りです。10月12日のように100個と150個に分かれる販売は、払出欄も2段に分けて書きます。1段にまとめると、払出金額の検算ができなくなります。
移動平均法で書く商品有高帳、仕入のたびに平均単価を出し直す記入例
移動平均法の考え方、受入のたびに残高金額を数量で割り直す計算手順
移動平均法は、仕入があるたびに「その時点の残高金額+今回の仕入金額」を「残高数量+仕入数量」で割り、新しい平均単価を出す方法です。法人税法施行令第28条第1項第1号ニは、取得のつど1単位あたりの取得価額が改定されたものとみなす方法として定めています。
先入先出法と違って残高は常に1行で済みますが、仕入のたびに割り算が発生します。払出のときは、その時点の平均単価をそのまま使うだけで、計算は発生しません。
商品Aを移動平均法で記入した10月分、平均単価は520円から550円へ
同じ取引を移動平均法で記入すると、次のとおりです。
| 日付 | 摘要 | 受入 | 払出 | 残高 |
|---|---|---|---|---|
| 10月1日 | 前月繰越 | 100×500=50,000 | 100×500=50,000 | |
| 10月5日 | 甲商事 | 200×530=106,000 | 300×520=156,000 | |
| 10月12日 | 乙商店 | 250×520=130,000 | 50×520=26,000 | |
| 10月20日 | 甲商事 | 150×560=84,000 | 200×550=110,000 | |
| 10月26日 | 丙商会 | 120×550=66,000 | 80×550=44,000 | |
| 10月31日 | 次月繰越 | 80×550=44,000 |
10月5日の平均単価は(50,000円+106,000円)÷300個=520円です。20日の仕入後は(26,000円+84,000円)÷200個=550円になります。売上原価は130,000円+66,000円で196,000円、次月繰越は44,000円です。
移動平均単価が割り切れないとき、端数処理と残高金額への差額の寄せ方
記入例はきれいに割り切れる数字にしていますが、実際の仕入では平均単価が「533.333…円」のような端数になるのが普通です。このとき単価を円未満で四捨五入して払出金額を計算すると、月末の残高金額が「残高数量×単価」とわずかに合わなくなります。
会社としての処理を1つに決めておけば、どちらでも構いません。よく使われるのは、単価は小数点以下2桁まで持ち、払出金額は円未満を四捨五入し、残高金額は「直前の残高金額+受入−払出」の引き算で出す方法です。残高金額を掛け算で出し直すと端数の差が毎回生じるため、引き算で通すほうが締め切りの検算が合います。
総平均法と3方式の比較、同じ取引で売上原価と期末在庫がずれる幅
総平均法は月末にまとめて単価を出す、記入は払出の単価が後決め
総平均法は、期首(この例では月初)の在庫金額と期中の仕入金額の合計を、その合計数量で割って1つの平均単価を出す方法です(法人税法施行令第28条第1項第1号ハ)。単価が月末まで決まらないため、商品有高帳では払出の数量だけを先に書き、単価と金額は月末に一括で埋めます。
商品Aの例では、240,000円÷450個=533.333…円で割り切れません。売上原価を370個×533.333…円の円未満四捨五入で197,333円とし、次月繰越は240,000円−197,333円=42,667円と引き算で出せば、受入合計と払出合計が1円もずれずに締まります。月中の払出単価が分からないため、日々の粗利を見たい会社には向きません。
先入先出法・移動平均法・総平均法の結果比較、利益が最も大きく出る方式
3方式の結果を並べると、次のとおりです。売上高はすべて296,000円です。
| 方式 | 売上原価 | 次月繰越 | 売上総利益 |
|---|---|---|---|
| 先入先出法 | 195,200円 | 44,800円 | 100,800円 |
| 移動平均法 | 196,000円 | 44,000円 | 100,000円 |
| 総平均法 | 197,333円 | 42,667円 | 98,667円 |
仕入単価が上がっている局面では、先入先出法は古い安い単価を先に原価へ回すため、売上原価が小さく、利益と期末在庫が大きく出ます。単価が下がる局面では逆になります。この例の差は最大で2,000円強ですが、品目数と取引量に比例して広がるため、評価方法は一度決めたら継続して使うのが前提です。評価方法ごとの期末在庫額の違いと届出の手続は棚卸資産の評価方法6種と届出期限を解説した記事で詳しく扱っています。
返品と実地棚卸の扱い、商品有高帳の残高を実物の在庫と合わせる手順
返品時の仕入戻しは払出欄、売上戻りは受入欄、単価は元の取引の原価
返品も在庫の数量を動かすため、商品有高帳に記入します。仕入れた商品を仕入先へ返す「仕入戻し」は、在庫が減るので払出欄に書きます。単価は、その商品を仕入れたときの単価です。
得意先から商品が戻ってくる「売上戻り」は、在庫が増えるので受入欄に書きます。単価は売価ではなく、販売したときに払出欄へ書いた原価です。たとえば先の移動平均法の例で、10月12日に販売した商品のうち10個が戻ってきたら、受入欄に10個×520円=5,200円と書き、残高と平均単価を計算し直します。
移動平均法では、返品の行でも残高の平均単価が変わることがあります。仕入戻しの単価が直前の平均単価と違う場合、戻したあとの残高金額を残高数量で割り直すのを忘れないようにします。
実地棚卸との照合、帳簿残高80個に対して実物77個だったときの処理
商品有高帳の残高は、記録した取引だけから計算した「帳簿上の在庫」です。破損・紛失・記帳漏れがあれば、倉庫にある実物の数とずれます。期末には実際に数えた数(実地棚卸高)と照合し、差を確定させます。
移動平均法の例で、帳簿残高80個に対して実地棚卸が77個だった場合、不足3個×550円=1,650円が棚卸減耗損です。商品有高帳には払出欄に「棚卸減耗」として3個×550円を書き、残高を77個・42,350円に合わせます。会計側では棚卸減耗損を計上し、繰越商品を同額減らす仕訳を切ります。
差異が毎月出るなら、記帳の仕組みのほうを疑います。棚卸の進め方と差異率の目安は実地棚卸の手順と差異率の許容水準を解説した記事で、差異の原因を入荷・出荷などの工程ごとに切り分ける方法は棚卸差異の原因特定と再発防止の設計を解説した記事で扱っています。
法令から見た商品有高帳、法人税法施行令の評価方法と帳簿の保存期間
商品有高帳という名前の作成義務は無い、ただし種類ごとの評価には必要
法人税法や会社法には「商品有高帳」という名前の帳簿を作れという規定はありません。ただし法人税法施行令第28条の先入先出法・総平均法・移動平均法は、いずれも棚卸資産を「種類、品質及び型」の異なるごとに区別して計算すると定めています。商品の種類ごとに受入と払出の数量と単価を残していなければ、届け出た方法で期末在庫を計算できません。
評価方法を選んで届け出ていない法人は、施行令第31条により最終仕入原価法で評価します(法人税法施行令 第31条(e-Gov法令検索))。最終仕入原価法は期末に最も近い仕入の単価だけで期末在庫を評価するため、日々の払出単価を追う商品有高帳がなくても計算はできます。月次で商品別の粗利を見たいかどうかで、商品有高帳を付ける意味が変わります。
商品有高帳の保存期間は法人で原則7年、欠損金が出た年度は10年
商品有高帳を含む帳簿書類は、法人の場合、その事業年度の確定申告書の提出期限の翌日から7年間保存します。青色申告で欠損金が生じた事業年度は10年間です(国税庁 タックスアンサー No.5930 帳簿書類等の保存期間・令和8年4月1日現在法令等)。
個人事業主の白色申告者では、収入金額や必要経費を記載した法定帳簿が7年、それ以外の任意帳簿と決算に関して作成した棚卸表が5年とされています(国税庁 タックスアンサー No.2080 白色申告者の記帳・帳簿等保存制度・令和8年4月1日現在法令等)。Excelやシステムで作った商品有高帳をデータのまま保存する場合は、電子帳簿保存法の要件も確認します。保存の要件は総勘定元帳の電子保存の要件を扱った記事の後半でまとめています。
Excelで付ける商品有高帳の落とし穴と、在庫管理システムへ移す判断
Excel運用で崩れやすい3か所、日付順・後日入力・品目の追加
商品有高帳をExcelで付けること自体は難しくありません。崩れるのは運用が始まってからで、次の3か所が典型です。
- 後日入力:月の途中に入力漏れの仕入を見つけて挿入すると、移動平均法ではそれ以降の平均単価と払出金額がすべて変わる
- 日付順の崩れ:入力順に行を足していくと、同じ日の仕入と販売の順番が実際と逆になり、先入先出法の払出単価がずれる
- 品目の追加:商品ごとにシートを分けると、品目が増えるたびにシートと集計式を複製することになり、集計漏れが出る
とくに後日入力は、移動平均法で付けている会社ほど影響が大きい失敗です。過去の行を1つ直すと、月末の次月繰越と売上原価が両方変わり、会計側へ連携済みの数字と合わなくなります。仕訳帳をExcelで作るときの確認点は仕訳帳の書き方とExcelで作るときの確認点を解説した記事と共通する部分があります。
品目数と入出庫件数で決める在庫管理システムへの移行、採用と見送りの条件
判断の軸は、品目数と1日あたりの入出庫件数です。品目が数十以内で、入出庫が1日に数行程度なら、Excelの商品有高帳と月1回の実地棚卸で十分回ります。この規模でシステムを入れても、記帳の手間はほとんど減りません。見送ってよい場面です。
移行を検討すべきなのは、次のどれかに当てはまるときです。品目が数百を超えて商品ごとのシートが管理できない。移動平均単価の再計算が月次決算の締めを遅らせている。実地棚卸の差異が毎回出て、どの取引が原因か追えない。この段階では、入荷・出荷の記録から受入・払出・残高を自動で積み上げ、評価方法に沿った単価を計算して会計へ渡す仕組みにしたほうが、帳簿の誤りが入り込む場所そのものが減ります。
一創では、既存の販売管理や会計ソフトとつなぐ形の在庫管理システム開発を受託しています。パッケージと自作の境界は在庫管理システムを自作するときのExcel・kintone・SQLの境界を解説した記事で、システムの機能と費用の全体像は在庫管理システムの仕組みと選び方を解説した記事で確認できます。
よくある質問
商品有高帳について、書き方の細部や他の帳簿との違いで寄せられやすい質問をまとめました。
商品有高帳の払出欄に売価を書かないのはなぜですか?
商品有高帳は在庫の原価を追う帳簿で、残高欄の金額を期末在庫、払出欄の合計を売上原価として使うためです。払出欄に売価を書くと、残高が実際の仕入原価と合わなくなり、帳簿上の在庫金額が意味を持たなくなります。売価と売上高は売上帳や売掛金元帳に記録し、商品有高帳の払出合計と突き合わせて粗利を出します。
先入先出法と移動平均法はどちらで付けるべきですか?
税務署に届け出た評価方法に合わせるのが原則です。届け出ていない法人の評価方法は最終仕入原価法です。日々の払出単価をすぐ確定させたいなら移動平均法、単価の違う在庫を実物の流れに近い形で追いたいなら先入先出法が向きます。手書きでは先入先出法の行分けが煩雑になり、Excelでは移動平均法の後日入力に弱い、という運用面の差もあります。
商品有高帳と在庫台帳は何が違いますか?
在庫台帳は数量の増減だけを記録する場合が多く、商品有高帳は数量に加えて単価と金額を原価で記録する点が違います。現場の在庫管理には数量だけで足りても、決算で期末在庫の金額を出すには単価と金額が必要です。在庫管理システムでは、数量を管理する在庫台帳と金額を持つ商品有高帳を同じ入出庫データから作るのが一般的です。
材料や仕掛品も商品有高帳に書きますか?
書きません。商品有高帳は仕入れてそのまま販売する商品のための帳簿です。製造業で使う原料・材料は材料元帳(材料台帳)に記録し、製造途中の仕掛品は原価計算の側で金額を把握します。記入の形式(受入・払出・残高と、先入先出法・移動平均法による単価)は材料元帳もほぼ同じです。
商品有高帳は簿記3級の試験でどこまで出題されますか?
日商簿記3級では、先入先出法または移動平均法で商品有高帳を記入し、あわせて売上高・売上原価・売上総利益を求める問題が出題範囲に入っています。この記事の記入例と同じく、前月繰越・仕入・販売・次月繰越の流れで締め切りまで書けるかが問われます。総平均法は実務で使われますが、3級の記入問題の中心は先入先出法と移動平均法の2つです。
関連記事
- 買掛金元帳とは?書き方と記入例、総勘定元帳・請求書との照合と保存7年【2026年版】:仕入先別に分ける補助簿で、商品有高帳の受入と同じ仕入取引を金額側から記録します
- 在庫管理アプリの選び方:無料・有料・エクセルとの違いと導入判断【比較】:Excelの商品有高帳から移る先として、アプリとExcelの違いを比べています