- ベストアンサー
横に並んだ数値を1つおきに指定回数足し算したい
winXP エクセル2002です。 1行目に数値が100個入力されているとします。 この数値を指定回数、1つおきに足し算をしたいのです。 たとえば、A2に回数を指定する数値、A3に足し算をした結果を表示するとして、 A2に5といれたらA3にはA1+C1+E1+G1+I1の結果がほしいのです。 何かいい関数はありますでしょうか マクロでもかまいません。 よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
A3=SUMPRODUCT((COLUMN($A$1:$CV$1)<$A$2*2)*(MOD(COLUMN($A$1:$CV$1),2)=1),$A$1:$CV$1)
その他の回答 (4)
- NCU
- ベストアンサー率10% (32/318)
=SUMPRODUCT(MOD(COLUMN(1:1),2)*(COLUMN(1:1)<A2*2)*1:1)
お礼
御礼が遅くなってすみません。 無事できました。ありがとうございました。
- mu2011
- ベストアンサー率38% (1910/4994)
次の方法は如何でしょうか。 A3セルに=SUM(IF(MOD(INDIRECT(ADDRESS(1,1,,1)):INDIRECT(ADDRESS(1,(A2)*2,,1)),2)=1,INDIRECT(ADDRESS(1,1,,1)):INDIRECT(ADDRESS(1,A2*2,,1))))
お礼
御礼が遅くなってすみません。 ちょっと欲しかったものとは違うようです。。。
- zap35
- ベストアンサー率44% (1383/3079)
ユーザ関数が汎用的に使えると思います =DigitSUM(開始セル,回数) 質問の例なら =DigitSUM(A1,A2) です Private Function DigitSUM(ByVal argCell As Range, ByVal argTimes As Integer) As Long Dim idx As Long For idx = 0 To argTimes - 1 DigitSUM = DigitSUM + argCell.Offset(0, idx * 2) Next idx End Function
お礼
御礼が遅くなってすみません。 無事できました。ありがとうございました。
- toshi_2000
- ベストアンサー率30% (306/1002)
マクロなら次の通り。 for i= 1 to cells(2,1) cells(3,1)=cells(3,1)+cells(1,i*2-1) next
お礼
御礼が遅くなってすみません。 無事できました。ありがとうございました。
お礼
御礼が遅くなってすみません。 無事できました。ありがとうございました。