プロが教えるわが家の防犯対策術!

初心者です。毎日の累計件数を入力したら日計がわかる表を作成しています。
行は個人名、列には前日までの販売数量の累計、当日の販売累計、5か月分の日付けです。
毎日、当日の販売累計を入力することで日計の販売数量を自動計算したいと思っています。
例えば、前日の販売数累計・当日の販売数量累計・3月1日の日計・3月2日・・・・
      300       450      150    ?
 頭ではわかるのですがうまくできません。日計は5か月分残します。
 どうかわかりやすく教えていただけませんか?

A 回答 (1件)

たぶん そのままでは、自動的な処理は難しいです。


その理由は、ある日に(当日までの累計)を入力し、当日分だけの数量を自動計算させたとして、翌日に(当日までの累計)を入力作業をする切り替えがやっかいだからです。
ある条件下(当日が5月4日)で、あるセル(C7)に入力したとき、別のセル(BD7)に結果が自動反映するようにEXCELの関数を作ってしまうと、別の条件の下(当日が5月5日)で、あるセル(C7)に入力したとき、先のセル(BD7)の値はその前のままにして新たな影響を及ぼさず、別のセル(BE7)に結果が自動反映するようにするのは、EXCEL関数だけでは無理だと思います。
たぶん マクロを併用する方式が一般になされるのではないかと思います。
もしも、画像のように作業をするのに際して、①当日の日付を入力する ②列ごとの日付は固定していてかまわない ③D列の日付を何日とするかをあらかじめ決めるようなシートでも良い という条件を加えて良いのであれば、できないことはないですが、
《❹日計は5か月分残し1日ごとに1日ずらす》はできなくなります。 
もちろん、9月13日に4月14日からの5ヶ月分累計を当日累計として入力し、9月14日には4月15日からの5ヶ月分累計を当日累計として入力するという仕様でシート設計することもできないことではないですが、現実的な方式ではないと思います。
また《❺当日までの累計の開始日付は5ヶ月分ではなく、D列の日付からの累計》にする方が実用的だと思います。(5ヶ月の意味はなくなる)
さらに、《当日分だけの数量=当日までの累計ー前日までの累計》で計算するので、《❻前日までのデータの一部に何らかの誤りがあっても、その誤り分を上乗せした形で当日分が表示される》ことになります。 
補足説明ですが、当日の日付を入力すると、B列には前日までの累計が自動計算されます。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
この場合のマクロは、この表のあるシートに作ります。
マクロの例は、
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address = "$C$1" Then Range("C4:C1000") = ""
If Target.Row < 4 Then Application.EnableEvents = True: Exit Sub
If Target.Column <> 3 Then Application.EnableEvents = True: Exit Sub
Cells(Target.Row, 3 + Cells(2, 5)) = Target.Value - Cells(Target.Row, 2)
Application.EnableEvents = True
End Sub

画像では見えにくいですが、
E2は =COLUMN(INDEX(D3:FD3,,C1-C2+1))-3  累計計算の開始日から当日までの日数を表示しています。
D3は =TEXT($C$2+COLUMN()-4,"m月d日")&CHAR(10)&"日計"  3行目の見出しの日付です。
 D3を右方向にドラッグしてコピーします。
B4は =SUM(OFFSET(D4,0,0,1,$E$2-1)) 開始日(C2)から当日(C1)の前日までの合計です。
 B4を下方向にドラッグしてコピーします。
「エクセル計算を教えてください」の回答画像1
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!