• ベストアンサー

EXCELで最終行の合計を出す方法

よろしくお願いします。 図の黄色のセルは1月の合計が入力されています。 2月以降のデータを増やすと 黄色のセルに自動的に最終行の合計が表示されるように するにはどうすればいいでしょうか? できるだけ簡単な関数で表示できれば ありがたいです。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.5

>「B1:D1」の部分が「B1とD1とF1」の合計を出したい場合です。 何でもかんでも出来るわけじゃありませんが、たまたま今回は1行おきという規則正しい場合なので、かろうじて手はあります。 例: =SUMPRODUCT((MOD(COLUMN(B1:F1),2)=0)*OFFSET(B1:F1,COUNT(B:B),0)) 別の方法: 1行目に「合計したい列の目印」が計算で判定できる場合、SUMIF関数を使って計算する手もあります。 この方法では、「目印が付いた列」は別に規則的に配置されている必要はありません。 例: 1行目に「~~計」と記入してある列の最終行(~~の部分は何でもよい) =SUMIF(B1:F1,"*計",OFFSET(B1:F1,COUNT(B:B),0))

may0501
質問者

お礼

keithinさん 何度も回答して頂きありがとうございます。 いろんなことができるんですね。 感動しています。 使わせて頂きます。 ありがとうございました。

その他の回答 (5)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.6

後からまた難題を出されるかもしれませんがA列からF列までが対象の範囲であるとして、また、各列では必ずしもデータがすべてのセルに入力されているわけではなく途中に空白のセルもあったりした場合でも、最終、最新のデータの行を対象に列の集計を行うとしたら単純な式で処理できるわけではありません。複雑になります。 最終の行でのB列からF列までの集計は次の式になりますね。 =SUM(INDEX(B:B,MAX(IF(COUNT(B:B),MATCH(10^10,B:B),),IF(COUNT(C:C),MATCH(10^10,C:C),0),IF(COUNT(D:D),MATCH(10^10,D:D),0),IF(COUNT(E:E),MATCH(10^10,E:E),0),IF(COUNT(F:F),MATCH(10^10,F:F),0))):INDEX(F:F,MAX(IF(COUNT(B:B),MATCH(10^10,B:B),),IF(COUNT(C:C),MATCH(10^10,C:C),0),IF(COUNT(D:D),MATCH(10^10,D:D),0),IF(COUNT(E:E),MATCH(10^10,E:E),0),IF(COUNT(F:F),MATCH(10^10,F:F),0)))) 勿論上の式ではE列やF列にデータが入力されていない場合でも計算します。 B列、D列およびF列についてだけ集計したいのでしたら次の式となります。 =SUM(INDEX(B:B,MAX(IF(COUNT(B:B),MATCH(10^10,B:B),),IF(COUNT(C:C),MATCH(10^10,C:C),0),IF(COUNT(D:D),MATCH(10^10,D:D),0),IF(COUNT(E:E),MATCH(10^10,E:E),0),IF(COUNT(F:F),MATCH(10^10,F:F),0))),INDEX(D:D,MAX(IF(COUNT(B:B),MATCH(10^10,B:B),),IF(COUNT(C:C),MATCH(10^10,C:C),0),IF(COUNT(D:D),MATCH(10^10,D:D),0),IF(COUNT(E:E),MATCH(10^10,E:E),0),IF(COUNT(F:F),MATCH(10^10,F:F),0))),INDEX(F:F,MAX(IF(COUNT(B:B),MATCH(10^10,B:B),),IF(COUNT(C:C),MATCH(10^10,C:C),0),IF(COUNT(D:D),MATCH(10^10,D:D),0),IF(COUNT(E:E),MATCH(10^10,E:E),0),IF(COUNT(F:F),MATCH(10^10,F:F),0))))

may0501
質問者

お礼

KURUMITOさん 丁寧なご説明ありがとうございました。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

こんばんは! 横からお邪魔します。 >「B1とD1とF1」の合計を出したい場合です とありますので・・・ 一例です。 ※ お示しの画像のB列には途中に空白セルがないとして、 B列データが入っている最終行とします。 =SUM(IF(MOD(COLUMN(B1:F1),2)=0,OFFSET(B1:F1,COUNT(B:B),,1))) これは配列数式になってしまいますので、Shift+Ctrl+Enterで確定してください。 この画面からコピー&ペーストする場合は表示したいセルに貼り付け後 数式バー内で一度クリックします。 編集可能になりますので、Shift+Ctrlキーを押しながらEnterキーで確定! 数式の前後に{ }マークが入り配列数式になります。 お役に立ちますかね?m(_ _)m

