- ベストアンサー
エクセル 特定のセルの合計値を出す方法
たとえば、A3~A20まで数値データ(1)が入っているとします。次の行のA21は空白、A22~A30はデータ(2)が入っています。 1日にA3~5、2日にA6…と、順々にデータを入れていくのですが、常に入力したところまでの合計がほしいです。 が、データの最後がA列のどこになるかはその時によって違うので、SUM関数で指定できません (=SUM(A3:A20)のA20がA19になるかA22になるかわからないので、データがすべて入れ終わるまで範囲指定ができないのです) また、データ(1)がすべて入れ終わってから、一行空けてデータ(2)を入れ始めます。 データ(1)と(2)の間には必ず1行空白を入れるので、A3から次の空白のセルまでの合計を出そうとしたのですが、どうやっても出来ません。 この場合、自動的にA1にデータ(1)の合計値を出すにはどうしたらいいでしょうか? また、データ(2)の合計値をA2に出すことは出来るでしょうか? ややこしい質問で申し訳ありませんが、ご教授ください。
- rollingcat
- お礼率84% (58/69)
- オフィス系ソフト
- 回答数4
- ありがとう数1
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
範囲が動的に変化するので、VBAでユーザー定義関数を作るしかないと思います。 [ツール]→[マクロ]→[Visual Basic Editor]を開き、対象のワークシートで右クリックして[挿入]→[標準モジュール]を作ります。 そこに、関数を記述します。 こんな感じです。 Function VariableSum() As Double Dim Row As Integer Application.Volatile VariableSum = 0 Row = 3 While Cells(Row, 1) <> "" VariableSum = VariableSum + Cells(Row, 1) Row = Row + 1 Wend End Function Function VariableSum2() As Double Dim Row As Integer Application.Volatile VariableSum2 = 0 Row = 3 While Cells(Row, 1) <> "" Row = Row + 1 Wend Row = Row + 1 While Cells(Row, 1) <> "" VariableSum2 = VariableSum2 + Cells(Row, 1) Row = Row + 1 Wend End Function あとは、 A1セル =VariableSum() A2セル =VariableSum2() ただ、データの構造を単純化すれば、わざわざユーザー定義関数を作らなくてもよくなるような気もするので、再考したほうが今後のことを考えるといいように思います。
その他の回答 (3)
- shinkami
- ベストアンサー率43% (179/411)
合計行の上に空白行を一つ設けて、空白行までSUMします。データを入力するとき空白行で行挿入すると自動的に計算式が変わります。 A3:データ1 A4:データ2 A5:データ3 A6:空白 A7:=SUM(A3:A6) A8:次のグループのデータ 2日目に5件のデータがあるとします 6行目の行No.6から10行目までドラッグして、 挿入メニューから行を選びます。 (アクティブになった行No.で右クリック→挿入→行でもよい) これでA12は=SUM(A3:A11)となり、次のグループの集計式のセルも正しい計算式になります。
- maron--5
- ベストアンサー率36% (321/877)
A 1 6 2 18 3 1 4 2 5 3 6 7 5 8 6 9 7 ◆A1:A3から空白のセルまでの合計 A1=SUM(OFFSET(A3,,,MATCH(1,INDEX(1/(A3:A100=""),),0))) または、 A1=SUM(A3:INDEX(A3:A100,MATCH(1,INDEX(1/(A3:A100=""),),0))) ◆A2:空白のセル以下の合計 A2=SUM(OFFSET(A3,MATCH(1,INDEX(1/(A3:A100=""),),0),,100)) または、 A2=SUM(INDEX(A3:A100,MATCH(1,INDEX(1/(A3:A100=""),),0)):A100) ★いかがでしょうか?
OFFSET関数を使います。 現在A3~A30までデータが入っている。 途中には空白もある。 A31に合計を出す。 =SAM(A3:OFFSET((A31,-1,0)) で出ます。
関連するQ&A
- EXCELで一行間隔の数値の合計をする関数?教えて
タイトルの通りなのですが、一行間隔の数値データを合計する関数を教えてください。一行間隔以外のセルには他のデータが入っているのでSUM関数は使えません。
- ベストアンサー
- その他(インターネット・Webサービス)
- 入力されるまで合計セルを空白にしたいのですが
A5:A120にデータ入力し、A121に「Sum」で合計を だしています。B列からM列も同様になっています。 列のデータは1~0の数字だけです。 当該列のセルが未入力だと当然合計欄は「0」に表示 されています。 この場合、「0」が目障りなので、いずれかのセルにデータ が入力されない限り、空白表示にしておきたいのです。 どんな関数をどう使えば良いのでしょうか?
- 締切済み
- その他(Windows)
- 合計の空白セルを表示しない方法
セル A B C D 1 空白 空白 空白 0 現在A1~C1までSUM関数を使い、D1で合計を出しています。 加算されるデータが全て空白の場合、D1の合計も空白にしたいのですが、 どのようにすれば可能でしょうか? ツール-オプション-表示-ゼロ値のチェックを外す 以外の方法でお願いします。
- ベストアンサー
- その他MS Office製品
- エクセルによる文字とゼロが入ったセルの合計
宜しくお願い致します。 下記のように「0」と文字が混在混在して 入ってます。 列 A B C D(合計) 行 0 0 0 0・・・D1(=SUM(A1:C1)) - - - 0・・・D2(=SUM(A2:C2)) 0 0 - 0 セルD1とD2ともに、sum関数で合計を出すと 「0」が出てしまいます。 私としては、 D2を「-」と表示したいのですが、 どのように計算したらよいでしょうか? 宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- エクセルで各セルそれぞれ四捨五入してからの合計を求めたいのです
エクセル2000です。 ワークシート関数でこんな場合どうすればよいでしょうか? 添付画像のようにA列に数値データがあります。 途中に空白(数式で ="" が表示されています。)のセルもあります。 このA列のデータを各セルそれぞれ四捨五入してからの合計を求めたいのです。 画像ではB列を作業列にして、 =IF(ISNUMBER(A2),ROUND(A2,0),0) と、="" への対応をして ROUNDして合計していますが、作業列を使わなくとも良い方法があればと思い質問いたしました。 途中の空白が、数式による ="" では無くほんとの空白であれば、 =SUMPRODUCT((ISNUMBER(A2:A11))*ROUND(A2:A11,0)) で、一発で求められるのですが・・・・・。 ご教示いただければ幸いです。 宜しくお願いいたします。
- ベストアンサー
- その他MS Office製品
- Excel:空白セルの合計
Excel2003です。 家計簿のようなものでは、0であっても0と書くと変なので空白にします。 ここで空白セルの合計(オートSUM)は0だと思っていたのですが・・・。 例: A3:A5(A3~A5)を選択して合計をクリックします。 このときA3:A5の、いずれか1つのセルに数値があれば正しい合計が でます。 しかし、 A3:A5が全て空白の場合 (1)A1数値 A2空白 (2)A1空白 A2数値 ではそれぞれ、異なる値になります。 質問です。 A3:A5が全て空白の場合、A1,A2がどのような場合であっても A3:A5の正しい合計を得る方法を教えてください。
- ベストアンサー
- オフィス系ソフト
- エクセルCOUNT関数について
こんばんは、COUNT関数についてお伺いします。 たとえばA列に関数(SUMなど)の数式が入っています。そのA列を範囲指定してCOUNT関数をしたところ、数値が現れているセルのみをカウントしたいのですが、空白の数式が入っているセルもカウントしてしまいます。数値を示しているセルのみをカウントしたいのですが、うまく行きません。 どうすれば解決できますか、教えていただけないでしょうか。
- ベストアンサー
- オフィス系ソフト
- エクセル2003 計算されないようにしたい
例 A列 B列 1 =A1+A2 2 =A2+A3 3 =A3+A4 (A4は空白です) となっている場合に B1=3 B2=5 B3=3 になると思うんですが この時に空白のセルと計算結果を出すときは0もしくは 計算されないようにしたいです。 最終的にB列にSUM関数を使って合計を出したいのですが A列に求めたい数字が片方しか入ってない場合 (数字が入っているセル+空白セル)はSUM関数の合計に入れたくないです。 なので上記の例では B列にSUM関数をした場合11ではなく8にしたいです。 それには文字列を入力して#VALUE!にするしかないですか? でもその状態にしてSUM関数で合計を出したときも#VALUE!になってしまいます。 よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Excelの関数について
Excelの関数について 今表を作っていて 1日数回データを取って それを1ヶ月ぐらい続ける予定で その結果をExcelの表に入力したいと思っています。 A列に現在値 B列に増加分 C列にA+Bの値を入れたいと思っています。 なので、C列には、C1には=SUM(A1,B1)として セルの右下にポインタを合わせて十字で下まで引っ張って関数をコピーしています。 で、そうするとC列に0が表示されてしまい それはなんとか、ツール→オプション→表示→ゼロ値のチェックを外して解決したのですが C列の合計値は次の行のAのセルに表示したくて 例えば C3の数値はそのままA4に C7の数値はそのままA8にといった感じで で、A2のセルに=C1とかA5のセルに=C4とかしたのですが いちいち関数を埋め込むのは面倒くさいので 下のほうまで関数をコピーしたところ 関数が埋め込まれているので A列とB列にしたの方まで同じ数字が表示されています。 これって消すことはできないのでしょうか? 現在は 最初のA1セルだけに数値を入れたのですが関数を埋め込んだことにより A列とB列すべてにA1セルの数値が表示されています。 まだデータを取っていないのでB列は空白です。 ただ、できれば、下の方に数値が表示されないようにしたいんです。 言葉で説明すると A列とB列に数値が入力されない限り、C列の合計値は表示されない設定にできれば 私の言っているような状況になると思うのですが、そういう事はできないのでしょうか… 教えてください。
- ベストアンサー
- その他MS Office製品
- Excel:決まったセルから常にあるセルの最終行の引き算
添付画像のA7~E7列に数値を入力していき、F列にB~Eの合計がSUM関数により表示されます。 必要に応じ、8行目以降にデータは累積していきます。 D4セルにC4からF列の常に最終行の引き算の数式を入れたいと思っています。 イメージは D4=C4-(F列の最終行)というものですが、具体的にどういう数式をD4セルに当てはめればよいでしょうか? 御教示宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
お礼
みなさまご回答くださってありがとうございます。 ここでまとめてお礼を言わせていただきます。 いろいろ方法があるようなので、どの方法にするか検討してみたいと思います。 ポイントは回答くださった順にしたいと思います…