• ベストアンサー

シート全体のSUM関数だけの総合計

(EXCEL2002 WINXP) 1枚のシートに、SUM関数が10個以上入っています。 しかし、SUM関数が入っている箇所が固定されていないので、ひとつずつ拾って、総計を出している状態です。 マクロなどを使ってシートの中のSUM関数だけの総計など出すことは可能でしょうか?もし、可能であれば、教えていただければ幸いです。よろしくお願いいたします。

質問者が選んだベストアンサー

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

シート(Sheet1とします)にコマンドボタンを1つ貼りつけてください。 ダブルクリックするとVBE画面になり、Sheet1の Private Sub CommandButton1_Click() End Sub がでた画面になります。 Private Sub CommandButton1_Click() Dim cl As Range For Each cl In Range("a1:d10") If Left(cl.Formula, 5) = "=SUM(" Then t = t + cl End If Next Cells(11, "C") = t End Sub をコピペしてください。(ただし最初と最終行はコピペから外して下さい。) そしてSUMの入っている可能性のある範囲で、Range("a1:d10") の部分を置換えてください。 Cells(11, "C") を答えをセットしたいセルで置換えてください。例えば、H12ならCells(12,"H")です。 VBE画面で、実行-デザインモードの終了をクリックする。 そしてボタンをクリックすれば、セットしたセルに合計が 入ります。 合計したい合計は無理に=SUM()で統一し、それ以外は=A1+SUM()とでもしてください。加えるかどうかは、式の見た目で判断しています。 だから=A1+sum(・・)や =2*SUM(・・・)は足しません。 =SUM(・・・)*2は足します。 珍しい問題なので、実際使えるかどうか。

omusupa
質問者

お礼

>珍しい問題なので、実際使えるかどうか。 大丈夫です!思ったとおりのことできました。 アクティブセルに結果を出したければ、Cells(11,"C")の所を、ActiveCellにすればよいのですよね。 本当に助かりました。これで作業が楽になります。 ありがとうございました。

その他の回答 (2)

  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.2

SUM関数が入ってるセルを足し算する式では駄目ですか? 総合計取るセルに =A30+B40+E20+F40+G25 とかって式を書くとか。 =$A$30+$B$40+$E$20+$F$40+$G$25 と書くとセル固定参照なので駄目ですが =A30+B40+E20+F40+G25 であれば相対参照なので、セルが移動しても自動修正されるので大丈夫です。

omusupa
質問者

お礼

説明不足で申し訳ありません。 回答ありがとうございます。

  • snoopy64
  • ベストアンサー率42% (337/793)
回答No.1

ご質問のケースでは「SUBTOTAL関数」を使うのがよいと思います。 頑張ってくださいヽ(^。^)ノ

omusupa
質問者

お礼

説明不足で申し訳ありません。 SUBTOTAL関数では対処できず、質問させていただきました。(各列にSUM関数が入っており、列によっては2つSUMが入っていたり・・不規則になっています)

関連するQ&A

  • SUM関数について

    色々試したのですが、うまくいきません。 お分かりになる方、是非教えて下さい。 EXCEL2007で =SUM(Sheet1:Sheet2!A1)と数枚のシートの同じセルのトータルを 計算させています。 ところが対象セルに空白が1つでもあり、合計がゼロになる場合、ゼロと表示せず、 空白セルになってしまいます。 対象セルに空白があっても、合計が1以上の場合は答えが表示されます。 IF関数やISBLANK関数を使用してみても、うまくゼロ表示ができませんでした。 どのような数式にすれば、対象セルに空白があり、合計がゼロになる場合、ゼロと表示 してくれるのでしょうか? 是非教えて下さいお願いします。

  • エクセルVBA 他シートのSUM関数結果の反映

    エクセルVBA初心者です。 以下のVBAの記述をお教えいただきたく思います。 かなり検索を行ったのですが、しっくりと理解できませんでした・・。 シート1とシート2があり、シート2における足し算結果をシート1に反映させる、というだけのことなのですが・・ 例えば、シート1のA1セルに「=SUM(シート2!A1:A*)」の結果をマクロで反映させたいのです。 シート2におけるsum関数は、データ数が変動するので仮にA1から「A*」と仮にしていますが、 このことを踏まえた場合のVBAの記述はどのようになるのでしょうか。 お教え下さい、よろしくお願い致します。

  • エクセル2007でsumで複数のシートの串刺し合計を

    エクセル2007でsumで複数のシートの串刺し合計を するときのシートの選択方法について伺います。 1日から31日までの同じ様式のシートがあってデータが 入力してあるのですが、その中の特定の日のデータだけを 串刺しで合計したいです。 sumの関数を入力しているときの話なのですが、shiftキーで あるシートからあるシートまでというシート選択はできるの ですが、Ctrlキーで連続していないシートを選択を しようとしてもできません。 でも、sumの関数を組んでいないときはCtrlキーで 連続していない複数のシートを選択することができます。 sumの関数を組むときにもそのようなシート選択ができると かなり便利なのですが、地道にシートを切り替えて式を 作るしかないのでしょうか?それとも何か良い方法は あるでしょうか? よろしくお願いいたします。

  • SUMを使用した関数について

    ブック内に2つのシートを設定しています。 一枚目のシートを入力すれば二枚目のシートにも自動で入力できるようにSUMを使用しています。=SUM(1枚目シート!A4) 一枚目のシートが未入力状態のときに二枚目のシートは0と常時表示されてしまっています。 これを消しておきたいのですがどうしたらいいのですか?

  • EXCEL2000,SUM関数なんですが・・・

    SUM関数なんですが、=SUM(A1:A?) A?の箇所は、入力された分だけ合計したいのですが、 こういう場合、どう表記するのでしょうか? A?の可変値を、余裕を持って、A1000とか多めにとるしかないのでしょうか? よろしくお願い致します。

  • ExcelでのSUM関数について

    Excel2000を使用しています。 例えば、A1~C1までをSUM関数で計算したいのでE1に =SUM(A1:C1)と入力します。 その後、A1からD1まで数値を入力すると E1に入力した式が=SUM(A1:D1)に変わってしまいます。 D1は計算したくない数値です。 何か設定があるのでしょうか? 教えて下さい。よろしくお願いします。

  • EXCELでSUM関数が使えません。

    Windows2000でEXCEL2000を使用しています。 Access2000の列をコピーしてExcelのシートに貼り付けをしました。 一番下のセルにSUM関数を入れて合計を出そうとしているのですが、0になってしまいます。データのセルをダブルクリックすると、その数字だけは反映されるのですが、行数が多いのですべてをクリックしていくのは難しく感じます。 上のような状況下で、自動的に合計を算出させる方法はないでしょうか。 ご存知の方、よろしくお願いします。

  • EXCELのSUM関数について

    EXCELのSUM関数についての質問です。 セルにSUM($A$1:$A$10)という式があった時、A1のセルをA3に移動させると SUMの式がSUM($A$2:$A$10)にかわってしまいます。 A1を固定するにはどのようにすれば良いのでしょうか? どなたかよろしくお願いします。 ([リスト形式および数式を拡張する] というオプションではダメでした)

  • 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)のように 自動計算にならないと思うので・・・

  • エクセルのSUM関数の使い方

    シートが4月、5月…というように1年分あるとします。 その各シートのA1に販売台数のような数字が入っています。 別の累計というシートのB1に4月:5月のように値が入っています。 そのB1に入っている値を使い期間累計のようなものを出したい。 この場合どのようにしたらエクセルで関数を記述すればよいですか? SUM関数を使っていろいろ試してみましたが、なかなかうまくいきません。。。

専門家に質問してみよう