【Excel】一行おきに合計する全方法を完全解説!SUM・SUMIF・MOD・FILTERを活用【縦横無尽】

Excel 一行おきに合計 SUM

Excelでデータを集計する際、「一行おきに合計したい」という場面は多くあります。たとえば、売上データの奇数行のみ合計 したり、偶数行のみ合計 したりする場合です。

小規模なデータであれば、SUM関数で手作業でも問題ありませんが、大きな表では手間がかかり、非効率 です。

そこで、Excelの SUM関数・SUMIF関数・MOD関数・FILTER関数 を活用し、簡単な方法から高度な方法まで すべてのパターン をわかりやすく解説します!

最も簡単な方法から順に紹介!
Excelのバージョン別に最適な方法を提案!
初心者でもすぐに使える!

🔰 まずは一番簡単な方法!手動でSUM関数を使う

小規模なデータであれば、手作業でSUM関数を使うのが最も簡単です。

Excel 一行おきに合計 SUM

① 奇数行だけを合計する

Alt+Shift+=キーで、=SUM()を呼び出すことができます。Ctrlキーを押しながら選択。
=SUM(A1, A3, A5, A7, A9)
うん、できるのですが、面倒くさい!!黙々と目で見てポチポチする作業はなんだか心が貧しくなるような徒労を覚えます。

② 偶数行だけを合計する

同じことですが、キーボートやマウスでのポチポチ作業って、意外と大変ですよね、指がつりそうになりそうです。

=SUM(A2, A4, A6, A8, A10)

メリット:とにかく簡単!
デメリット:データが多いと手作業が大変

🔹 👉 小規模な表ならこの方法でOK!

📝 SUMIF関数を使う方法(作業列あり)

作業列(補助列)を作ることで、計算が 圧倒的に簡単&速い です。

① B列に「奇数・偶数判定」の作業列を追加

A列(データ) B列(判定)
10 奇数
20 偶数
30 奇数
40 偶数
50 奇数
60 偶数

B1セルに奇数、B2セルに偶数と手入力で打ち、B1:B2を範囲選択し、下にズルズルとコピペ。

② SUMIF関数で合計

奇数行だけを合計

=SUMIF(B1:B10,"奇数",A1:A10)

偶数行だけを合計

=SUMIF(B1:B10,"偶数",A1:A10)

メリット:どのExcelバージョンでも使える!
データが増えても高速!
デメリット:作業列を追加する必要がある

🔹 👉 中規模データなら作業列を活用!

💡 SUMIF関数(作業列なし)で自動計算!

作業列を使わずにSUMIF関数で直接計算できます。

① 奇数行の合計

=SUMIF(ROW(A1:A10),MOD(ROW(A1:A10),2)=1,A1:A10)
※この式は簡単なように見えてよくわからない感じに見えると思うので、記事末尾に解説を添えています。

② 偶数行の合計

=SUMIF(ROW(A1:A10),MOD(ROW(A1:A10),2)=0,A1:A10)

メリット:作業列なしでスッキリ!
どのExcelバージョンでも使える!
デメリット:SUMIFの条件設定がやや複雑

🔹 👉 作業列なしでスッキリまとめたいならこれ!

🚀 配列数式(SUM + IF)を使う方法

Excelの配列数式を活用することで、一行おきに合計できます。

① 奇数行の合計

=SUM(IF(MOD(ROW(A1:A10),2)=1,A1:A10,""))

② 偶数行の合計

=SUM(IF(MOD(ROW(A1:A10),2)=0,A1:A10,""))

📌 Excel 2019以前のバージョンを使っている場合
Ctrl + Shift + Enter で確定する必要があります!

メリット:配列数式で柔軟な計算が可能!
デメリット:旧バージョンだと Ctrl + Shift + Enter が必要

🔹 👉 配列数式に慣れているならこれ!

🎯 Excel 365/2019ならFILTER関数が最強!

Excel 365/2019 なら FILTER関数 を使うのが最もシンプル&最適です。

① 奇数行の合計

=SUM(FILTER(A1:A10, MOD(ROW(A1:A10),2)=1))

② 偶数行の合計

=SUM(FILTER(A1:A10, MOD(ROW(A1:A10),2)=0))

メリット:最もシンプルで分かりやすい!
最新のExcel 365/2019に最適!
デメリット:旧バージョンでは使用不可

🔹 👉 Excel 365/2019 なら FILTER関数がベスト!

📌 一列おきに合計する方法(応用編)

横方向に一列おきの合計を取りたい場合は COLUMN関数 を使います。

SUMIFを使う方法

=SUMIF(COLUMN(A1:J1),MOD(COLUMN(A1:J1),2)=1,A1:J1)

FILTERを使う方法

=SUM(FILTER(A1:J1,MOD(COLUMN(A1:J1),2)=1))

COLUMN関数を使えば横方向の集計もOK!

🔍 まとめ|どの方法を選ぶべき?

