7/22/2026

Excel。1行おきの数値を合計するには、FILTER関数を使うと便利です。【Every other line】

Excel。1行おきの数値を合計するには、FILTER関数を使うと便利です。

<SUM+FILTER+MOD+ROW関数>

次のような表があります。

=SUM(FILTER(B2:B7, MOD(ROW(B2:B7),2)=0))

やりたいことは、1Fと2Fの金額合計を求めたいわけです。


つまり、1行おきで合算したい。


A列が1F販売金額となっていれば、SUMIF関数をつかうことで、合計を求めることもできます。


ただ今回の表は、2024年という文字列があって、2025年2026年という文字列もついています。


つまり、同じ条件でというわけにはいきません。


A列から、色々作業をしなければいけません。


では、何かいい方法はないのでしょうか。


以前は、SUMPRODUCT関数をつかって求めていましたが、FILTER関数をつかう方法で、求めてみようと思います。


E2には、FILTER関数をつかった数式を設定しました。

=SUM(FILTER(B2:B7, MOD(ROW(B2:B7),2)=0))

これで、1Fの金額合計を求めることができました。

2Fの数式は、

=SUM(FILTER(B2:B7, MOD(ROW(B2:B7),2)=1))

という数式で求められます。


数式を説明します。


SUM関数の引数の中から説明するとわかりやすいので、まずはFILTER関数から説明します。


FILTER関数は、抽出する関数です。


FILTER関数の最初の引数は、「配列」。


範囲のことなので、B2:B7を設定します。


次の引数は、「含む」。


抽出条件です。


その抽出条件には、MOD(ROW(B2:B7),2)=0

という数式を設定します。


MOD+ROW関数は、そのセルが偶数行なのか、奇数行なのかを判断するときに使う方法です。


MOD関数は、割った余りを求める関数です。

ROW関数は、セルの行番号を求める関数です。


つまり「セルの行番号を2で割った値が、ゼロ」というのが抽出条件になるというわけです。


これで、偶数行なのか奇数行なのか、わかります。偶数奇数ですから、一行おきが対象になるという仕組みです。


あとはSUM関数で合計する。


このように、FILTER関数をつかうことで、一行おきを対象にした合計を求めることができます。