- 締切済み
エクセルで前月までの平均を出す方法
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関数に指定する方法 これしかないでしょうか?
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- kaisendon
- ベストアンサー率44% (114/257)
こんばんは^^ セル番地等全く分からないので適当ですが、 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)を参照して、ご質問に(多分)見合うデータ(先月までの月平均)を求める式です。
- Ki4-U2
- ベストアンサー率81% (364/446)
範囲指定に関する関数で、「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) ) )
お礼
こんにちは OFFSETという関数があるなんて衝撃でした こんな関数が隠されていたとは・・・ (って、知らなかっただけですけど・・・・) 教えていただきましてありがとうございました!
- hamaken5031
- ベストアンサー率22% (15/68)
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さんの作成した表の形がはっきりと分からないので正確ではないかもしれませんが、参考にして下さい。
お礼
お礼が遅くなってすみません ご回答ありがとうございました SUMIFなんて関数があるんですねぇ 関数って面白いです でも・・・・難しい 参考になりました! がんばってみます!
お礼
こんにちは SUMPRODUCTというまた新しい関数の登場にもう・・・てんてこ舞いです ありがとうございました