• ベストアンサー

在庫管理表について。

今、在庫管理表を作ってるのですが、計算式で行き詰まってます。Aと言う製品を作るのに最低3個以上のパーツを使います。たとえば製品Aを作るのにa,b,cの3個のパーツを使用するとして、Sheet1に製品Aの完成品の個数、Sheet2には製品Aに使用したパーツ(a,b,c)のそれぞれの個数が入力されています。ここで、製品Aを100個作ったとしてSheet1に完成品の個数100を入力したとき Sheet2のパーツ(a,b,c)の個数も完成品Aが増えると自動的に100個減るようにするにはどうすればいいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

docodemodoorさんのシートがどの様に入力されているのか分かりませんでしたので、 私なりの作り方で作ってみました。 ちょっと分かり難い関数を使っている所もありますが、 なるべく、コピーできるような形にしてあるので、 手作業で良ければ、もっと簡単な式になります。 (パーツ数、製品数が250以上あるとちょっと無理です。) 在庫管理のソフトは、検索すればありそうですけど・・・ 1.パーツリスト(1行目:見だし、2行目以降:データ)   A列:パーツ名・・・入力列   B列:期首在庫・・・入力列   C列:入庫  ・・・=SUMIF(仕入れ!B:B,A2,仕入れ!C:C)   D列:出庫  ・・・=SUM(OFFSET(完成品!$D$2,0,ROW(A2)-2,65535,1))   E列:現在庫 ・・・=B2+C2-D2   F列~:製品A 製品B 製品C・・・各製品に使われるパーツの数   ★C.D.E列は2行目に式を入力し、3行目以降は2行目をコピー 2.完成品リスト(1行目:見だし、2行目以降:データ)   ★ツール→オプション→「表示」のゼロ値のチェックをはずしてください。   A列:日付   ・・・入力列   B列:製品名  ・・・入力列(入力規則でリストにしてもよい)   C列:個数   ・・・入力列   D列~:パーツ名・・・見だし行:=INDEX(パーツリスト!$A:$A,COLUMN(B1))             データ行:=IF($B2="","",HLOOKUP($B2,パーツリスト!$F:$H,COLUMN(B2),0)*$C2)   ★D列以降の列はパーツ分D列をコピー   ★3行目以降は2行目をコピー 3.仕入れ(1行目:見だし、2行目以降:データ)   A列;日付  ・・・入力列   B列:パーツ名・・・入力列(入力規則でリストにしてもよい)   C列;数量  ・・・入力列 ●以下は入力例(ずれていると思います) 1.パーツリスト パーツ名 期首在庫 入庫 出庫 現在庫 製品A 製品B 製品C a       250    100  82  268   2     5 b       300    200  44  456   4 c       150     0  21  129   1           2 d       80      0  40   40               8 e       53      0  36   17          3 2.完成品リスト 日付   製品名 個数  a  b  c  d  e 1月10日  製品B  3  15          9 1月15日  製品A  1  2  4  1 1月20日  製品A  10 20 40 10 2月1日  製品C   5       10 40 2月5日  製品B   4  20         12 3月1日  製品B   5  25         15 3.仕入れ 日付   パーツ名 個数 1月25日  a    100 2月10日  b    200 こんな感じので良ければ、わからない所など補足してください。 長々と失礼しました。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

3つの関係表が必要でしょう。 (1)部品構成表 設欄 完成品名 部品1 部品2 部品3 ・・・      a b c ・・・ A    10 20 5 B 5 10 15 ・・・ (2)完成製品在庫表    完成品名            完成品名 日付 完成数量 出庫数量 在庫数量 日付 完成数量 出庫数量 在庫数量      A                B 5/1         50    5/10 5/12 100     150    ・・・ (3)部品在庫表      部品名             部品名   日付 完成数量 出庫数量 在庫数量 日付 完成数量 出庫数量 在庫数量  多分本件エクセルで考えているのでしょうが、列数256列の制約を考えると、上記などは不安有りです。 やはり一覧性は諦めても、アクセスなどの、関係のデータが必要な時は見れる方式にすべきではないでしょうか。 計算式は 在庫数量=前行在庫+入庫-出庫=当行在庫 部品在庫変動において 部品構成表*完成品(入庫=製造)個数=(部品在庫)出庫数 Aとaから使用部品数の割り出しは 例えば部品構成表が a b c A 10 20 5 B 5 10 15 C 20 15 10 の場合 Aのb部品は =INDEX(B2:D3,MATCH("A",A2:A4,0),MATCH("b",B1:D1,0)) で「20」が採れます。

  • bhoji
  • ベストアンサー率53% (1514/2852)
回答No.2

使用するソフトがエクセルならば、まず項目を入れます。 A1:年月日、A2:仕入(入庫)数、A3:倉出(出庫)数、A4:在庫数 とします。 D2に現在の在庫数を入れます。 D3に数式:=D2+B3-C3 を入れます。 D3の数式はドラッグして下に向けてコピーしておきます。 またA列の表示を日付に設定しておきます。 次にシート全体をコピーして、次のシートに複写し、これを部品の種類分だけ 繰り返します。 シート2のC3へ数式で=Sheet1!B3*1を入れます。 *1としたのは、ネジなど複数必要な場合のためです。 C3の数式をドラッグして下にコピーしておく。 続いてシート2の全体をコピーして次のシートへの複写を繰り返します。 これで基本は出来たと思います。 元のシート1に戻って、A2:製作(製造)数 に変更します。 B3に100を入れて確認してみてください。

回答No.1

Sheet1のB2に100 Sheet2の1の行に(A1)パーツ名、(B1)使用数、(C1)出庫数、 A列に(A2)a、(A3)b、(A4)c B列に個々の使用数を入力 (C2)に=Sheet1!B2*B2と入力すると1台に使われた個数が表示されるので 在庫数の入ってるセルから引けばいい (C3)、(C4)はSheet1!B2*B3とB4になります

関連するQ&A

専門家に質問してみよう