• 締切済み

どんどん追加される数値を含みながら平均値をだすには?

よろしくお願いします。 ExcelかAccessを考えていますが、それらに限定するわけではありません。 数の集団とその平均数値があり、後から集団に数を適時付け加えていくのですが、その平均値も付け加えるごとに更新していく…ということはできますか。 例えば、Aさんがコンビニで使う金額を週ごとで集計しています。1月から毎週、一週間で使った金額があるのですが、今のところ週平均2100円使っています(仮に全12週、使用合計は25200円とします)。 今週は1500円使いました。そこで、セルに1500と入力しボタンをポチっと押すと、今までのものと合計した上で修正された平均値を示してくれる…それを、延々と繰り返していける… という感じなのです。 どうでしょうか。すみませんが、アドバイスをお願いします。

みんなの回答

noname#187541
noname#187541
回答No.3

こんばんは。 例えば、A列に数値を入力していくとして 平均を出したいセルに =AVERAGE(A:A) と入れます。 A列に数値を入力するたびに平均が更新されます。

moon-walker
質問者

お礼

わかりにく表現で申し訳ありませんでした。知識がないなりに考えてみました。 エクセルでSheet1(記入&表示用)とSheet2(データ蓄積用)を用意し、Sheet1のA1のセルを平均値表示用としB1を数値記入用のセルとしました。A1には、ご提案いただいたとおり、AVERAGE(Sheet2!A:A)という関数を入れました。 B1に記入した数値はSheet2のA1から順次下方向へ蓄積されているようになっています。Sheet1のC1セルの辺りにボタンを作り下記のマクロを登録しました。 Sub 記入_Click() Dim z As Long Dim x As Long Dim dat() As Variant Dim i As Integer z = Range("Sheet2!A1").CurrentRegion.Rows.Count x = Range("Sheet2!A1").CurrentRegion.Columns.Count dat = Array("B1") For i = 0 To x - 1 Range("Sheet2!A" & z).Offset(1, i).Value = Range(dat(i)).Value Next i MsgBox "登録しました" End Sub 問題は(1)私個人としては、記入したデータは別に蓄積する必要はない。(2)数値の計算上、データを蓄積しなければならないなら、エクセルの限界行数までしか蓄積できない。という2点になります。 この辺りについて助言がありましたら、お願いします。また上記についても改良点がありましたらご意見ください。 お礼と返答が遅れ、すみませんでした。

moon-walker
質問者

補足

補足です。問題点を2つ挙げましたが、もうひとつ。 Sheet1のB1に記入した数値ですが、ボタンを押して登録後に消す(空白に戻す)ことは、できますでしょうか?

  • honey888
  • ベストアンサー率18% (5/27)
回答No.2

AVERAGE が簡単だと思いますけど…

moon-walker
質問者

お礼

ありがとうございました。回答に対するお返事が遅くなりすみませんでした。回答No.3をごらんいただくようお願いいたします。

  • 6dou_rinne
  • ベストアンサー率25% (1361/5264)
回答No.1

その程度の計算は関数でもできますが。

moon-walker
質問者

お礼

ありがとうございました。回答に対するお返事が遅くなりすみませんでした。回答No.3のお礼の欄ををごらんいただくようお願いいたします。

関連するQ&A