• 締切済み

エクセル 毎月の数字を加算

教えてください。 D列に毎月の数字を入力しています。(100,400,1000・・・・・)など。 毎月縦に数字を入力していってその年の合計の前年比を 出したいです。 例えば現在2008年5月なら、その五ヵ月分と前年分(2007年1月~5月の合計)を割ったものです。 A1のセルに当月の5月を表す「5」を入力するなどして算出する indirect関数を調べてみましたが使い方がよくわかりません。 説明が不明瞭かもしれませんが どうぞよろしくお願いいたします。

みんなの回答

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

あるブックのSheet1,Sheet2,Sheet3,Sheet4のA1セルを加えるには =SUM(Sheet1:Sheet4!A1) で出ます。シート名を列挙というよりは、シート名タブを隣り合わせに寄せておいて、初め(最左)のシート名と終わり(最右9のシート名を書いて限定するものです。 上記でSheet4が5月という名であると=SUM('Sheet1:5月'!A1)とします。 ーー これをINDIRECT関数で、セルの価に置き換えて出来ないかやってみたが、1つのシートでは出来るが、「から」の意味の「:」を使うと #REF!エラーになる。 とりあえずINDIRECT利用では、出来ないと報告します。 http://www.efcit.co.jp/cgi-bin2/exqalounge.cgi?print+200606/06060025.txt にも>=SUM(INDIRECT(A5&":"&A6&"!A1"))   などはムリです。  と書いている人が居る。 ーー VBAでも使わないと出来ないのかも知れない。 Sheet5のB1に4月までと「4」が入っているとして 標準モジュルに、ユーザー関数として Function sadd() For i = 1 To Sheets("Sheet5").Range("B1") t = t + Sheets(i).Range("A1") Next i sadd = t End Function ーー Sheet5で =sadd() と入れると シートインデックス1-4のA1セルの合計が出る。

hanakoubou
質問者

お礼

ご回答ありがとうございます。 VBAはやったことがないので私にとって難しいです。 これからもっと勉強してVBAを使えるようになりたいです。

  • nknk80
  • ベストアンサー率65% (17/26)
回答No.1

A1のセルに月を表す「5」などを入力して、 D列のSUM(D1:D5)のようにしたい場合は、  =SUM($D$1:INDIRECT("$D$"&$A$1)) でよいと思います。 異なるシート、たとえばSheet1のA1に月を入力し、 Sheet2のD列の月の範囲の合計を計算するなら、  =SUM(Sheet2!$D$1:INDIRECT("Sheet2!$D$"&Sheet1!$A$1)) と入力すれば計算できると思います。 あとは、前年度の合計も同様に計算すれば前年比を計算できると思います。

hanakoubou
質問者

お礼

ご回答どうもありがとうございます。 うまくできました。 そういうやり方があるのだと関心しました。 助かりました。