マンガでよめる痔のこと・薬のこと

winXP エクセル2002です。

1行目に数値が100個入力されているとします。
この数値を指定回数、1つおきに足し算をしたいのです。
たとえば、A2に回数を指定する数値、A3に足し算をした結果を表示するとして、
A2に5といれたらA3にはA1+C1+E1+G1+I1の結果がほしいのです。

何かいい関数はありますでしょうか
マクロでもかまいません。

よろしくお願いします。

A 回答 (5件)

A3=SUMPRODUCT((COLUMN($A$1:$CV$1)<$A$2*2)*(MOD(COLUMN($A$1:$CV$1)

,2)=1),$A$1:$CV$1)
    • good
    • 0
この回答へのお礼

御礼が遅くなってすみません。

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

お礼日時:2006/08/06 12:23

=SUMPRODUCT(MOD(COLUMN(1:1),2)*(COLUMN(1:1)<A2*2)*1:1)

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

御礼が遅くなってすみません。

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

お礼日時:2006/08/06 12:25

次の方法は如何でしょうか。


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))))
    • good
    • 0
この回答へのお礼

御礼が遅くなってすみません。
ちょっと欲しかったものとは違うようです。。。

お礼日時:2006/08/06 12:25

ユーザ関数が汎用的に使えると思います


 =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
    • good
    • 0
この回答へのお礼

御礼が遅くなってすみません。

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

お礼日時:2006/08/06 12:29

マクロなら次の通り。


for i= 1 to cells(2,1)
cells(3,1)=cells(3,1)+cells(1,i*2-1)
next
    • good
    • 0
この回答へのお礼

御礼が遅くなってすみません。

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

お礼日時:2006/08/06 12:24

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


このカテゴリの人気Q&Aランキング