may0501
質問者

お礼

tom04さん 回答ありがとうございます。 丁寧なご説明で よくわかりました。 コピペしたら私でも使えそうです。 ありがとうございました。

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.3

>できるだけ簡単な関数で表示できれば では簡単のため,各列ともに先頭の4月行から所定の行(たとえば1月)まで「漏れなく数字が埋まっている」とします。 数式は =SUM(OFFSET(B1:D1,COUNT(B:B),0)) のように計算する事ができます。 たとえばB列は1月迄埋まっているけどC列は12月迄しか数字が入っていない(最下行がどこなのか1列ずつ調べなきゃ判らない)みたいなイレギュラーを考え出すと,当然ですが遙かにメンドクサイ事をやるハメになります。 E列に各行毎の小計を出させておいて,その一番下にある数字を拾ってくるみたいな方法がお薦めになります。 E2: =IF(COUNT(B2:D2),SUM(B2:D2),"") 以下コピー 計算式: =LOOKUP(MAX(E:E)+1,E:E)

may0501
質問者

お礼

keithinさん 何度も回答ありがとうございました。

may0501
質問者

補足

keithinさん 早速の回答ありがとうございます。 この場合はB列~D列が続いていますが もしBC列の間、CD列の間に他のデータが入っている場合は どうなるのでしょうか? =SUM(OFFSET(B1:D1,COUNT(B:B),0)) の「B1:D1」の部分が「B1とD1とF1」の合計を出したい場合です。 自分で考えてみましたが わかりません・・・

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

 ANo.1です。  申し訳御座いません、勘違いをしておりました。  先程の関数は間違いで、正しくは、 =SUM(INDEX($B:$B,MATCH(E9+307,$B:$B)):INDEX($D:$D,MATCH(E9+307,$B:$B))) 等として下さい。(どの列も最終行は必ず同じ行となる場合)

may0501
質問者

お礼

kagakusukiさん 何度も回答ありがとうございました。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.1

=SUM($B:$D) でOKです。

may0501
質問者

お礼

kagakusukiさん 回答ありがとうございました。

