• ベストアンサー

excel2003空白セルを抜かした任意数のセルを合計したい。

excel2003で、ある列のデータ値に対し、空白セルを抜かしたA個分のセルの合計値を隣の列に「A回前までの合計値」として作成したいのですが、VBAを使わずに、計算式だけでできないでしょうか。 簡単な様で、よく分かりません。 この質問文も伝わるか自身がありませんが、よろしくお願いいたします。 空白セルは、0も入力されていないセルで、データの性質上ランダムに出来ます、さらに連続する場合もあります。 データはさかのぼるので合計の列は、A個下から始まります。

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

  • ベストアンサー
noname#204879
noname#204879
回答No.4

   A     B     C 1  データ 直近3個合計 作業列 2    1          2 3    0          3 4          5    9      10    5 6          10 7          10 8    9      18    8 9    0      18    9 10    1      10   10 11          10 12    8      9   12 13    6      15   13 14          15 15    9      23   15 16    6      21   16 1.セル B1 を次の“ユーザー定義”で書式設定して、数値 3 を入力     "直近"G/標準"個合計" 2.セル B2、C2 に次式をそれぞれ入力して、範囲 B2:C2 をズズーッ   と下方にドラッグ&ペースト   B2: =IF(ISERROR(LARGE(C$2:C2,B$1)),"",SUMIF(C$2:C2,">="&LARGE(C$2:C2,B$1),A$2:A2))   C2: =IF(A2="","",ROW()) セル B1 に他の数値(4 とか 5 とか)を入力して変化を確認してみてください。

02yanma
質問者

お礼

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

02yanma
質問者

補足

ご回答ありがとうございました。 まさにこの通りです。 はじめの3個は表示が出ないようになっているのですね。 理解するのに30分位かかりました(^^;) ありがとうございました。

その他の回答 (4)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.5

私には質問内容がよくわからないのですが、皆さんの回答の中にご自分の希望の処理(A列のデータと集計方法)の例が提示されているのでしょうか? このようなご質問では、言葉で説明するより表のレイアウトと集計結果をそのまま貼り付ける、あるいは図で例示したほうが的確な回答が得られると思います。

02yanma
質問者

補足

ご指摘の通りです。 次回から図を添付するようにいたします。

  • ka_na_de
  • ベストアンサー率56% (162/286)
回答No.3

VBAを使わずとの条件でしたが、 サンプルコードを作ってみました。 不要なら無視してください。 '===========標準モジュールに記述================================ Function mySum(argRng As Range)   On Error GoTo Err   Dim argRngRowsCnt As Long, myRngRowsCnt As Long   Dim myRng As Range   Application.Volatile   argRngRowsCnt = argRng.Rows.Count   Set myRng = argRng   Do Until WorksheetFunction.Count(myRng) = argRngRowsCnt     If myRng.Row = 1 Then GoTo Err     Set myRng = myRng.Resize(myRng.Rows.Count + 1).Offset(-1)   Loop   mySum = WorksheetFunction.Sum(myRng)   Set myRng = Nothing   Exit Function Err:   mySum = "データ不足です"   Set myRng = Nothing End Function '===========使い方============================================= '例えば A列がデータ列で '5個前までのデータの和を求める時 ' B5セルに  =mySum(A1:A5) 'B5以下はコピペしてください。 '合計範囲内に空白があれば上方向にデータを探して合計します。

02yanma
質問者

補足

ご回答ありがとうございました。 実はVBAがよく判らないので、計算式だけで模索していたのですが、やはり複雑な事はVBAの方が簡単なのでしょうか、今後の勉強とさせて頂きます。

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

誤記訂正 誤:データ頭から3個分の合計は次の様な式になります 正:データ頭から4個分の合計は次の様な式になります

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

文章で説明する自信が無いのでしたら画像でも付けて見てください。 良く判らないので、恐らくこんなことをしたいのかなぁと推測して回答します。 作業列を使います。 A列のA1からデータや空白が入っているとして、B1に=COUNT(A$1:A1) と、入れて下までコピー。 A個分の個数をE1セルに入力する事にします(図の例では4)。 データ頭から3個分の合計は次の様な式になります =SUMIF(B:B,"<="&E1,A:A)

02yanma
質問者

補足

ご回答ありがとうございました。 残念ながら少し違いました。 ご指摘の通り上手く伝わらなかった様です。次回から図を添付するようにいたします。

関連するQ&A