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を押します。

AC8のセルには、次のような計算式を入れ、
 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)=1,A1:x1))

です。
 ※ x は任意の列。





WORD・EXCEL裏技・実践技教えます。
  
〜筆者のHP

前 へ 目 次 次 へ
ファーストマクロ TOPページ