Excelで1行・1列おきの合計を求めるSUM関数の書き方

Excelで一番有名(だと思う)な関数、SUM。1行おきに計算したいとき、「=SUM(A1,A3,A5,A7)」とか書くの面倒だなーと思ったら便利な書き方を見つけたのでメモがてら。
基本式
=SUMPRODUCT((MOD(行列(範囲),2)=偶奇)*(範囲))
- 行列 … 行ならROW、列ならCOLUMN
- 偶奇 … 奇数なら1、偶数なら0
- 範囲 … 計算したいセルの範囲
以上の値を入れて使います。2で割った余りが1か0かを判別することで偶奇を見分けるみたいですね。
奇数行の合計を求めたいとき
=SUMPRODUCT((MOD(ROW(A1:A20),2)=1)*(A1:A20))
偶数行の合計を求めたいとき
=SUMPRODUCT((MOD(ROW(A1:A20),2)=0)*(A1:A20))
奇数列の合計を求めたいとき
=SUMPRODUCT((MOD(COLUMN(A1:J1),2)=1)*(A1:J1))
偶数列の合計を求めたいとき
=SUMPRODUCT((MOD(COLUMN(A1:J1),2)=0)*(A1:J1))
と、こんな感じになりますね!飛び飛びに指定するのって、少しならいいんですけど範囲が大きくなると大変なので覚えておくと便利かもですー。
参考
こちらを参考にさせて頂きました!
ExcelVBAに興味をお持ちの方は、こちらの記事もどうぞ!
- これからExcelのマクロを始めたいという方に!簡単な練習問題作りました。
- 私がExcelVBAでよく使う便利なコード・スニペットまとめ
- プログラム初心者さんへ贈る、エラーが起きたら試してみて欲しいこと
- ExcelVBAのクラスモジュールって何?という人向けの使い方まとめ
書籍を執筆しています。

コメントは承認制ですので、反映までしばらくお待ち下さい。(稀にスパムの誤判定にて届かないこともあるようですので、必要な際はお問い合わせからお願い致します。)
YouTubeでQ&Aコンテンツを企画しています
運営しているYouTubeチャンネルで、ご相談やご質問にお応えする企画を行っています。プログラミングなどでお困りのことがあれば、お問い合わせページからお気軽にご相談をお寄せください。