[[20100518013943]] 『在庫管理』(ワイ) >>BOT

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『在庫管理』(ワイ)

現在在庫の表を作成しようとしています。

私の構想だと


D5列に在庫の数量、例えば30あります、そこで(1)と入力すると増えて31になり、(−1)と入力すると減って29になるということしたいのです。

関数だけで出来ますでしょうか?

詳しい方がいらっしゃいましたら教えていただきたいのです。


同じセルに対しての処理だとマクロになります
(cou)

作成方法などがありました教えていただきたいのです。(ワイ)

 よくある質問です。
[[20020530145644]] 『電卓みたいな計算できますか?』(事務員です)
 
でも、「どこまで入力したのか確認するために履歴がほしい」などの要望も
出てきたりします。
 
[[20041020105248]] 『同一セル内での計算と内訳表示』(tasuketeman)
 
で、出来上がってみると、別のセル範囲に入力したものをSUM関数で計算するのと
そんなに変わらなかったりします。
私は F2(ファンクションキー2番)押してから足したい数字を +10+15・・・
などとやってますね。
 
(みやほりん)(-_∂)b

 色々な問題があって、私個人的にはお勧めしたくないやり方の上位に位置してますが。
 私が回答した中での過去ログには
[[20100419194005]] 『同一セル内での計算』(ヨシヒロ)
 というのがありました。

 結局色々な問題が出て、後々違う方向に変わりましたが。
[[20100510120539]] 『シートの数字を読み取り他のシートに』(ヨシ)

 回答していて言うのもなんですが、とても使いにくくエラーが発生すると
 ドツボにはまるような仕様だと思っています。

 在庫管理ならなおさら、入庫と出庫のリストをどんどん書いていって
 SUMIFなどで合計した方が良いと思います。
 絶対あとで履歴は?という事になると思いますので。

 (momo)

ありがとうございます。
履歴を残したりは考えておりません。

もう1つ考えていますがどうすればいいでしょうか?

	[A]	[B]	[C]	[D]	[E]
 [1]					
 [2]			入庫  出庫  在庫		
 [3]		品名			
 [4]					
 [5]					
 [6]					
 [7]					
 [8]					
 [9]					
 [10]	

入庫に数字を入れて在庫にプラス(+)されていく、出庫に数字を入れマイナス(−)していくのは関数で出来ますでしょうか?

教えていただきたいのです。(ワイ)


誰か分かる方がいらしたら教えて頂きたいのです。
宜しくお願いします。(ワイ)

マクロでどうぞ

 あまりお勧めはしません。

 入庫を入力するのがC3セル、出庫を入力するのがD3セル、計算をおこなうのがE3セルとして。

 まず「ツール」―「オプション」の「計算方法」タブで「反復計算」にチェックを入れて「最大反復回数」に「1」と設定します。

 そしてE3セルに
 =IF(COUNT(C3:D3),IF(CELL("address")="$C$3",E3+C3,IF(CELL("address")="$D$3",E3-D3,E3)),0)
 と入力します。

 これでC3セルに入力した値がE3セルに足され、D3セルに入力した値がE3セルから引かれます。
 また、C3セル、D3セル両方を空白にするとE3セルは「0」になります。

 ただし、C3セル、あるいは、D3セルにカーソルを置いた状態で保存した場合、次にファイルを開いたときにカーソルの位置の値が
 計算されてしまいます。
 (独覚)

やってみたのですが何もなりませんでした。(ワイ)

 どこか手順が違ったか、あるいはワイさんのなさりたいことを私がワイさんの書き込みから読み取れなかったのでしょう。
 (独覚)

 当該動作をさせるシートの見出しを右クリック、コードの表示を選択して
下記のコードを貼り付け、エクセルに戻って作業をしてみてください。
 
 Private Sub Worksheet_Change(ByVal Target As Range)
     If Target.Column = 3 Then
         Application.EnableEvents = False
         Me.Cells(Target.Row, 5).Value = Me.Cells(Target.Row, 5).Value + Target.Value
         Target.ClearContents
         Application.EnableEvents = True
     ElseIf Target.Column = 4 Then
         Application.EnableEvents = False
         Me.Cells(Target.Row, 5).Value = Me.Cells(Target.Row, 5).Value - Target.Value
         Target.ClearContents
         Application.EnableEvents = True
     End If
 End Sub
 
(みやほりん)(-_∂)b

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.