- スターター
- ベーシック
- プロフェッショナル
- ミニマム
- ライト
- フル
- pro
- Web
- iPhone
- Android
「指定日の在庫金額」では、指定した日時点における在庫金額を求めるために、以下の2つの処理を内部的に行っています。
① 指定日時点の在庫数量を求める処理
② 算出された数量に対して金額を割り当てる処理
それぞれの処理について、以下で詳しく説明します。
指定日時点の在庫数量を求める
(入出庫を含む)全ての変更履歴から指定日時点の数量を算出します。
なお、変更履歴のデータは下記4種類にわけることができ、在庫数量の計算は、各履歴の「操作後の数量」を使って行います。
変更履歴は4種類あります
在庫の増減は、以下の4種類の履歴に分類されます:
| 種類 | 基準日 | 補足 |
| ①入庫データ | 入庫日(あとから変更可) | |
| ②出庫データ | 出庫日(あとから変更可) | |
| ③入出庫以外の増加の変更履歴 | 操作日(変更不可) | 「入出庫データがない変更履歴」の対象 |
| ④入出庫以外の減少の変更履歴 | 操作日(変更不可) | 「入出庫データがない変更履歴」の対象 |
※操作日 = 変更履歴の操作日時(在庫一覧の直接編集や棚卸などの操作日)
入出庫データは過去にさかのぼって影響します
「① 入庫データ」「② 出庫データ」は、あとから日付を変更することができます。
そのため、過去の日時点の在庫数量が変わることがあります。
例)
- 現在の日付:7月15日
- 7月10日時点で、在庫の変更履歴には「10個」と記録されている
- この状態で、入庫日を7月9日とした+5個の入庫データをあとから登録する
すると…
→ 在庫金額アプリでは、7月10日時点の数量を「15個」として再計算します。
(7月9日に+5個されていたため)
- 入庫・出庫データは「入出庫日」が基準になります
- 棚卸や直接変更など、それ以外の操作は「操作日」が基準になります
- どちらの履歴も「その時点で在庫が何個だったか?」を計算するために使われます
- どちらの履歴も「その時点で在庫が何個だったか?」を計算するために使われます
- 「変更履歴を初期化」した場合や、無料プランへの変更により「変更履歴が作成されていない期間」がある場合、正しく金額が計算されないことがあります。
算出した数量に対して金額を割り当てる
上記で求めた「指定日時点の在庫数量」に対して、
入庫データの単価(または在庫データに設定された仕入単価)をもとに、在庫金額を割り当てていきます。
最終仕入原価法
[最終仕入原価法]では、指定日時点の在庫金額を、下記のように計算します。
指定日時点の在庫数量 × 最終仕入原価
入庫データがないと金額を計算できません
「最終仕入原価法」は、入庫データに登録された仕入単価を使って金額を計算します。
そのため、以下のような場合は金額の計算ができなくなります:
- 入庫データが1件も登録されていない
- 最新の入庫データの仕入単価が未入力
上記のようなケースでは、[在庫データの仕入単価で計算する]オプションをONにすることで金額を算出できます。
- 指定日時点に在庫が存在する場合:その時点の在庫データの仕入単価を使用
- 指定日時点に在庫が存在しない場合:現在の仕入単価が使われます
先入先出法
【先入先出法】では、入庫⽇が古いものから優先的に出庫されていきます。 そのため、指定⽇時点で残っている在庫は入庫⽇が新しいものということになります。
計算方法は、指定⽇時点で残っている在庫数量に対して、入庫⽇が新しい入庫データから仕入単価を順に割り合てて⾦額を計算します。
| 基準日 | 種類 | 数量 | 仕入単価 |
| 7/14 | 入庫データ | 20 | 100 |
| 7/13 | 入庫データ | 10 | 120 |
| 7/12 | 入庫データ | 30 | 90 |
| ... | ... | ... | ... |
例)7月14日時点の在庫数量が40個だった場合:
単価 100円 × 20個 → 2,000円
単価 120円 × 10個 → 1,200円
単価 90円 × 10個 → 900円
基準日(7月14日)より過去にさかのぼり、入庫日が新しいものから順に数量を足していき、
合計が基準日時点の在庫数量(40個)になるまで集め、その単価を使って金額を計算します。
2,000円 + 1,200円 + 900円 = 合計 4,100円
先入先出法で算出できない在庫データがある場合
こちらをご確認ください。
移動平均法
[移動平均法]では、在庫の移動平均単価は、指定日までの全履歴をもとに自動で計算されます。
数量が増減するたびに、平均単価は以下のルールで更新されます。
-
数量が増加したとき(入庫時など)
増加後の平均単価は、以下の式で計算されます:
増加後の平均単価 = (増加前の平均単価 × 増加前の数量 + 仕入単価 × 増加数量) ÷ 増加後の数量
-
数量が減少したとき(出庫時など)
この場合、平均単価は変わりません。
減少後の平均単価 = 減少前の平均単価
ご注意事項:在庫数0によるエラーと回避方法
以下のような操作を行うと、「ゼロ除算」により移動平均単価の計算ができず、エラーが発生します。
- もとの在庫数が10個
- 20個出庫して在庫が-10個になる
- さらに10個入庫して在庫が0個になる
在庫数が一時的にマイナスになり、その後0になるような操作は、実際の在庫管理では発生しない想定のため、システム上も処理できず、エラーになります。この場合、下記いずれかをお試しください。
- 入出庫の順序を見直す(例:同じ日付の場合は、入庫を先に処理する)
- 入出庫日の修正を検討する
単価がわからない場合の計算方法(移動平均法)
移動平均法では、仕入単価が入力されていない履歴データがあると、正しく計算できないことがあります。
その場合は、在庫の仕入単価で代用するか対象データを除外するなど、オプション設定による対応が必要です。
<オプション設定>
「入出庫データがない変更履歴は計算対象外にする」
「入庫データの仕入単価がない場合は在庫データの仕入単価で計算する」
<オプションの活用が必要なケース>
| 該当データの種類 | 必要なオプション設定 |
| 仕入単価が未入力の入庫データ | 仕入単価が空欄の場合は、在庫に登録されている仕入単価で代用します。 (0円と入力されていれば0円として計算されます) 下記のオプションにチェックを入れてください。(※2) 「入庫データの仕入単価がない場合は在庫データの仕入単価で計算する」 |
|
入出庫以外による在庫の増加 (在庫調整など) |
このような増加には、以下のいずれかのオプションにチェックを入れてください。 「入出庫データがない変更履歴は計算対象外にする」 「入庫データの仕入単価がない場合は在庫データの仕入単価で計算する」 ※「入出庫データがない変更履歴は計算対象外にする」を選択すると、初期在庫など他の要因で単価が不足し、結果的に代用が必要になるケースが多くなります。 |
|
出庫などによる在庫の減少 (出庫や調整によるマイナス) |
減少時は仕入単価が不明でも計算可能です(平均単価は変わらないため)。 必要に応じて、下記のオプションにチェックを入れて対象から除外することもできます。 「入出庫データがない変更履歴は計算対象外にする」 |
| 初期登録時の在庫数量(※1) | 初期在庫に仕入単価が設定されていない場合、在庫の仕入単価で代用しないと計算エラーになります。 下記のオプションにチェックを入れてください。 「入出庫データがない変更履歴は計算対象外にする」 |
(※1)初期登録時の数量 = 指定日時点の数量 ー 指定日までの変更履歴の増減合計
(※2)平均移動法のみ
同じ日に入出庫がある場合の注意点(移動平均法)
入出庫日は、基本的に「日付のみ」で登録され、時刻は入力されません(※注1)。
そのため、同じ日に入庫と出庫がある場合、どちらを先に計算するかによって移動平均単価が変わる可能性があります。このようなケースに対応するため、「入庫と出庫のどちらを先に計算するか」をオプションで指定できます。
※注1:web版zaicoから直接操作した場合は日付のみが登録されますが、CSVインポートやステータスの直接更新
(例:「入出庫済みにする」)など一部の処理では時刻情報まで登録されることがあります。
画面上には表示されませんが、時刻が含まれていれば、その順序が計算に影響します。