関連するQ&A

  • EXCELでデータが入っている最終行までの合計

    現在、EXCEL2000で各月の全得意先の合計を求める式を作っています。 データは現在B列に得意先コード・C列に得意先名D列以降はVLOOKUP関数で別シートから求めた各月の得意先の売上金額を求めています。 D6セル:VLOOKUP(B6,'5月'!$B$6:$J$1500,9,0) 例えば、現在D6からD1149までにデータが入っており、別シートの得意先元リストの件数が増えれば、自動的に下の行にスライドするようになっています。その為、数行余分に予め関数を入れた空欄の行を作っています。 B6セル:OFFSET(元リスト!$B$6,ROW()-6,COLUMN()-2) 現在D1158にD6からデータの入っている最終行まで合計を関数で表示させたいのですがうまくいきません。ネットでも色々探しているのですが、私の検索の仕方が悪いのか中々見つかりません。 LOOKUP関数となにかを組み合わせて、得意先コード(B列)の空白になっている時、その一つ上のD列の行を参照できるようにできればいいんじゃないかとは思うのですが。 もし、いい方法があればご教示願います。

  • 最終行から2つ上の行までの合計

    データが入力されている最終行から2つ上の行までの合計値を計算する関数をご教示いただけるでしょうか(例の場合だと、A3~A5の合計で17)。

  • Excelの最終行の値を合計セルに自動的に入力したい

    A列にA2からA10まで数値が入力されています。 A1  1 A2  5 ・ ・ ・ A10 10   こんな感じです。 A12に合計欄用のセルがあり、そこにA列の最終セルに入力されている数値データを転記したいのですが、いつもA10までデータがあるとは限らず、時によってはA5までしかデータが入っていないこともあります。このような時も最終の同一列のデータをA12に自動で転記できるようにしたいのです。 関数、その他No148455の回答を参考にいろいろやってみたのですが、「転記」するようにはできませんでした。どなたかお知恵をお貸しください!! よろしくお願いします。 

  • エクセルで結合セルがあるため最終行が解りません。

    エクセルで結合セルがあるため最終行が解りません。 A列2行目と3行目が結合セル(見出し)のためA列の最終行(罫線を除きデータが入ってる行)を求めれなくて困ってます。データは4行目以降から入力していく予定ですが Range("A" & Rows.Count).End(xlUp).Row は2となるため+1で入力行を求めてると3となってしまいます。A4からAの最後の行の範囲で罫線を除く最終行を出せればよいのですが  最初は4 以下順次5 6 7 ‥ どなたかご教示頂けないでしょうか?

  • Excel:決まったセルから常にあるセルの最終行の引き算

    添付画像のA7~E7列に数値を入力していき、F列にB~Eの合計がSUM関数により表示されます。 必要に応じ、8行目以降にデータは累積していきます。 D4セルにC4からF列の常に最終行の引き算の数式を入れたいと思っています。 イメージは D4=C4-(F列の最終行)というものですが、具体的にどういう数式をD4セルに当てはめればよいでしょうか? 御教示宜しくお願い致します。

  • エクセルで表示行の値だけの合計を求めるには?

    たとえばSUM関数を使うと、指定したセル範囲の中に非表示の行があった場合、その行の値も合計に含まれますが、それを含まない合計(非表示の行を無視する合計)を求めるにはどうしたらよいですか。 よろしくお願いします。

  • Excelで最終行に決まった文字を入れる方法

    例えば、Excelで売掛表、請求書や受注書などを作成した場合、 最後に入力した金額の下に「以上」「以下余白」などの 文字を入れる方法はあるでしょうか? いつも同じ行になるとは限らないので、最終行の後の最初の余白行に 入れたいのですが方法がわかりません。 (合計欄は自動計算)   日付 項目     増   減   合計 1 6/1  A商品    300       300        2 6/2  B商品(返品)    100   200 3 6/5  D商品    1,000      1,200 :           :           : 6                      2,500                       以下余白 この場合6行目を入力で終了なのでそのすぐ下の行7行目に 「以下余白」(又は「以上」)のような言葉が入るようにしたいのですが。。 (4行で入力が終われば5行目の合計欄下に入るようにしたい) 関数は多少わかりますが、マクロとかはわからないのでできるだけ 簡単な方法があったらよろしくお願いします。

  • エクセルで下の行から合計とかを求めたいです。

     ほぼ毎日最終行の所にA列に日付 B/C/D/列に数値を加えているという作業を繰り返しています。従って下の方が最近入力した値になっている状態です。 私がしたいのはこの最近入力した(最終行)行から5行上までの各列の合計や平均値をそれぞれ1番上の方に自動で表示したいのですがいろいろと調べても分かりません。(行を追加するたび範囲を指定し直すというのがつらいです。) このような事はエクセル2003で可能でしょうか?  調べた中では最終行を取得するとか最終行の値を表示するというのは見つけれたのですがここ何日も悩んで解決できません。  よろしくお願いします。

  • Excelの最終行を取得

    ワークブックモジュールにこんなVBAを追加しました。 '入力行のセルをアクティブにする Private Sub Workbook_Open() Dim 入力行 As Long 入力行 = Worksheets(1).Range("A3"). _ CurrentRegion.Rows.Count + 1 Worksheets(1).Cells(入力行, 2).Select End Sub これは問題なく実行されました。 しかし、以前にこのような関数をA500まで設定していたので空白の行をアクティブにしてしまいました。 =IF(OR($B487<>"",$C487<>"",$D487<>"",$E487<>"",$F487<>""),ROW()-2,"") 関数を消すと実際の最終行を取得することはできたのですが、行番号の関数は追加されませんでした。 テーブルの大きさに合わせて自動で関数を追加するというようなことはできるのでしょうか?また更にいい方法があれば教えてください。

  • Excel で 複数条件の合計を出したい。。。

    どなたかご存知の方がいたら教えてください!!!(汗) 下記のようなデータがあります。 列は時系列でデータがどんどん増えていきます。 例)A列=1月  1行目=Xの時系列データ   B列=2月  2行目=Yの時系列データ   C列=3月  3行目=Xの時系列データ    ・      4行目=Zの時系列データ    ・   A列のXのデータの合計をしたい場合は、SUMIF関数を 使えばよいと思うのですが・・・ あるセルに○月と入力するとそのセルの日付を参照して、 その月のX条件だけを満たす合計を出す場合にはどのような関数を使えばよいのでしょうか? もしくは、どのように関数を組合せばよいのでしょうか? なかなかうまく説明できなかったのですが、 よろしくお願いします!!!

専門家に質問してみよう