• ベストアンサー

excel 行を追加した場合のSUM関数の変化について

excel2000を使用しています。 とあるセル、例えばC1~C5には、そのセルと同列のA、Bの和が入っているとします(例、=A1+B1)。 C6には、さらにC1からC5の合計値が入っていたとします。(=SUM(C1:C5) そこで質問ですが、 今回新たにC5とC6の間に行を一つ追加しC6がC7へシフト、=A6+B6とう計算式が入っているC6が新たに出来たとします。 その場合、C7の計算式が=SUMC1:C6と書き換わってくれません。 現状いちいち手で修正している状況です。 勝手に書き換わってくれる方法、もしくは何か良い方法はありませんでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.1

A1からC5を演算対象として使っている時に C5の下に行挿入するのですよね? 確かにこれでは範囲は拡張されないと思います 総計を取る場所を変えてよければ 対処法があります C7で総計を取らず C8より下で総計を取り SUM関数の対象に予め、空のセルを含めておきます まあ例えば C1:C5が総計対象であるのに対し =Sum(C1:C6) といった具合に です この状態でC5の下に行挿入やセル挿入をすると 対象範囲が自動で拡張されていきます ですがこれもそれと解ってないと無意味 Sumの対象範囲だからと 挿入せずにデータを入れてしまうと 元も子もありません ですのでお勧めは レポートシートを別途設けて 例えは会計ならそこに集計やら買い掛や売り掛け 違う用途だとしても そのシートさえ見れば概要から何からが ワンストップで解るようにすれば データを一々目に触れさせなくて済み 欲しい情報に素早くアクセスできるようになるので かなり見易くなると思うのですが こうすると副産物として =Sum(C1:C5000) とか =Sum(C:C) と、いった指定ができるようになります まあ2個目のは2000ではできるか怪しいのですが こうしておけば そうそう度々には 修正する必要に刈られることはなくなると思いますので 結構こっちの方がお勧めです まあ先程の 「シートを分ける」 までしないとしても 上の方に集計があると解っていれば 探そうと思うこと自体がなくなりますし 上にあれば表示域の固定でしたっけ? あれで常に表示させておくこともできるようになりますから 楽になると思いますよ 〔※ 但し注意が必要です Sum関数を始めとする幾つかの関数には データレンジに所謂指向性があり 演算対象として範囲指定しても レンジ外の部分のみ演算対象に含めない と言う癖があります ですので別シートに置く場合でもC列の集計結果は C列に 行の集計は別シートにおいても同じ行に置く必要があるはずです で、 sumprduct関数はそれを気にせずに済みます 本来の用途からは外れるようですが 特に配列数式では指向レンジを気にしてられないこともあり 多用されています

zsexdr1234
質問者

お礼

ご回答ありがとうございます! 細かいポイントまで、丁寧にご説明頂き色々参考になりました! 後半の注意書きの部分が少々分からなかったのですが… (なにぶんexcelは初心者レベルなもので…) なんとか質問内容においても、「空のセルを入れておく」方法で解決出来そうです。レポートシートの部分もあまり理解が出来なかったのですが…、今後の参考にさせて頂きます!何かデータ量が膨大になったりした場合、そちらの方がやりやすそう、というかデータが見づらくなったりして、そうせざるを得なくなりそうですが… 今やっているものはそこまでデータ量が多くはないので、空のセルを入れる方法でなんとかなりそうです! 詳しい&細かいご回答大変ありがとうございました! ちなみにsum(C:C)という表記はexcel2000では出来ませんでした… 一列合計出来てしまうみたいな、そんな優れた表記なんですかねぇ…(すばらしい)

その他の回答 (5)

  • koko88okok
  • ベストアンサー率58% (3839/6543)
回答No.6

1行目に行を挿入して、C1に =SUM(C2:C200) などと十分余裕を持った数式を入力し、本来の合計欄には、「図のリンク貼り付け」を使って、C1セルのデータを貼り付ける方法は如何でしょう? 1行目の合計欄が邪魔なら、行を非表示にします。 「コピーした内容を図として貼り付ける」 http://www.moug.net/tech/exopr/0010041.htm 「Excelのシートやセルを利用しやすいように表示する」 http://www.atmarkit.co.jp/fwin2k/win2ktips/377exlayout/exlayout.html

zsexdr1234
質問者

お礼

ご回答ありがとうございます! 今回の問題には、SUM(C2:C200)の様に余裕を持たせることが出来きなく、一行一行追加しないとならない状況だった為、今回質問をさせて頂きました。 そちらの余裕を持たすことが出来ない状況を解決をし、ご回答者様の方法を採るのもまた一つあったのですが、NO1様のご解答により、一行づつ追加し→数式が変更されそうなので、今回はそちらやってみようかなと思います。 ご回答大変参考になりました、ありがとうございます!

  • onlyrom
  • ベストアンサー率59% (228/384)
回答No.5

そのような場合はエクセルの数式拡張のオプションを設定しておきます。 (1)「ツール」メニュー > 「オプション」 (2)表示されるオプションダイアログの「編集タブ」をクリック (3)編集画面の「設定」項目の    「リスト形式および数式を拡張する」にチェックを入れる (4)ダイアログを閉じる これで質問の件はできるようになります。 但し追加した行の前の5行のうち少なくとも3行には 式が入っていなければいけませんが今回の場合は問題ないですね。 また、式が書き換えられるタイミングは 行が追加された時点ではなく(この時点では空白行のままです) 式の対象となるセル(今回は、A6,B6)に値が入力された時です。 要するに、A6,B6に値が入力された時点で C6 に =A6+B6 の式が自動セットされ C7 が =SUM(C1:C6)に自動で書き換わるということです で、上記のオプションが設定されてるにも拘わらず式が拡張されてないなら、 それは追加した行の該当セル(A6,B6)がまだ未入力の状態だと考えられます。   以上。

zsexdr1234
質問者

お礼

ご回答ありがとうございます! ご回答内容のダイアログ、チェックボックスを確認しましたが、既にチェックがされている状態でした。 今一度確認の為、行を追加後、しっかりとA6,B6に価する場所に数値を入れましたが書き換わりませんでした。 何か他に設定項目等あるのでしょうか…

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんにちは。 上位バージョンですと、リストという方法がありますが、Excel2000 ですと、それがありません。SUM関数は、トップの場所と、SUM関数の手前の行までの計算ですから、このようにすればよいです。 R1C3 絶対参照 3列目の1行目 R[-1]C 相対参照 現在の列1行手前 =SUM(INDIRECT("R1C3:R[-1]C",FALSE)) 回答者の一部には、上記の数式に、変な文句をつける人もいますから、 =SUM(OFFSET($C$1,,,ROW()-1)) こういうのもありですね。ただし、これは、1行目からということですから、それが違うなら、ROW()の現在行から、行の差を引いてくれればよいです。

zsexdr1234
質問者

お礼

ご回答ありがとうございます! 仕組みはNO2様の仕組みに非常に似ている様な気がします。 INDIRECT関数、R1C1形式など非常に勉強になります…(勉強をする場ではないのですが…) 今まで知らなかった知識ばかりで、様々のご回答者様のご回答を拝見する度に勉強させられる次第です… 今回の解決方法としてはNO2様のお礼の欄に書かせて頂いたのですが、単純なデータ表の為、今回は一番分かり易い(自分にとって)NO1様の方法で行こうかなと思っています。(現状は) 今後是非ご回答者様のご回答も参考にさせて頂こうと思っています。 ご回答ありがとうございました!

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

一例です。 5行目をコピー→その位置で右クリック→コピーしたセル行を挿入を選択で数式が拡張されると思いますが如何でしょうか。

zsexdr1234
質問者

お礼

ご返答遅くなりました。 おそらくその場合だと拡張される事はされるのですが、今回一番下段に空白のセルを挿入したいと思っていましたので… 質問内容を詳しく記載せずにすみません。 ご回答ありがとうございました。

回答No.2

色々と試したところいくつかの問題点がありますが、それを解決するためにワークシートに入力のルールを設定すれば何とかなるかと思います。 【考え方はこうです。】 ・C1は固定なので要はC列の最終データがどこにあるか検索できればよい ・空白以外のセルを数えるcounta関数があるのでこれを使う(注意1) ・しかしC列においてそれを数えると循環参照となってエラーが発生 ・それではC列以外(A列かB列)で行えばよい(注意2)  もともとC列は連続の数式なのでそうではないデータを数えるほうが結果として都合がよい *注意項目 (注意1) 空白は無効として数えないので空白のデータを作らずに、"0" や "-" を必ず入力する (注意2) 全行 "C1=A1+B1" のように対応させるセルを揃える 上記の注意が実行可能なら =SUM(OFFSET(C1,0,0,COUNTA(A:A))) で大丈夫だと思います。 蛇足ですがエクセルの新しいバージョンでは自動で修正がきくみたいな感じです。

zsexdr1234
質問者

お礼

ご回答ありがとうございます! NO.1の方から順にご回答を拝見させて頂いておりますが、この問題もNO.1様の回答で無事解決出来そうだなと考えていましたが、 ご回答者様の回答を拝見し、excelって色々なやり方があるんだな~としみじみ実感致しました。 OFFSET関数初めて知りました…これからかなりいい仕事しそうな関数です… 現在やっている事は、ただ単純に行の挿入→データの集計のみなので、現状はNO.1様のご回答で何とかなるかな?と思っている状況です。 また合計対象範囲を臨機応変に変えたり、精密なデータ表を作る場合、このやり方が重宝するかと思いますので、その際参考にさせて頂きます! ご回答ありがとうございました!

関連するQ&A

  • SUM関数を教えてください

    エクセル画面です      A     B     C 1    氏名  点数 2    H氏   10 3    A氏   20 4    S氏   30 5    T氏   40 6    Z氏   50 7    D氏   60 8    合計      S氏を基準としてS氏が(A4)の位置にある場合の合計を出すときの計算式は   B8=SUM(B4:B7)  となります S氏が(A5)の位置に来た場合   B8=SUM(B5:B7)  となります S氏のセルの位置が上下に移動するので SUM関数で範囲を自働的に変動させて計算させる方法を 教えてください よろしくお願いいたします。

  • SUM関数を教えてください

    エクセル画面です      A     B     C 1 2    H氏   10 3    A氏   20 4    S氏   30 5    H氏   40 6    Z氏   50 7     S氏を基準としてS氏が(A4)の位置にある場合の合計を出すときの計算式は   =SUM(B2:B3)  となります S氏が(A5)の位置に来た場合   =SUM(B2:B4)  となります S氏のセルの位置が上下に移動するので SUM関数の範囲を自働的に変動させて計算させる方法を 教えてください よろしくお願いいたします。

  • EXCELの関数:SUMについて

    WINDOWS XP で EXCEL2002 を使っています。   A B C 1 1 2 2 3 3 4 4 5 5 6 6 7 =SUM(A1:A3) 8 =SUM(A4:A6) 上記のように数式を入力していますが、データを1行目から6行目まで 順に入力をしていくと3行目まで入力した状態では7行目の数式は SUM(A1:A3)で答えも6となっています。ところが4行目に4を入力すると数式はSUM(A1:A4)で答えも10となります。次の行も入力すると 数式はSUM(A1:A5)となります。 どうすれば、数式を変化させないようにできますか? また、なぜ、このようになるのか、詳しい方、お教え下さい。

  • エクセルで追加しても下から数行だけSUMするには?

    エクセルで下から数行だけSUMするには? 次のようなデータを毎日更新しています。直近の平均を求めているのですが 数式はどうすればよいでしょうか。 A      B     C 8月8日   10     5 8月9日   20     10 8月10日  10      30 8月11日   30     20 ~~~ 8月30日   10     30 5日間平均  ??    ?? 10日間平均  ??    ?? 5日平均の場合例えば8月30日までのデータだとすると8月30日のB行C行 から5日上までの分をSUM(C25:C31)とかしてやりますが、当方データを その下にどんどん足していく(9月1日のデータは8月30日の下に入れてやる)ので、そのままにするとSUM(C25-C32)になって5日平均なのに6日平均になってしまいます。これを毎回修正しないでいい簡単な方法を教えて下さい。

  • ExcelでのSUM関数について

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

  • エクセル 空白行にSUM関数を入力するには

    下記の様な、データ行数の決まっていない各空白行に自動でSUM関数を入力するにはどうすれば良いでしょうか。        A列   B列   C列 1行     123    酒    100 2行     123    酒    100 3行(空白)            (SUM)   4行     215   ビール   200 5行     215   ビール   200 6行     215   ビール   200 7行(空白)            (SUM) 8行     324    ワイン  300 9行     324    ワイン  300 10行     324    ワイン  300 11行     324    ワイン  300 12行(空白)           (SUM) (SUM)表記のセルにそれぞれのデータのSUM関数を自動で入れたいのですが。 実際のデータは3千行ほどあります。よろしくお願いいたします。

  • エクセル関数 離れた行の和の合計

    エクセル関数において質問です。 違う各行の合計の累計を出す関数はあるでしょうか? 具体例) A1、B1、C1 に 1、10、20 A3、B3、C3 に 5、6、7 各行の和は、6、16、27 累計は、6+16+27=49 通常なら、以下のように他のセル A4、B4、C4へ A1+A3、B1+B3、C1+C3 の式を入れ さらに他のセルへ SUM(A4:C4)とし、49を導き出していますが、 これを、一挙に出す関数は作れるでしょうか? どなたかご教示いただければ助かります。

  • エクセルの関数なんですが

    エクセルの関数なんですが 一つの場所にSUM合計を入れる方法なんですが。 A1に1 B1に1 C1に2 D1に3 A2に2 B2に2 C2に0 D2に2 A3に3 B3に0 C3に0 D3に5 の時 一行目(A1~D1)が1の時 その行の合計(SUM)をE1に出す方法 合計は7になるのですが

  • エクセルのSUM関数の計算結果

    例えば セルA1、B1 セルC1、D1 セルE1、F1 セルG1、H1 が結合されている表があって =SUM(A1:H1) の計算結果と =SUM(A1,C1,E1,G1) の計算結果が 異なることはあるのでしょうか? 実際は各セルにもそれぞれ乗算・除算等の数式が入っているものですが、結果が100違いました。 正しいのは、電卓をたたいた結果 =SUM(A1,C1,E1,G1) の方でした。 原因がどうしてもわかりませんので、どなたか、一般的な話でいいので、教えてください。

  • エクセルSUMの計算を効率的に行う

    いろいろ自分で考えてみたのですが、やはり思いつかなくて、こちらに質問させていただきました。 添付のような表があるとします。 A,B,C、、、社とあり、それぞれに果物の名前が入っており、数が記載されています。 一番右の列にある数量は、A,B,C社それぞれのくだものの数の合計です。 この一番右の列のようなSUMの計算を自動的に行う関数を考えています。 いつも固定のセルのSUMでは簡単ですが、今回の場合、A社いくつ、B社いくつ、という果物の数は決まっておりません。つまり、合計すべきセルの数は変化する、ということです。 なので、考えたのは、一番左の列にA、B、C社と記載するので、その記載が出てくる前の行までを合計させるようにするしかないか、、など、案はあったのですが、実際にエクセル関数が思いつきません。 もしいい案がありましたら何卒お願いいたします。

専門家に質問してみよう