• 締切済み

エクセルで前月までの平均を出す方法

http://oshiete1.goo.ne.jp/kotaeru.php3?q=1933831 上記をふまえた上で・・・ シート1には日ごとの売上 シート2には月ごとの売上がシート1からのSUM関数で表示 そこでやりたいことはというと 前月分までの売上の月平均を出したいのです! =AVERAGE(売上の合計,MONTH(NOW())-1) というところまで考えてみました 「MONTH(NOW())-1」で前月までの数値になりますよね? 問題なのが売上の合計です 1月から12月それぞれの売上合計を シート1の日別売上からSUMで出しています 月平均を出す合計は1月から12月を範囲指定した場合 現在の月も入ってしまいます これを前月までに自動的に計算する方法はないでしょうか? たとえば 今が4月だとして1月から3月までの売上合計・・・ といった具合です 現在ボクが考えられるのは 自動での指定は諦めて月初に前月までの合計をAVRAGE関数に指定する方法 これしかないでしょうか?

みんなの回答

  • kaisendon
  • ベストアンサー率44% (114/257)
回答No.3

こんばんは^^ セル番地等全く分からないので適当ですが、 A1に 1/1 A366に 12/31 と、それぞれシリアル値であるとして B列にそれぞれの日付に対応する売上 仮に今日が4/4だとして、そこまでの入力がある、 その時点で1月、2月、3月の売上の合計を先月までの月数(この場合は3) で割って、一ヶ月の平均の売上を求めたい。 (大の月、小の月などは考えない) そして、実際には、今日は1月31日なので、 「先月末まで」と言うのは去年のデータなので、計算の対象となる データは未だ存在しない。 等々、想像を張り巡らせて。。。 任意のセルに =SUMPRODUCT((MONTH(A1:A366)<MONTH(TODAY()))*(B1:B366))/(MONTH(TODAY())-1) こんな感じでしょうか? (最初に書いたとおりセル番地は全くの適当です) ちなみに1月にこの式を使おうとしても #DIV/0! のエラーが出ます。 (必要であればエラー処理をして下さい) この式は366日分のデータ(シート1)を参照して、ご質問に(多分)見合うデータ(先月までの月平均)を求める式です。

shimashimashima
質問者

お礼

こんにちは SUMPRODUCTというまた新しい関数の登場にもう・・・てんてこ舞いです ありがとうございました

  • Ki4-U2
  • ベストアンサー率81% (364/446)
回答No.2

範囲指定に関する関数で、「offset」というのがあります。 書式は「OFFSET(基準,行数,列数,高さ,幅)」で、 「offset(A4,1,2,1,6)」のような使い方をします。 この例では「セルA4から下に1、右に2ずれたセル(つまりセルC5)からはじまる、縦1×横6のセル範囲」 つまり「C5:C10」という範囲指定の意味を持ちます。 たとえば各月の計がセルA1から縦に並んでいるとすれば、 =AVERAGE(offset(A1, 0, 0, MONTH(NOW())-1, 1) ) といったところでしょうか。 (0か月分の平均は出せないので)1月のときは計算しないよう、if文も使った方がいいでしょうね。 =if(MONTH(NOW())=1, 0, AVERAGE(offset(A1, 0, 0, MONTH(NOW())-1, 1) ) )

shimashimashima
質問者

お礼

こんにちは OFFSETという関数があるなんて衝撃でした こんな関数が隠されていたとは・・・ (って、知らなかっただけですけど・・・・) 教えていただきましてありがとうございました!

回答No.1

 A  B 1  1月 5000 2  2月 5000 3  3月 5000 4  4月 5000 5  5月 5000 6  6月 5000 7  7月 5000 8  8月 5000 9  9月 5000 10 10月  11 11月  12 12月  13 14 平均 **** これがsheet2の内容だとして、B14に設定する関数は =SUMIF(A1:A12,MONTH(NOW())-1,B1:B12) ちなみにA列は1~12の数値を設定し、書式に「#"月"」を設定しています。 shimashimashimaさんの作成した表の形がはっきりと分からないので正確ではないかもしれませんが、参考にして下さい。

shimashimashima
質問者

お礼

お礼が遅くなってすみません ご回答ありがとうございました SUMIFなんて関数があるんですねぇ 関数って面白いです でも・・・・難しい 参考になりました! がんばってみます!

