基本情報技術者 2013年 秋期 午前(科目A) 問77
問題文
ある商品の前月繰越と受払いが表のとおりであるとき、先入先出法によって算出した当月度の売上原価は何円か。

選択肢
ア:26,290
イ:26,450(正解)
ウ:27,250
エ:27,586
先入先出法による当月度の売上原価算出【午前2 解説】
要点まとめ
- 結論: 先入先出法により当月の売上原価は26,450円(選択肢イ)。売上合計130個を古い在庫から順に消費して計算しました。
- 根拠: 期首100個@200、5日50個@215、20日100個@223の在庫ロットを時系列で消費し、15日70個と25日60個の合計130個をFIFOで配分したためです。
- 差がつくポイント: 各売上時点でのロット残数を正確に管理し、誤って期末繰越や加重平均と混同しないことが合格者とそれ以外の差を生みます。
正解の理由
正解: イ(26,450円)です。
理由は、先入先出法(FIFO)では最も古いロットから順に売上に対応する原価を認識するため、次のように配分して計算します。
理由は、先入先出法(FIFO)では最も古いロットから順に売上に対応する原価を認識するため、次のように配分して計算します。
15日売上 70個(まず期首の100個@200から70個を消費)
- 円
25日売上 60個(期首残30個@200を30個消費、続けて5日仕入分50個@215から30個を消費)
- 円
- 円
合計売上原価 = 円
したがって選択肢のうち正しいものはイです。
よくある誤解
- 誤解1: 「翌月繰越=払出だから売上と同じ扱いにする」→ 翌月繰越は期末在庫(移動)であり、売上原価は実際に売れた数量のみを対象とします。
- 誤解2: 「加重平均法やLIFOと混同する」→ 問題で先入先出法と指定されている場合、加重平均や後入先出を使うと誤答になります。
- 誤解3: 「ロットの残数管理を怠る算術ミス」→ 部分ロットの取り崩し(例:期首残30個)の計算を誤ると微妙な差が生じます。
解法ステップ
- 与えられた入出庫を時系列で並べ、ロットごとの単価と残数を管理する。期首:100@200、5日:50@215、20日:100@223。
- 15日売上70個をFIFOで消費:期首100個から70個取り出す → COGS 。残:期首30@200、5日50@215。
- 20日仕入で100@223が追加され、在庫は30@200、50@215、100@223(合計180個)になる。
- 25日売上60個をFIFOで消費:まず期首残30@200を30個、次に5日ロットから30@215を消費 → COGS 。
- 売上原価合計は各売上時の配分合計:。これが当月の売上原価。
選択肢別の誤答解説
- ア: 26,290円
可能な誤り例は部分ロットの乗算や足し算での算術ミス(例:215×30等の計算誤り)です。ロット配分は合っていても計算誤差で数百円単位のずれが生じます。 - イ: 26,450円(正解)
正しくFIFOで各売上時点に古いロットから配分して算出した結果です。 - ウ: 27,250円
ロット配分を誤って一部をより高単価のロットから消費した、あるいは売上数量の配分ミス(70/60のどちらかを誤認)など、数量割当のミスが考えられます。具体的には売上の内訳で200単価の取崩しを少なく見積もる誤りが典型です。 - エ: 27,586円
加重平均法(期末在庫・売上を当月の平均単価で評価)を誤って適用したケースです。全体の平均単価 を用いると となり、FIFO指定の問題では誤りです。
補足コラム
- FIFO(先入先出法)は、在庫の古いロットから順に費用化するため、インフレ時は売上原価が低めになり利益が大きく出る傾向があります。対して加重平均法やLIFOは結果が異なりますので、問題文の指定を必ず確認してください。
- 実務上は「永久記録方式(perpetual)」か「期末一括方式(periodic)」かで計算手順が変わりますが、FIFOは基本的に売上発生順にロットを消費する点で考え方は同じです。
- 試験対策のコツ: ロット単位で「残数・単価」を表にしておくと、売上が発生するたびにどのロットから何個消えるかが一目で分かり、ミスが減ります。
短い計算用スクリプト例(参考)
# FIFOで売上原価を計算する簡易例
lots = [(100,200),(50,215),(100,223)] # (数量, 単価)
sales = [(15,70),(25,60)] # (日付, 数量)
cogs = 0
for day, qty in sales:
remaining = qty
i = 0
while remaining>0:
if lots[i][0] == 0:
i += 1
continue
take = min(lots[i][0], remaining)
cogs += take * lots[i][1]
lots[i] = (lots[i][0] - take, lots[i][1])
remaining -= take
print("COGS:", cogs) # 26450
FAQ
- Q: 「翌月繰越」が払出で示されているがこれも売上原価に含まれますか?
A: 含まれません。翌月繰越は期末棚卸(次月へ移る在庫)であり、売上として扱われた数量のみが売上原価に含まれます。 - Q: 部分ロットで単価が変わるとややこしいです。どの順で処理すべきですか?
A: 日付順(時系列)に処理し、各ロットの残数を逐次更新してください。売上ごとに古いロットから取り崩すことを徹底します。 - Q: 問題で「単価(空欄)」の行はどう扱いますか?
A: 売上行に単価が空欄なのは、売上時点での単価が定められていない(原価はロットから逆算)ことを示します。単価は在庫ロットの単価で割当てます。
関連キーワード: 先入先出法、FIFO、売上原価、棚卸資産、期首繰越、期末棚卸、仕入、加重平均法、在庫評価、原価計算

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

