アプリ版:「スタンプのみでお礼する」機能のリリースについて

A1→1
A2→2

B1→=SUM(A1:A2)

と入力しています。
この状態で
A3→3
と入力した場合
自動的に
B1→=SUM(A1:A3)
にすることは不可能ですか?

「=SUM(A1:A3)」のA3の部分をA列の最終行を取得したいです。
VBAなら可能でしょうか?

ご教授よろしくお願い致します。

A 回答 (7件)

初心者にわかりよいのは INDIRECT関数のようです。


=SUM(INDIRECT("A1:A"&COUNT(A:A)))

人気は無いですがお勧めは
=SUM(A1:INDEX(A:A,COUNT(A:A)))

A1セルが文字列なら
=SUM(A1:INDEX(A:A,COUNTA(A:A)))


参考まで
    • good
    • 2
この回答へのお礼

大変参考になりました。ありがとうございます。

お礼日時:2009/06/28 21:59

=SUM(OFFSET(A1,,,COUNT(A:A)))

    • good
    • 1
この回答へのお礼

できました。ありがとうございます。

お礼日時:2009/06/28 21:59

質問者の気休めに、VBAで


Sub test01()
d = Range("A65536").End(xlUp).Row
MsgBox d
Cells(d + 1, "A") = WorksheetFunction.Sum(Range("A1:A" & d))
End Sub
直ぐ下の行にA1セルから最終行までの合計を出している。
ーー
関数では、1つのやり方として
=SUM(OFFSET(A1,0,0,COUNT(A1:A100),1))
A列のA1以下に数だけのセルが有る場合のこと。
ーー
SUMPRODUCT関数では
=SUMPRODUCT((A1:A100<>"")*(A1:A100))
ーーー
配列数式では
例データ
1
2
3
4
a
d
12
の場合、字列があってもSUMの場合は
=SUM(IF(A1:A100<>"",A1:A100),0)と入れて、SHIFT+CTRL+ENTER(3つのキーを同時押し)で22と出る。
    • good
    • 0
この回答へのお礼

ありがとうございます。
できました。

「SHIFT+CTRL+ENTER」って必要なのでしょうか?
なくても22になりました。

お礼日時:2009/06/28 20:14

データが連続しているなら、次の方法もあります。

大して意味はありませんが……

=SUM(INDIRECT("A1:A"&COUNT(A:A)))
    • good
    • 1
この回答へのお礼

mshr1962さんの=SUM(OFFSET($A$1,,,COUNT($A$1:$A$100)))と同意味ですね!
ありがとうございます。参考になりました。

お礼日時:2009/06/28 19:00

範囲内で最終行まで確実に数値があるなら


=SUM(OFFSET($A$1,,,COUNT($A$1:$A$100)))

範囲内で最終行までにブランクがあるなら
=SUM(OFFSET($A$1,,,MATCH(MAX($A$1:$A$100)+1,$A$1:$A$100)))

上記の$A$1と$A$100が範囲にかかわる部分です。
範囲が変わる場合はここを替えてください。
    • good
    • 1
この回答へのお礼

ありがとうございます。参考になりました。

お礼日時:2009/06/28 18:59

1行目から最終行までの集計は回答No1の方法でできますし簡単です。

=SUM(A:A)の方法ですとA列に文字列があった場合でもそのセルは集計されませんし、数値のセルの間に空きのセルがあった場合でも集計されます。
逆にA3セルから最終セルの集計ではA1セルからA2セルまでに数値が入力されている場合にはその数値も集計されますので、次のような式になりますね。
=SUM(A:A)-SUM(A1:A2)
    • good
    • 0
この回答へのお礼

こういう使い方もできるのですね。
参考になりました。

お礼日時:2009/06/28 18:57

1行目から最終行までなら


=SUM(A:A)
が簡単です。
    • good
    • 1
この回答へのお礼

やっぱこれしかないですかね、、、
ありがとうございます。

お礼日時:2009/06/28 17:46

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A