関連するQ&A

  • エクセルで毎月の複数シート合計から平均値を年間途中の分で出したい><

    今excel2003で毎月の客先売上金額、粗利などを6枚のシートで客先ごとに分類し7枚目のシートに合計金額と平均値を出しています。 そこで、全ての合計と平均のある7枚目のシートで 1~12月まであった場合 SUMを利用して反映されているので まだ、この年度で数字が確定していない月(今でしたら9月以降)の 項目に数字の"0"が入ってしまいます。 この為にAVERAGE関数を使うと12ヶ月分が丸々反映されてしまう為、正確な数字がでません。 このため現在はセルに 合計金額/今年度消化した月間数 (例) SUM(売上トータル)/5 といった感じで手作業で割り算して平均を出しています。 これを自動的に毎月、手作業で割り算せずに、消化した月数で平均を出す事は出来ないでしょうか? 初歩的な質問かもしれませんが何卒御回答宜しくお願いします。

  • エクセル・平均の出し方

    こんにちは エクセルで月別の売り上げ一覧のようなものを作りました 一覧の最後に 月平均が出る列を作りたいと思っています AVERAGEA関数を使うと思うのですが 「売上の合計/月」にしたいと思います ただ、「月」の部分を、その月に自動的に変更になるようにしたいんです うまく伝わりますか? 4月なら4で割って平均を出す 12月なら自動的に12で割って平均を出す そんな設定にしたいんですが・・・・ 宜しくお願いします

  • 曜日別売上平均の出し方を教えてください

    エクセルで売上管理表の作成途中なんですが、曜日別の売上&売上平均のところで困ってます。 曜日別売上合計は=SUMIF(D6:D36,1,E6:E36)の関数で問題なく動いたのですが、曜日別平均の関数が判らなくて困ってます。 色々と調べて{=AVERAGE(IF(WEEKDAY($D$6:$C$36,1)=1,$E$6:$E$36))}という関数を試してみましたが動きませんでした。 どなたかアドバイスお願いいたします。

  • エクセルの合計と平均

    すみません、エクセルの合計/平均に関する質問です。 例えば、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の計算が出るようににしたい) 分かりにくくて申し訳ございませんが、宜しくお願い致します。

  • エクセルで前年同日・前月同日を呼び出したい

    エクセルで、当月の日毎の売上データを作成しています。 比較をするために、前年同日の売上をB2に、前月同日の売上をC2に呼び出したいのですが、どのような関数を使用すれば良いでしょうか。 sheet1 A列に前年度の日々の売上 sheet2 A列に前月の日々の売上 が入っています。 よろしくお願いします。

  • Excel VBAの SUM関数について質問です。

    Excel VBAの SUM関数について質問です。 SUM関数で合計の値を出す場合、 SUM(A1:A5)という関数で合計を出しますが SUM(sheet2.cells(1,1),sheet2.cells(5,1)) と言ったようにCellsで指定はできないのでしょうか? 複数の列にVBAのプログラムで合計の値を出したいのです。 WorksheetFunction.SumではSUM(A1:A5)のように 自動計算にならないと思うので・・・

  • excelで日が経つにつれての平均の出し方

    excel2003を使用しております。図を参照して説明します。 日ごとに売上の合計と1日当たりの平均を出したいのですが、 セルに入力されると、下の平均が変わるようにしたいのですが、 =SUM(C3:C32)/2、3、4、、、、、、、、 のような感じで、そのセルに入力した箇所の分の数だけ割るという関数や方法はないでしょうか、 よろしくお願いします。

  • 平均の出し方

    Excel初心者です。 下記のような平均を出す関数を教えてください。 日毎に3列使い、日々の処理数を集計しています。 A列、B列、D列、E列は数値又は空欄。 日計:C列はsum(A:B) 日計:F列はsum(D:E) 月合計計:Q列はsum(C,F・・・) Z列に処理平均を出したい。 C列とF列の値がゼロの時は平均の対象外にする。 average(C4,F4)とすると、数式が入っているせいか、結果が1.5になってしまいます。 ここにゼロや数式が入っているセルを除いた平均を出し、Z4に3と出るようにしたいです。 範囲が10個以上あるので、範囲指定もうまくできません。   A   B   C     D    E    F  ・・・    Q        Z 1 9/1           9/2               9月 2 午前 午後 終日  午前 午後 終日       月合計   処理平均 3  4   1   5    1    3   4         9       4.5 4               2    1   3         3        3 5  1   5   6                      6        6 6  6   1   7    5       5         12        6 宜しくお願い致します。

  • EXCELの平均を出す関数について

    初歩的な質問となりますが、 どうぞよろしくお願いいたします。 sheet1に下記のようなデータがあります。   A    B    D 1 日付  売上  平均 2 7/1   200    3 7/2   100   =AVERAGE(B2:B3) 4 7/3   300   =AVERAGE(B2:B4) 5 7/4   200   =AVERAGE(B2:B5) 6 7/5         ・ 7 7/6         ・ ・  ・          ・ ・  ・          ・ ・  ・          ・ 32 7/31        =AVERAGE(B2:B5) 現在B6までデータが入力されています。 D列に今日までの平均を表示したいのですが、 上記のようなAVERAGE関数をD32まで先に埋めてしまった場合、 B6:B32のあす以降の計算結果も出てしまいます。 B列のセルに入力がない限り、 今日の日付以降を計算しない(空欄)ようにする方法はありますか? よろしくお願いいたします。

  • エクセル SUM関数について

    こんばんは。 SUM関数を使ったときに、指定した範囲が空白にもかかわらず、その合計は0になるようですが、これを空白のままにしておくにはどうしたらよろしいでしょうか。 というのも、SUMで合計したものの総合計を平均するのが目的なのですが、SUMの合計に0が入っていると平均値に影響してしまいます。 アドバイスお願いします。