• ベストアンサー

EXCEL行挿入・行削除しても正しく集計する方法

例えばSUM関数で、1~10行目までが明細行で、11行目に合計行がある場合、明細の途中で1行挿入しても、自動的に集計範囲が変わってくれますが、最終明細行の下に行挿入した場合、集計範囲が変わってくれません。  (1)SUM(C1:C10) → 明細途中に1行挿入 → SUM(C1:C11)  (2)SUM(C1:C10) → 明細最後に1行挿入 → SUM(C1:C10) (2)の場合でも、全明細行集計するようにする方法(関数)があれば教えてください。(Office365使用) よろしくお願いします。

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

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.4

>(2)の場合でも、全明細行集計するようにする方法(関数)があれば教えてください。(Office365使用) SUM関数の範囲をOFFSET関数で指定すれば良いと思います。 =SUM(OFFSET(C1,0,0,ROW()-1)) OFFSET関数の第4引数は高さを指定しますのでセルの挿入/削除を行ってもSUM関数が設定された直上のセルまで集計できます。 Excelの全てのバージョンで応用可能と思います。

satoshi5050
質問者

お礼

ご回答ありがとうございます。 このような場面でOFFSET関数が使えるんですね。 本当にありがとうございました。

その他の回答 (4)

回答No.5

=SUM(C1:OFFSET(C11,-1,0)) でいいと思います。 尚 >11行目に合計行がある んだから、 >最終明細行(10行)の下に行挿入 の表現は正しいとも思います。 (私は)

satoshi5050
質問者

お礼

そう言って頂けると助かります。 ありがとうございました。

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

こんなやり方もある、ということで。 「テーブル化」の活用です。他にもメリットがあります。 ーー 説明例として、A列に、A1:A6に データ 1 2 3 4 5 とあるとします。A1の「データ}は項目見出しです。 ーー 「テーブル化」(一般の意味ではなく、エクセルの術語としての意味)します。 ・[ホーム]、[テーブルとして書式設定] の順に選択します。 ・テーブルのスタイルを選択します。 ・[テーブルとして書式設定] ダイアログ ボックスで、セル範囲を設定します。 A7に 合計を求めるため =SUM(A2:A6)をいれます。 A7を選択しておいて右クリック。 ・挿入 ・テーブルの行(上) 式は =SUM(A2:A7)に変化(自動で範囲拡張)します。 A7に数値を(例7)と入れると、A8は、22になります。 ーーー 頻繁に、色んな行で、行挿入があるときは、テーブル化しておくと良いようです。もちろん、途中行での行挿入は(上行に追加されることを念頭に行うと)問題(数式の範囲が拡がる)ありません。

  • msMike
  • ベストアンサー率20% (363/1775)
回答No.2

》 最終明細行の下に行挿入した場合 それ、「挿入」ではありません。「追加」ですよ。

satoshi5050
質問者

お礼

ご指摘ありがとうございます。 厳密にはそうかもしれませんね。 大変失礼しました。

  • maiko04
  • ベストアンサー率17% (345/1956)
回答No.1

1から10行目まで合計するなら11行目を空白にして 11行目まで合計しましょう。 追加が出たら10行目と11行目の間に入れればきちんと合計できます。

satoshi5050
質問者

お礼

なるほど、そういう方法もありますね。 ありがとうございました。

