dポイントプレゼントキャンペーン実施中!

B4+B9+B14+B19~という風に5つおきのセルの合計を出したい場合はどうしたらいいですか?

A 回答 (5件)

組み込み関数を組み合わせた計算式の場合は、


=SUM(IF(MOD(ROW(B4:B100),5)=4,B4:B100))
で、Shift+Ctrl<Enter>で確定します。(5で割って残りが4の行を加算))

もし、頻繁にこのような計算が必要であれば、ユーザー定義関数が、最適と思います。

下記の StepSum関数は、指定した範囲を指定した数を飛び飛びに加算します。

書式は、=StepSum(範囲,ステップ数)です。

使用例は、セルA1:A100 の範囲に1~100まで入力されているとして、
これを2ステップで加算する場合は、

 =StepSum(A1:A100,2)

のように計算式を設定します。 2500が表示されます。

指定した範囲が、行、列とも複数ある場合は、セル数の多い方の1行または1列を
加算します。 同数の場合は、行が優先します。 
SUM関数と同じく、文字列は無視して加算します。

一応、VBAの設定方法を書いておきますので、宜しかったらテストして
みてください。

1.Alt + F11 で VBE(Visual Basic Editor)を開きます。
2.VBE のメニューから[挿入] -->[標準モジュール] を指定します。
3.モジュールウィンドウに下記コードをコピーして貼り付けます。
4.Alt + Q (または、右上隅の×)でウィンドウを閉じ、シートに戻ります。
5.メニューから[ツール]-->[マクロ]-->[セキュリティ]で「セキュリティレベル」を
 「中」にして[OK]します。
これで、StepSum関数が使用できます。


Function StepSum(S As Range, Stp As Integer) As Double
Dim Rng As Range
Dim Sum As Double
Dim Col As Integer
Dim Rw As Long
Dim N As Integer
Rw = S.Rows.Count
Col = S.Columns.Count
If Rw >= Col Then
  Set S = S.Resize(, 1)
Else
  Set S = S.Resize(1)
End If
For Each Rng In S
  N = N + 1
  If N = 1 And IsNumeric(Rng.Value) Then _
    Sum = Sum + Rng.Value
  If N = Stp Then N = 0
Next Rng
StepSum = Sum
End Function
    • good
    • 0
この回答へのお礼

ありがとうございます。勉強になりました。
VBAになっちゃうとまったく??の世界ですが、いつかチャレンジしてみます。

お礼日時:2004/02/11 20:27

もしユーザー定義関数を作るなら


Function stpsum(a As Range, b As Range, c As Integer)
t = 0
For i = a.Row To b.Row Step c
t = t + Cells(i, a.Column)
Next i
stpsum = t
End Function
でどうでしょう。
=stpsum(開始セル、最後セル、何個飛びの数)とセルに
いれます。
開始セル<=最後セルなどチェックなどいれてませんが。
    • good
    • 0
この回答へのお礼

ありがとうございます。勉強になりました。

お礼日時:2004/02/11 20:28

「4つおき」すなわち「5行ごと」の合計ということで宜しかったでしょうか。



=SUMPRODUCT((MOD(ROW(B4:B100),5)=1)*1,B4:B100)
と入力し、普通にEnterで確定してください。

なお、範囲は一応B4:B100にしてありますが、
これを例えばB4:B1000に変更した場合、後ろのB4:B100もB4:B1000にして、同じ範囲になるようにそろえて入力してください。
この2つの範囲が同じ行や列を持っていませんとエラーになります。
    • good
    • 0
この回答へのお礼

私のような初心者でもわかりやすくご説明、ありがとうございます♪

お礼日時:2004/02/11 20:29

先日も同様の質問がありました。


4,9,14,19,・・・はMOD(ROW(),5)=4で表せます。
A1:A20までデータが入っているとして、
データの無いセルに
=SUM(IF(MOD(ROW(A1:A20),5)=4,A1:A20,""))
といれ、左手指でSHIFTキーとCTRLキーをおしたまま、
右手でENTERキーを押して下さい。
数式バーでは、両端に中カッコがついて
{=SUM(IF(MOD(ROW(A1:A20),5)=4,A1:A20,""))}となって
結果が出ます。
配列数式といいます。
http://pc21.nikkeibp.co.jp/pc21/pc_10/hr5.htm
ほかWEBで「配列数式」で照会してください。400件以上
出るようです。
    • good
    • 0
この回答へのお礼

ありがとうございます。勉強になりました。

お礼日時:2004/02/11 20:28

単純に以下のようSUM関数で足しては駄目なんでしょうか?それとも他に何か条件があるのでしょうか?



=SUM(B4,B9,B14,B19,・・・)

この回答への補足

行数がかなりあるので、その方法は避けたいのです・・・

補足日時:2004/02/11 16:42
    • good
    • 0

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