1行(列)おきに合計する関数です。
奇数行の場合と偶数行の場合で式を作ってます。
関数は「SUMPRODUCT」を使っていきます。
配列なのですが、「配列1」「配列2」と指定すると両列の同行を掛け算し、その結果を合計するというものです。
下図をみてください。
A列とC列の値を同行で掛け算してます。
A1×C1=0
A2×C2=2
A3×C3=0
A4×C4=2
A5×C5=0
A6×C6=2
となりますよね、これで出たE列の値を足すと
=0+2+0+2+0+2=6
合計「6」という値が返ります。
このそれぞれの計算をいっぺんにしてくれるのが配列です。
ではこれを踏まえていきましょう。
奇数のセルを合計する関数
=SUMPRODUCT(MOD(ROW(A1:A6),2),A1:A6)
偶数のセルを合計する関数
=SUMPRODUCT(MOD(ROW(A1:A6)-1,2),A1:A6)
となります。
・ROW 行を数える
・MOD 数値を割って余った値を返す
奇数の関数で考え方を見てみると、
A1からA6のそれぞれの行を「2」で割ります。すると、
1行目は余り「1」
2行目は余り「0」
3行目は余り「1」
と続きます。
これを元の数値と掛け算します。
「元のA1の値」 × 「MODで割って余った値」
「元のA2の値」 × 「MODで割って余った値」
と続くわけです。
すると「0」で割ったところの値は「0」が返ります。
「0」以外の行は「1」が返りますので、元のA列の値に「1」を掛けても数値は変わりませんよね。
これで最終的に合計すると、「1」を掛けているセルだけを足すことになるので、1行おきの計算となるのです。
MODをCOLUMNに変更すれば1列ごとの計算になりますよ。
便利ですね。