エクセルの関数技 一行おきに飛び飛びで合計するには

IF関数ROW関数MOD関数の合わせ技 一行おきに合計

上期、下期、前期、後期などというように、一行おきに入力された売上などを合計したい時は、どうすればいいでしょう。

ポイントは、一行おきという点です。
今回使う関数は、IF関数、ROW関数、MOD関数、SUM関数の4つです。 (サンプルファイルは、こちらから 関数技11回サンプルデータ

前期・後期など1行おきのデータだけを合計するには

1行おきに合計するということは、シートの奇数行か偶数行のいずれかを合計するということです。行番号を取得するにはROW関数を使い、行が奇数か偶数かを判定するのに使うのは、MOD関数IF関数です。

1行おきのデータを合計する方法

【問題】一行おきに入力された「前期売上」だけを合計しなさい。
1行おきのデータだけを合計1
考え方ですが、上の図にヒントが表示されていますが、前期の売上は、すべて偶数行に記入されています。
反対に後期の売上は、奇数行に記入されいます。
つまり、 偶数行に入力された売上だけを合計すれば、前期の売上合計が出ます。
奇数行に入力された売上だけを合計すれば、後期の売上合計が出ます。
1行おきのデータだけを合計2

行番号が奇数かどうか調べる

それには、行番号が奇数かどうか調べる必要があります。
行番号が奇数かどうか調べるには、行番号を「2」で割って余りを求め、これが「1」なら奇数と判定できます。それ以外は、余りがないので偶数です。
余りを求める関数MOD関数 
=MOD(数値,除数)

MOD関数
数値のところに行番号を入れればよいのです。
そして、行番号を求める関数はROW関数です。
セルの行番号を調べるには、ROW関数を使います。
「=ROW()」という式を立てると、その式が入力されているセルの行番号がわかります。D2セルには、=ROW()という式が入力されいます。
行が偶数か奇数かを判定するために、E2セルには =MOD(ROW(),2)という式が入力してあります。
1行おきのデータだけを合計4
スポンサーリンク
スポンサーリンク

IF関数と組み合わせる

IF関数を使って、D列に前期売上を、E列に後期売上を取り出します。

IF関数
=IF(論理式, [真の場合], [偽の場合])
IF関数の引数の論理式にMOD関数をつかった式を当てはめます。
D2セルに入れる式を考えてみましょう。
D2セルには、余りが0ならば、前期売上(C2)を記入し、それ以外は、””(空白)という式を入れます。
D2セルに入れる式=IF(論理式,C2,"") 
1行おきのデータだけを合計5
論理式は、余りが偶数つまり0ならば、MOD(ROW(),2)=0を、条件式として書きます。

=IF(MOD(ROW(),2)=0,C2,"")
1行おきのデータだけを合計する
E2セルに入れる式は、条件式を余りが奇数つまり1ならばということで、
 MOD(ROW(),2)=1 にして、
 
=IF(MOD(ROW(),2)=1,C2,"")

これらの式をD2セル、E2セルに入力して下のセルにコピーします。
1行おきのデータだけを合計する2
■ 問題の表は、以下のようになります。
こうして取り出したD列の金額をSUM関数で合計すれば前期売上が合計されます。
実際の資料として使う場合は、D列・E列は非表示にすると良いでしょう。
1行おきのデータだけを合計する3
スポンサーリンク
スポンサーリンク