商品有高帳でつまずきやすいのは「どの単価を書くか」です。答えはシンプルです。受入・払出・残高のどの欄も、単価と金額は原価で書きます。払い出す単価は、先入先出法なら古いものから順に、移動平均法なら仕入のたびに出し直した平均単価を使います。
この記事では、同じ6行の取引を両方の方法で記入した表を並べ、返品の書き方、有高帳から売上原価と売上総利益を求める手順まで、検算つきで確認します。
この記事の内容を動画で解説しています(簿記3級 #09・8:21)
8:21【簿記3級 #09】商品有高帳|先入先出法と移動平均法の解き方商品有高帳は数量と単価で在庫を管理する補助元帳 / 先入先出法は古いものから払い出す。行を分けて書く▶ YouTubeで見る商品有高帳とは?欄の構成と記入の約束
商品有高帳とは、商品の種類ごとに「いつ・何個・いくらで」入ってきて出ていったかを記録し、手元の在庫を管理する帳簿です。帳簿の分類では、補助簿のうち補助元帳にあたります。欄は日付・摘要のほか、受入・払出・残高の3つに分かれ、それぞれに数量・単価・金額の小欄があります。
| 欄 | 中の小欄 | 書く内容 |
|---|---|---|
| 日付・摘要 | ― | 取引の日付と内容(前月繰越・仕入・売上・返品・次月繰越など) |
| 受入 | 数量・単価・金額 | 商品が入ってきた記録(前月繰越、仕入、売上戻り) |
| 払出 | 数量・単価・金額 | 商品が出ていった記録(売上、仕入戻し、次月繰越) |
| 残高 | 数量・単価・金額 | その時点で手元にある在庫 |
答案用紙では、次のように11列の表になります(1行目だけ記入した例)。
| 日付 | 摘要 | 受入数量 | 受入単価 | 受入金額 | 払出数量 | 払出単価 | 払出金額 | 残高数量 | 残高単価 | 残高金額 |
|---|---|---|---|---|---|---|---|---|---|---|
| 11/1 | 前月繰越 | 20 | 500 | 10,000 | 20 | 500 | 10,000 |
この記事の記入例は、スマホでも読みやすいように、受入・払出・残高ごとに数量・単価・金額を1マスにまとめています。1行目が「数量 @単価」、2行目が金額です。
ポイント
受入・払出・残高のどの欄も、単価と金額は原価で書きます。売上の行でも払出欄に売価は書きません。売価を使うのは、売上高を計算するときだけです。
先入先出法の書き方|単価の違う在庫は行を分ける
ここからは次の設例を、先入先出法と移動平均法の両方で記入します。数字はすべて編集部が作成したものです。
設例(A商品・11月)
11月1日 前月繰越 20個 @500円
11月6日 仕入 40個 @560円
11月12日 売上 25個(売価@800円)
11月18日 仕入 25個 @600円
11月24日 売上 30個(売価@850円)
11月25日 24日に売り上げた商品のうち2個が品違いのため返品された
先入先出法とは、先に受け入れた商品から先に払い出したと考えて、払出単価を決める方法です。単価の違う在庫が同時に残っているときは、残高欄を単価ごとに行を分けて書きます。
| 日付 | 摘要 | 受入 | 払出 | 残高 |
|---|---|---|---|---|
| 11/1 | 前月繰越 | 20個 @500 10,000 | 20個 @500 10,000 | |
| 11/6 | 仕入 | 40個 @560 22,400 | 20個 @500 10,000 | |
| 40個 @560 22,400 | ||||
| 11/12 | 売上 | 20個 @500 10,000 | ||
| 5個 @560 2,800 | 35個 @560 19,600 | |||
| 11/18 | 仕入 | 25個 @600 15,000 | 35個 @560 19,600 | |
| 25個 @600 15,000 | ||||
| 11/24 | 売上 | 30個 @560 16,800 | 5個 @560 2,800 | |
| 25個 @600 15,000 | ||||
| 11/25 | 売上戻り | 2個 @560 1,120 | 7個 @560 3,920 | |
| 25個 @600 15,000 | ||||
| 11/30 | 次月繰越 | 7個 @560 3,920 | ||
| 25個 @600 15,000 | ||||
| 合計 | 87個 48,520 | 87個 48,520 |
11月12日の売上25個は、古い@500円の20個を先に全部払い出し、足りない5個を@560円の在庫から払い出します。払出欄は単価ごとに2行になり、残高は@560円の35個だけが残ります。11月24日の売上30個は、すべて@560円の在庫から払い出せるので1行です。
11月25日の売上戻りは、24日に@560円で払い出した商品が戻ってきたものです。受入欄に@560円で記入し、@560円の在庫に戻します。月末は次月繰越を払出欄に単価ごとに書き、受入欄と払出欄の合計(87個・48,520円)が一致することを確かめて締め切ります。
移動平均法の書き方|仕入のたびに平均単価を出し直す
移動平均法とは、単価の違う商品を受け入れるたびに平均単価を計算し直し、次に払い出すときはその平均単価を使う方法です。平均単価は次の式で求めます。
平均単価 =(直前の残高金額 + 受入金額)÷(直前の残高数量 + 受入数量)
- 11月6日:(10,000円+22,400円)÷(20個+40個)=32,400円÷60個=@540円
- 11月18日:(18,900円+15,000円)÷(35個+25個)=33,900円÷60個=@565円
| 日付 | 摘要 | 受入 | 払出 | 残高 |
|---|---|---|---|---|
| 11/1 | 前月繰越 | 20個 @500 10,000 | 20個 @500 10,000 | |
| 11/6 | 仕入 | 40個 @560 22,400 | 60個 @540 32,400 | |
| 11/12 | 売上 | 25個 @540 13,500 | 35個 @540 18,900 | |
| 11/18 | 仕入 | 25個 @600 15,000 | 60個 @565 33,900 | |
| 11/24 | 売上 | 30個 @565 16,950 | 30個 @565 16,950 | |
| 11/25 | 売上戻り | 2個 @565 1,130 | 32個 @565 18,080 | |
| 11/30 | 次月繰越 | 32個 @565 18,080 | ||
| 合計 | 87個 48,530 | 87個 48,530 |
売上の行では平均単価を出し直しません。平均単価が変わるのは、仕入のように単価の違う商品が入ってきたときです。11月25日の売上戻りは、払い出したときの@565円で受け入れるので、残高の単価も@565円のままです。
割り切れない単価になるときは、問題文の指示(円未満の端数処理など)に従います。平均単価の計算は、電卓のメモリー機能を使うと途中の数字を書き写さずに済みます(簿記の電卓の使い方)。講義#09でも、先入先出法と移動平均法の記入手順を順に確認できます。
返品の記入|仕入戻しは払出欄、売上戻りは受入欄
| 返品の種類 | 記入する欄 | 使う単価 | 記入後の残高 |
|---|---|---|---|
| 仕入戻し(仕入れた商品を返す) | 払出欄 | 仕入れたときの単価 | 移動平均法では残高の金額÷数量で単価を出し直す |
| 売上戻り(売った商品が戻る) | 受入欄 | 払い出したときの単価(原価) | 戻した原価を残高に加える(移動平均法では残高の金額÷数量で単価を確かめる) |
この記事では、商品の動きに合わせて「出ていったら払出欄、入ってきたら受入欄」に書く方法で説明しています。教材によっては、仕入戻しを受入欄に、売上戻りを払出欄に、それぞれマイナス(赤字)で書く方法もあります。試験では問題文や答案用紙の指示に合わせてください。どちらの方法でも、売価@850円で受け入れるような書き方は誤りです。
有高帳から売上原価と売上総利益を求める手順
商品有高帳は、売上原価を求める問題でも使います。払出欄の合計をそのまま売上原価にすると、次月繰越や返品の分がずれるので、次の順番で計算します。
- 払出欄のうち「売上」の行の金額だけを合計する(次月繰越と仕入戻しは含めない)
- 売上戻りがあれば、受入欄の売上戻りの金額を差し引く(ここまでが売上原価)
- 売上高を計算する(売価×数量。売上戻りは売価で差し引く)
- 売上総利益=売上高−売上原価
- 「月初の在庫+当月の仕入高−月末の在庫」で売上原価を検算する
設例の売上高は、25個×@800円+30個×@850円−2個×@850円=20,000+25,500−1,700=43,800円です。2つの方法の結果を並べます。
| 項目(円) | 先入先出法 | 移動平均法 |
|---|---|---|
| 売上の払出金額の合計 | 10,000+2,800+16,800=29,600 | 13,500+16,950=30,450 |
| 売上戻り(受入欄) | −1,120 | −1,130 |
| 売上原価 | 28,480 | 29,320 |
| 売上高 | 43,800 | 43,800 |
| 売上総利益 | 15,320 | 14,480 |
| 月末の在庫(次月繰越) | 18,920 | 18,080 |
売上原価 = 月初の在庫 + 当月の仕入高 − 月末の在庫
検算します。当月の仕入高は22,400+15,000=37,400円です。先入先出法は10,000+37,400−18,920=28,480円、移動平均法は10,000+37,400−18,080=29,320円です。どちらも表の売上原価と一致します。この式は、決算で売上原価を計算するときの考え方(売上原価の計算(しーくりくりしー))と同じです。
2つの方法の売上原価の差840円は、月末の在庫の差(18,920−18,080=840円)と同じ金額です。この設例のように仕入単価が上がっていく月は、先入先出法だと古くて安い単価から売上原価になります。そのため売上原価が小さく、利益と月末の在庫が大きくなります。なお2級では、帳簿上の月末在庫と実際に数えた在庫の差から棚卸減耗損と商品評価損を求めます。
補助簿の選択問題では、商品有高帳をどう判断する?
第2問では、取引ごとに記入される補助簿を選ぶ問題が出ることがあります。商品有高帳を選ぶかどうかは「商品の数量が動いたか」で判断します。
| 取引 | 記入する補助簿 | 商品有高帳 |
|---|---|---|
| 商品を掛けで仕入れた | 仕入帳・買掛金元帳・商品有高帳 | 記入する(受入) |
| 商品を掛けで売り上げ、当社負担の送料を現金で支払った | 売上帳・売掛金元帳・現金出納帳・商品有高帳 | 記入する(払出は原価で。送料は書かない) |
| 仕入れた商品を品違いで返品し、掛け代金から差し引いた | 仕入帳・買掛金元帳・商品有高帳 | 記入する(仕入戻し) |
| 売掛金が普通預金口座に振り込まれた | 売掛金元帳 | 記入しない(商品は動いていない) |
迷ったら、先に仕訳を書きます。表の2つ目の取引を、金額をつけて仕訳にしてみます。
例:商品96,000円を掛けで売り上げ、当社負担の送料1,500円を現金で支払った(単位:円)
| 借方 | 貸方 | ||
|---|---|---|---|
| 売掛金 | 96,000 | 売上 | 96,000 |
| 発送費 | 1,500 | 現金 | 1,500 |
科目ごとに帳簿を選ぶと、売掛金は売掛金元帳、売上は売上帳、現金は現金出納帳です。売上で商品が出ていくので、商品有高帳にも原価で払出を記入します。発送費は商品の原価ではないため、有高帳には書きません。講義#34(主要簿と補助簿)では、1つの取引が複数の帳簿に記入される流れを扱っています。
記入ミスが起きやすい5か所と、その理由
- 払出欄に売価を書く:問題文の「@800円で売り上げた」の数字をそのまま写してしまうためです。有高帳は在庫の原価を追う帳簿なので、払出欄も原価で書きます。
- 先入先出法で残高を1行にまとめる:金額の合計だけを見て、単価をならしてしまうためです。単価の違う在庫は行を分け、単価ごとに書きます。
- 移動平均法で売上のたびに単価を出し直す:「移動」という言葉から、動くたびに計算すると思い込むためです。出し直すのは、単価の違う商品を受け入れたときです。
- 払出欄の合計をそのまま売上原価にする:払出欄には次月繰越や仕入戻しも入るためです。売上の行だけを合計し、売上戻りを差し引きます。
- 引取運賃を受入単価に含めない:運賃を別の費用だと考えるためです。当社負担の引取運賃は仕入原価に含めるので、受入単価も運賃込みになります。
引取運賃を仕入に含める理由は、三分法の仕訳(返品・諸掛り)で仕訳と一緒に解説しています。
練習問題|払出単価と返品の記入を確かめる
練習問題1
B商品の10月の取引は次のとおり。移動平均法で、10月9日の払出単価・払出金額と、払出後の残高金額を答えなさい。
10月1日 前月繰越 10個 @300円
10月5日 仕入 30個 @340円
10月9日 売上 25個(売価@500円)
練習問題1の解答と解説を見る
払出単価は@330円、払出金額は8,250円、残高金額は4,950円です。5日の仕入後の平均単価は(3,000+10,200)÷(10+30)=13,200÷40=@330円。9日は25個×@330円=8,250円を払い出し、残高は15個×@330円=4,950円になります。売価@500円は使いません。
練習問題2
練習問題1と同じ取引を先入先出法で記入した場合の、10月9日の払出金額と、この売上による売上総利益を答えなさい。
練習問題2の解答と解説を見る
払出金額は8,100円、売上総利益は4,400円です。古い@300円の10個を先に払い出し(3,000円)、残り15個を@340円で払い出します(5,100円)。売上高は25個×@500円=12,500円なので、売上総利益は12,500−8,100=4,400円です。移動平均法なら12,500−8,250=4,250円で、方法によって利益が変わることが分かります。
練習問題3
C商品50個を@420円で仕入れ、当社負担の引取運賃1,000円を現金で支払った。商品有高帳の受入欄に記入する単価と金額を答えなさい。
練習問題3の解答と解説を見る
単価は@440円、金額は22,000円です。引取運賃は仕入原価に含めます。受入金額は50個×@420円+1,000円=22,000円、受入単価は22,000÷50=@440円です。
練習問題4
D商品の残高は30個 @500円(15,000円)だった。ここに20個 @560円を仕入れ、翌日、品違いのためそのうち5個を返品した。移動平均法で、仕入後と返品後の残高(数量・単価・金額)を答えなさい。なお、返品は払出欄に仕入時の単価で記入するものとする。
練習問題4の解答と解説を見る
| 摘要 | 受入 | 払出 | 残高 |
|---|---|---|---|
| 仕入 | 20個 @560 11,200 | 50個 @524 26,200 | |
| 仕入戻し | 5個 @560 2,800 | 45個 @520 23,400 |
仕入後は(15,000+11,200)÷(30+20)=26,200÷50=@524円です。返品で出ていくのは@560円で仕入れた商品なので、払出欄は5個×@560円=2,800円。返品後の残高は26,200−2,800=23,400円、45個なので、単価は23,400÷45=@520円に出し直します。
まとめ
- 商品有高帳は、商品ごとの在庫を受入・払出・残高で記録する補助元帳。単価と金額はすべて原価で書く
- 先入先出法は古いものから払い出し、単価の違う在庫は行を分けて書く
- 移動平均法は単価の違う商品を受け入れるたびに平均単価を出し直す。売上の行では出し直さない
- 売上原価=売上の払出金額の合計−売上戻り。「月初の在庫+当月の仕入高−月末の在庫」で検算する
- 補助簿の選択では「商品の数量が動いたか」で商品有高帳を選ぶ
次の一歩として、簿記3級の無料講義 全50本の一覧から、商品売買の講義(#08 仕入帳と売上帳、#09 商品有高帳)を続けて見ておきましょう。帳簿どうしのつながりがつかめます。第2問全体の時間配分や解く順番は簿記3級の大問別の解き方で扱っています。
動画で学ぶ|商品有高帳と補助簿の講義
この記事の講義(簿記3級 #09・8:21)
8:21【簿記3級 #09】商品有高帳|先入先出法と移動平均法の解き方商品有高帳は数量と単価で在庫を管理する補助元帳 / 先入先出法は古いものから払い出す。行を分けて書く / 移動平均法は仕入のたびに平均単価を計算し直す / 払出欄の合計=売上原価になる▶ YouTubeで見るあわせて見たい動画
よくある質問
商品有高帳の払出欄には売価を書きますか?
書きません。払出欄の単価と金額は原価で記入します。売価は売上高を計算するときにだけ使います。
先入先出法と移動平均法で売上原価が違うのはなぜですか?
払い出す単価の決め方が違うからです。月初の在庫と当月の仕入高の合計はどちらの方法でも同じで、それが売上原価と月末の在庫にどう分かれるかが変わります。そのため、売上原価が小さい方法ほど月末の在庫が大きくなります。
移動平均法で平均単価が割り切れないときはどうしますか?
問題文の端数処理の指示(円未満の四捨五入など)に従います。指示がないのに割り切れないときは、受入金額や数量の拾い間違いがないかを先に見直してください。
商品有高帳は主要簿ですか、補助簿ですか?
補助簿で、そのうち補助元帳にあたります。主要簿は仕訳帳と総勘定元帳の2つです。
仕入戻しは受入欄と払出欄のどちらに書きますか?
この記事では、払出欄に仕入れたときの単価で書く方法で説明しています。教材によっては受入欄にマイナスで書く方法もあるため、試験では問題文や答案用紙の指示に従ってください。
執筆:ぼきの森学校 編集部 監修:公認会計士・税理士
情報確認日:2026年9月24日(試験要項・合格率は 日本商工会議所の公式サイト、改定内容は 出題区分表のページ でご確認ください)
記事中の設例・金額・想定ケースは解説のために作成したもので、実在の会社・人物・取引とは関係ありません。
「日商簿記」は日本商工会議所および各地商工会議所が実施する検定試験の名称です。本サイトは同会議所が認定・公認する教材ではありません。
内容の誤りにお気づきの際は お問い合わせフォーム からお知らせください。運営者情報・監修体制 もあわせてご覧ください。

