• 締切済み

エクセルの合計と平均

すみません、エクセルの合計/平均に関する質問です。 例えば、1月から12月までの売り上げの平均値をA2からL2に入力し、M2に1月から12月までの合計の平均を出したいと思います。 ですが、M2に=AVERAGE(A2:L2)と入力すると平均値の平均が出てしまいます。 1月~12月の合計÷365をM2に出したい場合どのようにしたら良いでしょうか。 また、例えば、7月まで入力されている場合、8月、9月の平均を入力していったら、自動的にM2に9月までの平均を出すにはどのようにしたら良いでしょうか。 (例:2月まで入力されている場合。A1、B1には1月の平均、2月の平均が入力されている。M2には、1月の平均×31+2月の平均×28÷59の計算が出るようににしたい) 分かりにくくて申し訳ございませんが、宜しくお願い致します。

みんなの回答

  • a987654
  • ベストアンサー率26% (112/415)
回答No.7

NO2です。 A1セルに2月1日・・・・L1セルに1月1日とおいて A3セルに=DAY(A1-1) B3以降コピー これでもeomonth関数と同じ結果がでますよ。 ネタばらしですが最初はこれを考えましたが、1行目の表示が 実際の月と合わないのが気に入らなくてeomonth関数を使いました。

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

#5です。 >使用しているExcelは古いバージョンであるせいか、eomonth関数はないようです 手元のエクセル95の関数解説本に既に載ってます。 ーー http://okwave.jp/qa2531953.html を見てください。 ここにその質問が載ってます。 アドイン関数だから、すべきことが在るのです。 ーーー 私の#5回答の後半の例で =SUMPRODUCT((B2:B13)*(DAY(DATE(2009,ROW(H1:H12)+1,1)-1)))/COUNT(B2:B13) とすれば、EOMONHJ関数を使わなくてもうまく行くようです。

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

H1セルに =DAY(eomonth(DATE(2009,ROW(),1),0)) H12まで式を複写。 これで月日数が出る。2009年専用。 ーー データ A2:C14 A列 B列  C列 1 20 620 2 25 700 3 35 1085 4 15 450 5 18 558 6 23 690 7 27 837 8 31 961 9 16 480 10 23 713 11 14 420 12 17 527 8670 8670 B14セルの式は =SUMPRODUCT((B2:B12):(H1:H12)) C列の数は対応月のB列データ*H列データをテスト・検算のため計算したもの ーーー 途中月まで 1 20 2 25 3 35 4 15 5 6 7 8 9 10 11 12 平均は =SUMPRODUCT((B2:B13)*(H1:H12))/COUNT(B2:B13) 両方兼ねるので、「途中月まで」の式でよいが。

ganatsh
質問者

お礼

ご返答ありがとうございます! どうやら自分が使用しているExcelは古いバージョンであるせいか、eomonth関数はないようです。 それについては残念ですが、考え方は勉強になりました。 ご回答ありがとうございました。

回答No.4

#3です よくよく見たらCOUNTの部分が違ってました m(_ _)m 参考にはしないと思いますが一応訂正 =SUMPRODUCT(A2:L2,DAY(DATE(2009,{2,3,4,5,6,7,8,9,10,11,12,13},0))) /SUMPRODUCT(DAY(DATE(2009,COLUMN(A1:INDEX(1:1,COUNT(A2:L2)))+1,0))) A1:L2 → A2:L2です。 少し解説。 前半で合計、後半で日数を出し割っています。 たとえば、DAY(DATE(2009,2,0))では1月の日数が算出できます。 COLUMN(A1:INDEX(1:1,COUNT(A2:L2))) で2行目の数値が入っている分までの連番の配列を作ります 3月まで入っていれば {1,2,3}です

ganatsh
質問者

お礼

ご返答ありがとうございます! 一つのセルで解決できるとは・・・! 式の意味を理解し、使えるようになりたいと思います。 ご丁寧に図解まで書いていただきありがとうございました。

回答No.3

1日あたりの平均を出したいのですね M2セルに =SUMPRODUCT(A2:L2,DAY(DATE(2009,{2,3,4,5,6,7,8,9,10,11,12,13},0))) /SUMPRODUCT(DAY(DATE(2009,COLUMN(A1:INDEX(1:1,COUNT(A1:L2)))+1,0))) どこかに西暦「2009」を入れて参照する方がいいかな A2セルから空白無く右へ埋まっていくものとします。 遊びで作ったまでなので参考まで。

  • a987654
  • ベストアンサー率26% (112/415)
回答No.2

NO1の方と同様作業用の行を作ります。 (行をNO1の方にあわせます) A1セルに1月1日・・・・L1に12月1日 (文字とせずに日付で入力のこと標準で1/1、1/2で入る) A2~平均データ A3に=DAY(EOMONTH(A2,0)) A4は=A2*A3         B3~L4はA3~A4をコピー あとはNo1の方と同様です。

ganatsh
質問者

お礼

ご返答ありがとうございます! EOMONTHという関数は初めて見ました。 調べて使えるようになりたいと思います。 ご回答ありがとうございました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

作業のための行を作って対応するのがわかりやすいですね。 初めに1行目には月が1月から12月と表示しますが、入力ではA1セルに2009/1/1とB1セルには2009/2/1・・・・と入力し、セルの書式設定で表示形式をユーザー定義にしm"月"とします。これで1月2月のように表示されます。 次に2行目には月平均の値を入力します。 3行目はその月の日数を次の式をA3セルに入力してL3までオートフィルドラッグすることで表示させます。 =IF(MONTH(A1)<>12,DATEDIF(A1,B1,"d"),31) 4行目には月の日数と平均を掛けた値をA4セルに次の式を入力してL4までオートフィルドラッグすることで表示させます。 =A2*A3 求める答えはM2セルに次の式を入力すればよいでしょう。 =SUM(A4:L4)/SUM(A3:INDIRECT(ADDRESS(3,COUNT(A2:L2)))) 作業の行が目障りであれば行を非表示にすれば、あるいは別の場所に設定すればよいでしょう。

ganatsh
質問者

お礼

ご返答ありがとうございます! なるほど・・・DATEを使えば良かったのですね・・・ 分かりやすいご回答ありがとうございました!

関連するQ&A

専門家に質問してみよう