本文へスキップ

技術士試験(情報工学部門)・情報技術者試験。ファーストマクロ。


Since 2016.4.19

EXCEL Tips

EXCEL Tips 050 1行おきに合計する計算式(配列数式)

以前からご要望の多かった1行おきに合計する計算式を考えてみました。
配列数式」という方法です。

例えば
 

のような表を作って、男性、女性のそれぞれの合計を計算したいとします。

単純に
C7: =SUM(C1,C3,C5)
C8: =SUM(C2,C4,C6)
でもOKです。
でも、行が100行なら、面倒なことになります。
 C100 = SUM(C2,C4,C6,C8, ・・・・ , C98)

今回はちょっと難しいところもありますが、紹介します。
行の追加削除にも柔軟に対応できる裏ワザです。


方法

@ C7のセルに次のような計算式を入れ、
 「Ctrl」+「Shift」+「Enter」キーを同時に押します。
 =SUM(IF(MOD(ROW(C1:C6),2)=1,C1:C6))

※式が{ }で括られます。
 必ず数式バーのところか、F2キーで直接計算式を編集するモードで、「Ctrl」+「Shift」+「Enter」キーを押します。

A C8のセルには、次のような計算式を入れ、
 「Ctrl」+「Shift」+「Enter」キーを同時に押します。
 =SUM(IF(MOD(ROW(C1:C6),2)=0,C1:C6))

これで完成です。

Ctrl」+「Shift」+「Enter」キーを同時に押す方法を「配列数式」と言います。
配列数式は、Ctrl + Shift + Enter の頭文字をとって、CSE数式とも言います。

応用として、例えば3行おきにしたいときは
1行目: =SUM(IF(MOD(ROW(C1:Cx),4)=1,C1:Cx))
2行目: =SUM(IF(MOD(ROW(C1:Cx),4)=2,C1:Cx))
3行目: =SUM(IF(MOD(ROW(C1:Cx),4)=3,C1:Cx))
4行目: =SUM(IF(MOD(ROW(C1:Cx),4)=0,C1:Cx))
です。
 ※ xは任意の行。

また、列を1列おきに合計するときは
 =SUM(IF(MOD(COLUMN(A1:x1),2)=1,A1:x1))
 =SUM(IF(MOD(COLUMN(A1:x1),2)=0,A1:x1))

です。
 ※ xは任意の列。

前へ 目次 次へ