電子書籍の厳選無料作品が豊富!

よろしくお願いします。

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

「EXCELで最終行の合計を出す方法」の質問画像

A 回答 (6件)

>「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))
    • good
    • 0
この回答へのお礼

keithinさん

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

お礼日時:2012/09/11 20:42

後からまた難題を出されるかもしれませんが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))))
    • good
    • 0
この回答へのお礼

KURUMITOさん

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

お礼日時:2012/09/11 20:53

こんばんは!


横からお邪魔します。

>「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
    • good
    • 0
この回答へのお礼

tom04さん

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

お礼日時:2012/09/11 20:45

>できるだけ簡単な関数で表示できれば



では簡単のため,各列ともに先頭の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)

この回答への補足

keithinさん

早速の回答ありがとうございます。
この場合はB列~D列が続いていますが
もしBC列の間、CD列の間に他のデータが入っている場合は
どうなるのでしょうか?

=SUM(OFFSET(B1:D1,COUNT(B:B),0))

の「B1:D1」の部分が「B1とD1とF1」の合計を出したい場合です。
自分で考えてみましたが
わかりません・・・

補足日時:2012/09/10 19:53
    • good
    • 0
この回答へのお礼

keithinさん

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

お礼日時:2012/09/11 20:51

 ANo.1です。


 申し訳御座いません、勘違いをしておりました。
 先程の関数は間違いで、正しくは、

=SUM(INDEX($B:$B,MATCH(E9+307,$B:$B)):INDEX($D:$D,MATCH(E9+307,$B:$B)))

等として下さい。(どの列も最終行は必ず同じ行となる場合)
    • good
    • 0
この回答へのお礼

kagakusukiさん

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

お礼日時:2012/09/11 20:50

=SUM($B:$D)



でOKです。
    • good
    • 0
この回答へのお礼

kagakusukiさん

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

お礼日時:2012/09/11 20:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!