方法 使いやすさ 使えるExcelバージョン 配列数式不要
SUM関数(手動選択) ⭐⭐⭐⭐⭐ すべてのバージョン
SUMIF(作業列あり) ⭐⭐⭐⭐⭐ すべてのバージョン
SUMIF(作業列なし) ⭐⭐⭐⭐ すべてのバージョン
SUM + IF(配列数式) ⭐⭐⭐ すべてのバージョン
FILTER関数(Excel 365/2019) ⭐⭐⭐⭐⭐ Excel 365/2019以降

初心者なら「SUM関数 or SUMIF(作業列あり)」が簡単!
作業列なしでスッキリさせたいなら「SUMIF(作業列なし)」!
最新のExcel 365/2019なら「FILTER関数」がベスト!

📢 この方法を活用して、Excelの集計作業をもっと効率的にしましょう! 🚀

 

※※

Excel通にも納得してもらえるSUMIFの解説

=SUMIF(ROW(A1:A10),MOD(ROW(A1:A10),2)=1,A1:A10) の意味

この数式は、A1:A10の範囲のうち、奇数行のデータのみを合計する ものです。
式を 3つのパーツ に分けて、それぞれの役割を詳しく解説します。

1️⃣ SUMIF関数の基本構造

SUMIF関数は、指定した条件に合うセルだけを合計する関数です。

構文:

=SUMIF(範囲, 条件, 合計範囲)
引数 説明
範囲 条件を適用するセル範囲
条件 「どのセルを合計するか」の基準
合計範囲 実際に合計するセル範囲(省略すると”範囲”と同じ)

通常の例:

=SUMIF(A1:A10, ">50", B1:B10)

➡ A1:A10 のうち “50より大きい” セルに対応する B列の値を合計する

では、今回の数式に戻って考えましょう。

2️⃣ 「範囲」: ROW(A1:A10) の意味

ROW(A1:A10)

この部分は、A1:A10 の各セルの「行番号」を取得する ものです。

実際の値:

{1;2;3;4;5;6;7;8;9;10}

つまり、この数式では「行番号」を基準にSUMIFを適用しています。

3️⃣ 「条件」: MOD(ROW(A1:A10),2)=1 の意味

MOD(ROW(A1:A10),2)=1

この部分の意味を詳しく解説します。

🔹 MOD関数とは?

MOD(数値, 除数)

➡ 「数値 ÷ 除数」の余り を求める関数

たとえば、行番号を 2 で割ったときの余りを計算すると:

行番号 MOD(行番号,2) の結果 結果が 1 の行
1 1 ✅(奇数行)
2 0 ❌(偶数行)
3 1 ✅(奇数行)
4 0 ❌(偶数行)
5 1 ✅(奇数行)

つまり、

MOD(ROW(A1:A10),2)=1

は、奇数行のセルだけを選ぶ条件 になっています。


4️⃣ 「合計範囲」: A1:A10 の意味

A1:A10

実際に合計する範囲(値が入っているセル)

SUMIF関数は「範囲」ではなく、この「合計範囲」のデータを合計します。
(範囲の条件に一致するセルのみが合計される)

✅ 結果の動作イメージ

SUMIFは、行番号が奇数のセルだけを合計 するので:

A列(データ) 行番号 奇数行?(MOD(ROW,2)=1) 合計対象?
10 1 ✅(加算)
20 2 ❌(無視)
30 3 ✅(加算)
40 4 ❌(無視)
50 5 ✅(加算)
60 6 ❌(無視)
70 7 ✅(加算)
80 8 ❌(無視)
90 9 ✅(加算)
100 10 ❌(無視)

合計の対象:10 + 30 + 50 + 70 + 90 = 250

🎯 応用編

1. 偶数行の合計を求める場合

=SUMIF(ROW(A1:A10),MOD(ROW(A1:A10),2)=0,A1:A10)

MOD(ROW(A1:A10),2)=0 にするだけで、偶数行の合計が計算できる!

2. 横方向(列単位)で一列おきに合計する

列方向の処理をしたい場合は、ROW → COLUMN に変えるだけ!

=SUMIF(COLUMN(A1:J1),MOD(COLUMN(A1:J1),2)=1,A1:J1)

➡ 偶数列だけを合計するなら =0 に変更!

🔍 まとめ

部分 役割
SUMIF(範囲, 条件, 合計範囲) 条件に合うセルだけを合計
ROW(A1:A10) A1:A10の行番号を取得
MOD(ROW(A1:A10),2)=1 奇数行の判定(1なら奇数、0なら偶数)
A1:A10 実際に合計するデータ

SUMIF関数を活用すれば、一行おきの合計が簡単にできる!
作業列なしでスッキリ計算できる!
MOD関数を変えれば「偶数行」や「一列おきの合計」も可能!

Follow me!

コメント

PAGE TOP
タイトルとURLをコピーしました