- ベストアンサー
excelで在庫管理
仕事で在庫管理表を作ることになってしまいました・・・。 シート1 商品コード、アイテム名、昨日在庫数 を羅列したリストを貼り付けてシート2の在庫管理表に反映させてその日の在庫数をチェックします。 シート2 商品コード、型番、アイテム名、在庫数 を表示しています。 毎日上書きして在庫管理するリストなので、シート1の変動もあり、なかなか使えるものができません。 簡単にシート1の在庫をシート2に反映させられる関数はありませんか? excel初心者で何もわからないので教えて下さいm(_ _)m
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
シート設計としては、あまりうまいやり方とはいえません。 単にシート1の在庫数をシート2に反映させたいだけなら、 シート2の在庫数のセルに =シート1!C3 (シート1のC3セルと対応しているとして)と入力するか、=を入力した後シート1の下のタブをクリックして表示させ、C3セルをクリックしてEnterキーを押せば同様になります。 シート1とシート2の商品コードの並びが同じならば、シート2で今入力したセルを下方向にコピーしてやればOKです。 500円くらいでも、様々な丁寧な解説書が本屋で売っていますのでそれを参考にしてがんばってください。
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
こういう仕事に使う(内容も全社的に影響する)(注)のはエクセルの熟練者とか、私の持論のVBAまでできないと無理です。 (注)対するのは個人のレポートで部の計数の報告書を作成。 誤った場合、経営に影響することも考えられるが、顧客に迷惑がかかるものではない。 それにシステム的思考の経験が要りますが、業界社員で無いとなかなか訓練されない(もちろん彼らはクセル以外で構築しますが)。 子供が「家を建てたい」といっているようなものです。 ーー 何か出来合いのソフトが無いか探すべきです。 ーー 質問もデータ例を具体的に挙げて(数は5行程度でよい)1歩1歩人間が帳簿をつけるとしたらどういうステップになるか説明できないと、システムなんかおぼつきません。 ーー この作業は(1)日次作業ですか、(2)月次作業ですか (A)毎日の商品の動き(トランザクションデータという)を記録 日ごとシートを別にするか、下にくっつけていくか (B)本日の在庫明細を記録する(マスタデータ) 前日(B)+本日(A)==>本日(B)(+とは更新という意味) このマスタを1つで運用しようとすると、本日残を前日残におき変えるステップが必要。 ーーーー 一例として私案を挙げてみます。本邦初公開かも。 じっくり読んで、考えて、納得して、使えるかどうか考えて。 Sheet2 例データ データだけ、式なし 本日在庫の出入り 品名 入 出 a 10 3 c ー 15 b ー 5 a 5 0 b 20 10 特徴 同じ商品が2回以上現れても可 動かない商品は出ないでよい(当然ではあるが) 日が変わると別シートを作る ーーー Sheet3 マスタ A1:E6 商品 前日残 出 入 本日残 a 30 15 3 18 c 20 0 15 35 b 15 20 15 10 d 25 0 0 25 e 10 0 0 10 前日残は式なしのデータ。 前の日に本日残をコピペ。忘れないようにしないと。 ーー C2は式 =SUMIF(Sheet2!$A$2:$A$10,A2,Sheet2!$B$2:$B$10) 下方向に式を複写。 D2は式 =SUMIF(Sheet2!$A$2:$A$10,A2,Sheet2!$C$2:$C$10) 下方向に式を複写。 E2は式 =B2-C2+D2 下方向に式を複写。 ーー この段階で他ブック・他シートへコピーを残すとか印刷する。 そして明日の為にE列ー>B列に「値のみ」コピーする。 ーーー 問題は今日はシート名がSheet2だが、明日はSheet3(ただし上記の例のSheet3ではない)になる。式の中にSheet2が固定して入っているので、明日には都合が悪い。 これを解決するためにINDIRECT関数で相対化・変数化する。 F1にシート名を毎日変えて入れるとして(今回Sheet2) =SUMIF(INDIRECT($F$1&"!$A$2:$A$10"),A2,INDIRECT($F$1&"!$B$2:$B$10")) これを下方向に複写すると 15 0 20 0 0 で上例のC列と一致。 D列も同じように式を作ること。
お礼
参考になりました。 どうもありがとうございます。
- jo-zen
- ベストアンサー率42% (848/1995)
ANo.2の者です。質問の意味を取り違えてたかもしれないので、補足説明します。 シート1にはアットランダム(例えば時系列にあわせて)に商品コード以下のレコードが入力していて同一商品コードが複数ある場合には、 SUMIF関数を使う手があります。 =SUMIF(検索範囲,検索条件,合計範囲) で、範囲に名前をつけておいて、集計する方法です。
お礼
補足までいただきありがとうございました。 教えていただいた方法を早速試してみます。 本当にありがとうございます。
ご質問のような、在庫数を加減算していくようなものは、 エクセルでは正直難しいのです。 できないとは言いませんが、運用が難しいのです。 基本的にエクセルのワークシート計算式は、他のセルをどうにかする機能は有りません。 常に受け身でしか実現できませんから、マクロ(VBA)を使うしかありません。 また、例え在庫数をセルに書き込むマクロ(VBA)を作ったとしても、 このマクロを複数回走らせたら在庫数はメチャクチャになってしまいます。 このあたりチェックは運用方法もからむため結構難しくなります。 回答になっていなくて申し訳ないなのですが、こういったものはAccessのほうがよいと思われます。
お礼
エクセルでは難しいということがわかっただけでかなり助かりました! ご回答いただきましてありがとうございました。
お礼
解説書を探してみます。 ご回答いただきましてありがとうございました。