関連するQ&A

  • ExcelのSUM関数の集計範囲を可変にしたい

    ExcelのSUM関数の集計範囲を可変にしたい 1.状況、問題点 商品毎の売上、利益を管理するリスト表が あり、その表の行に対する追加、更新処理を VBAマクロで行っています。 使用環境はExcel2010 リスト表は、帳票としての見易さを考慮して、 同じカテゴリに属する複数の行に対して小計行 を設けカテゴリ別の売上、利益を集計しています カテゴリに属する行範囲に対してSUM関数を使っ ているということです (例1)この表にマクロで行を追加させる際、 あるカテゴリの小計欄で参照している集計 範囲の行の途中に行を挿入する場合は、行 を追加してもSUM関数の集計範囲は自動的に 拡大されます。   A  B    C   1 項目   売上    2  田中   100 3 小計   100   4 山田 200 ⇒ 挿入   5  佐藤 300   6  小計   600 式 = SUM(C4:C5) 3行目と4行面の間に行を挿入するとき  SUM関数の集計範囲は自動的に拡大され る  SUM(C2:C4) ⇒ SUM(C2:C5) (例2)挿入する行が集計行の直ぐ上の場合 SUM関数の集計対象範囲がずれてしまう   A   B    C   1 項目  売上   2  田中  100 3 小計  100   4 山田 200   5  佐藤 300 ⇒ 挿入    6  小計 600 ※      ※ 式 SUM(C4:C5) は   自動的にはSUMC(C4:C6)とはならない 2.実現したいこと       小計の直前にに行を挿入した場合も自動的に   集計範囲が変わるようにしたいのです。 実装方法 案1 (1)インストラクタのネタ帳  http://www.relief.jp/itnote/archives/003417.php  に、「表全体の最後の行」※に集計行がある場合として 「合計範囲を自動的に変更する」方法の紹介あり。  この方法はCOUNTA()で入力済みのセルをカウント。   私のケースでは  ・売上、利益などのセルが空白となる場合がある  ・C列は 売上 データを記載する列で   なので半角スペースや全角スペース は入らない  ・#REFやDIV/!0などは入りうる   C4:C5 のセル数は DIV/0!なども含めデータが入っているセル数  +ブランクが入っているセル数 は  COUNTA(C4:C5) + COUNTBlank(C4:C5) なので セル C5  =SUM(C2:INDEX(C4:C5, COUNTA(C4:C5)+COUNTBlank(C4:C5))   とするか?     ※「インストラクタのネタ帳」の方法は、「表全体の行数」を  もとめる場合に最後の行までを指定できて有効ですが、上の  ように小計をもとめる場合は、どうしても小計をもとめる範囲  式に書く必要があり、そこが集計範囲が変わってしまうと役に  立たないです。  代案としては、6行目の小計の行番号から3行目の小計の行番号  を引いて行数を求める方法でしょうか    この方法の場合、小計の式に 6行目行番号-3行目行番号  のように具体的に記述してはNGなので "下"の小計行から"上"  の小計行を引く というような間接的な指定の仕方が必要と  考えています。案1の検討はここまでです。 実装方法 案2  上のように表自体の集計関数を変える以外に、  マクロで対応する方法  行を追加する際に、 a)行の追加がある場合、行の挿入位置が小計   の集計範囲の”途中”なら 何もしない、  b)追加する行が集計行のすぐ上になる場合 つまり変更前の挿入位置+1   が小計行の行番号と等しい時は、追加する行数分   SUM関数の集計範囲を広げる     案1が難しそうなので案2で実装しようと思っています  Q1 案1と案2の検討結果についてお気づきの点があれあば教えて     ください  Q2 可能であれば、案2の実装方法についてヒント程度でもいいので     教えてください  以上

  • EXCELで途中の集計行を除いて集計したい。

    EXCEL2002で合計を出したいのですが、途中に「合計」とか「中計」などの集計行があり、最初から最後までSUM関数を使うとその分だけ重複してしまいます。途中の計算式が入っているセルを除いて集計するには、どうしたらよいでしょうか?A列に項目(例えば、事務用品、コピー用紙、小計、固定電話料、携帯電話料、通信費計・・・)、B列に数値または計算式を入力しています。

  • エクセルの1行おきの集計

    エクセルで1行おきの集計をしています。   A 1 1 2 2 3 1 4 2 5 関数A(A1とA3の合計)(合計2) 6 関数B(A2とA4の合計)(合計4) 関数A SUM(IF(MOD(ROW(A$1:A$4),2)=1,A$1:A$4,0)) 関数B ???????????????????? 関数Aはうまくいっているのですが、 関数Bの設定がよくわかりません。。。 設定方法を教えて下さい。

  • エクセル 集計行をデータの次の行に表示させたい。空白セルを削除したい。

    基準となるグループの最後のグループの集計行はなぜか、選択範囲の下に表示されます。 例えば  1行目  会社 サービス 単価  回数  合計金額  2行目   A    1   100   2    200  3行目   A    2   150   3    450  4行目   B    4   1000   4    4000  5行目   C    3   500   10   5000     以下空白   :   :   :    :  (20行目)   ここまで空白 以上のような任意の表(1行目から20行目までデータが入力されています。上記のような3社で4行で終わる場合もあれば、5社で10行という場合もあります)で会社ごとの合計金額を集計したい時に、(1行~20行を選択し、グループの基準:会社 集計の方法:合計 集計するフィールド:合計金額 集計行をデータの下に挿入という設定)  1行目  会社 サービス 単価  回数  合計金額  2行目   A    1   100   2    200  3行目   A    2   150   3    450  4行目     A集計            650  5行目   B    4   1000   4    4000  6行目     B集計            4000  7行目   C    3   500   10   5000      以下空白   :   :   :    :  23行目     C集計            5000  24行目     総計             9650 となってしまいます。上記の参考データならば 8行目から22行目までが無駄に空白ができてしまいます。 これを、8行目にC集計を表示させることはできるのでしょうか? 集計後の表をコピーして他シートに貼り付けるマクロを組んでいます。 データによっては、1つの会社の集計が表示されません。宜しくお願いいたします。上記を満たすマクロでも結構です。

  • エクセルマクロ、集計行の上に空白行挿入

    エクセルデータがA、B、C、D、E列1000行まであります。 C列基準でE列を合計するマクロを作成しましたが(集計行はデータの下に挿入)、実行の結果、新たに挿入される集計行の上に空白行を1行挿入していくということを、作成したマクロに付加できるでしょうか? ご教授頂きたく、お願いします。

  • エクセル2003 集計機能について

    エクセルの機能で集計機能を使用しているのですが、(データ→集計)集計結果が上手く表示されなくなってしまいました。 一番最終行は総計となり、SUBTOTAL関数で合計を表記しますが、その総計の値が本来求めたい値の2倍の数値になっており、SUM関数で求めた値と同じになっているのです。本来SUBTOTAL関数が入っていれば、合計値は省き計算をしてくれると思うのですが。。。 今までは、上手く計算されていたのですが。。。 原因を教えて頂ければと思います。よろしくお願い申し上げます。

  • エクセルでデータの最後の行に行挿入後の合計されない

    エクセルで文字・数値データを作成しております。その最後の行に合計(SUMとSUMIFを使用)を出す表があります。 データの最後の行(合計の前)に行を挿入しデータ数値を入力すると、SUM(SUMIF)の合計が、前にあったデータまでしか、合計されません。 単純な計算では、行を挿入しても合計されるのに、ナゼ今回は出来ないのでしょうか?原因が分かる方は、いらっしゃいませんでしょうか? 宜しくお願い申し上げます。

  • エクセル 行を挿入しても正しい合計値を出す方法。

    添付のようなエクセルの表を作成して管理台帳としています。 (実データは載せられないため、簡易版にしています。) 今、B9セルには(=SUM(B3:B8)が入っています。 8行目と9行目の間に行を挿入しても、合計値がきちんと(=SUM(B3:B9)の値を持ってくるようにしたいです。 過去の質問 http://okwave.jp/qa/q4644868.html 参考にして、『あ』ではできたのですが、『い』、『う』、『え』、『お』でも同様に合計値を出したいのです。 『あ』で行を挿入すると、『い』、『う』、『え』、『お』の各項目の行がずれて、 さらに『い』、『う』、『え』、『お』でも行の挿入を行います。 (挿入する行は、『あ』、『い』、『う』、『え』、『お』すべて合計値の前の行に挿入します。) きちんと、『あ』、『い』、『う』、『え』、『お』の各合計値を出す方法はありますでしょうか。 私が使っているのはエクセル2007ですが、エクセル2000を使っている人に渡すデータです。

  • エクセルで行を追加した時に計算式が変更されない

    パソを入れ替えてオフィスの2010になってから操作方法にちょっと戸惑っています。 エクセル2010で、行を追加した時等に計算式が自動で変更されません。 例えば、sum関数で、A1~A10までの合計を計算してあったものに、行を挿入しても計算対象が自動で変わらずそのままです。 sum(a1:a10)に2行追加するとsum(a1:a12)になってくれないと間違いを起こしてしまいます。 どこか設定を変える必要があるのでしょうがどこかわかりません。教えてください。 (再計算は自動にしてあるんですが…)

  • SUM関数、行挿入時に自動更新する?しない?

    excel2007を使用しています。 今、例えばA1からA10に数値が入っているとして、11行目に合計をとりたいときは、A11にsum関数でsum(A1:A10)と入力しますよね。 このとき、10行目と11行目の間に行挿入して明細が1個増えたとします。合計を入れた数式は1行下の12行目に移動し11行目に任意の数値を入力します。すると、sum関数はsum(A1:A11)に自動更新されますか?それとも、sum(A1:A10)のままですか? 実はこれについて、自動更新するときとしないときとがあるようなのですが、どういうときに自動更新されて、どういうときに自動更新されないのかがわからず困っております。 色々試しているのですが、データがA1からA10まで連続的に入っているときは更新されます。ところが、A1,A4,A10などととびとびで入っているときは更新されません。しかし、とびとびでも、A1からA6とA9,A10に数値を入力したときは更新されました。また、A2,A4,A6,A8と規則的に1ぎょうおきにに入っているときも更新されました。 他にもいろいろと試してみましたが、どんなときに自動更新され、どんなときに自動更新されないのか、規則性が見えてきません。。。 どなたかおわかりになる方がいらしたら、教えていただければと思います。 よろしくお願い致します。

専門家に質問してみよう