エクセル関数で飛び飛びに計算(2)
1行おきに奇数行や偶数行を計算します。
2013Excel関数技BEST 60-2回
1行おきに奇数行や偶数行を集計
今度の飛び飛びケースは、前期とか後期のような区別する行ラベルのようなものがない場合です。
考え方は、前ページと同様に配列を使うのですが、1行おきに合計するために、集計したい行が奇数なのか偶数なのかの判定をします。
そのためIF関数、MOD関数、ROW関数も使います。
(サンプルファイルは、こちらから マクロ60回サンプルデータ)
配列で奇数行だけを集計する
下図の表の実績部分だけを集計しましょう。一行おきに入力された売上実績を合計したいので、シートの奇数行を合計するということになります。


奇数行かどうかの判定が必要
行番号を取得するにはROW関数を使い、行が奇数か偶数かを判定するのに使うのは、MOD関数です。B3セルが奇数か偶数かは、次の式で判定できます。
=MOD(ROW(B3),2)
値が1ならば、奇数行で、つまり集計行です。

=MOD(ROW(B3),2)
値が1ならば、奇数行で、つまり集計行です。

配列で、
=IF(MOD(ROW(B3),2)=1,B3,"")
=IF(MOD(ROW(B4),2)=1,B4,"")・・・
とB18セルまでを奇数行かどうか判定しながら合計させます。
IFもしもMOD(ROW(B4),2)=1なら数値、それ以外は"空白"と考えてください。
{=SUM(IF(MOD(ROW(B3:B18),2)=1,B3:B18,""))}

=IF(MOD(ROW(B3),2)=1,B3,"")
=IF(MOD(ROW(B4),2)=1,B4,"")・・・
とB18セルまでを奇数行かどうか判定しながら合計させます。
IFもしもMOD(ROW(B4),2)=1なら数値、それ以外は"空白"と考えてください。
{=SUM(IF(MOD(ROW(B3:B18),2)=1,B3:B18,""))}

わかりにくい部分を図にしてみましょう。


このやり方で、1行おきの飛び飛び集計以外に、2行おきとか3行おきも計算できます。
