この人頭いいなと思ったエピソード

たとえば、
A4セルからA8・A12・・・A96
と言う具合にA4から4つ毎の合計を計算したいとします。
私は関数が思い浮かばず、
=A4+A8+A12+・・・+A96
と入力してしまうのですが、簡単に集計する方法があれば教えてください。

よろしくお願いいたします。

A 回答 (6件)

=SUMPRODUCT((MOD(ROW(A1:A96),4)=0)*(A1:A96))



・・・これでイイかな?
(確認していませんので適宜修正してください。というか全く使えないかも)

ROW関数で指定したセルの行番号を取得、
それをを4で割った余り(MOD関数)が
0であれば、1
0でなければ、0
その行に対応するセル内の数値を掛けて積算
(この辺りは「絵を描いて」「目で見て」確かめながら読んでください)


>=A4+A8+A12+・・・+A96
これは参照元のセルの個数が多すぎて、Excel2003以前では使えないことがありますね(32個まで)
よく分からないときには作業用の列を用意し、そこに数値を出すようにして
その列で積算するなどの処置をしてみましょう
難しく考えなくても簡単な方法で対処できるのであれば、それだって正解ですからね
(他の人に聞いて回答を待つ間にできてしまうこともあります)


#あとはSUMIF関数を使って答えてくれる人が現れることに期待
    • good
    • 0
この回答へのお礼

わかりやすいご回答ありがとうございました。
大変勉強になりました。

お礼日時:2008/04/14 21:23

セル飛ばし集計は、配列数式でパターン化されていますので覚えておいても損にはなりません。


数式は、=SUM(IF(MOD(ROW(範囲),飛ばし幅)=0,範囲))として、入力完了時に、shift+ctrl+enterキーを同時押下します。
よって、今回のご質問に当て嵌めると=SUM(IF(MOD(ROW(A1:A94),4)=0,A1:A94))となります。
因みにSUMPRODUCT関数はこれ自体配列関数ですので煩わしいキー操作が不要の為、他でも(例えば、複数条件による集計等)よく利用されています。
    • good
    • 6
この回答へのお礼

別の方法を教えていただきありがとうございました。
ほんとうに、一つの問題にたくさんの答えがあるというのはおもしろいですね。

お礼日時:2008/04/14 21:24

#2さんの回答で良いんじゃないんですか?


別に配列関数にしなくても...
    • good
    • 0
この回答へのお礼

配列関数の意味もわかっていませんでしたが、みなさまのご回答で大分わかるようになりました。ありがとうございました。

お礼日時:2008/04/14 21:26

{=SUM((A4:A96)*(MOD(A4:A96,4)=0))}


(配列数式)
    • good
    • 2

#2の方のを参考にして・・・・!!!


出来たかも^^

=SUMPRODUCT(A1:A96,IF(MOD(ROW(A1:A96),4)=0,1,0))

を、任意のセルに貼り付けて、Ctrl+Shift+Enterでどうでしょう?
今日は寝ます^^おやすみなさい~~~
    • good
    • 0

他のあいている列を使用していいなら、こんなのはいかがでしょう??


B列が空いているとしてB1に
=IF(MOD(ROW(),4)=0,A1,0)   ←行数を4で割って余りが0の時
B1をコピーしてB2:B96へ貼り付け
B97に
=SUM(B1:B96)

この回答への補足

ご回答いただいた方法で1つのセルで計算できないか実験してみました。
=COUNTIF(A1:A65536,MOD(ROW(),4)=0)
書いてみたのですが、うまくいきませんでした(^^ゞ

補足日時:2008/04/02 23:04
    • good
    • 1
この回答へのお礼

なるほど、合わせ技ですね。
私もA4・A8と作るのにまずは4の倍数のセルをつくってそれをAにくっつけて、csvに落として、カンマをプラスに置換して・・・という具合にやりました。
もっと簡単な式が思い浮かべばと思うのですが思い浮かばず質問させていただきました。
早速、検討させていただきます。
ありがとうございました。

お礼日時:2008/04/02 22:59

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報