集計
SUM関数の使い方・読み方
読み方:SUM は「サム」と読みます。(一般的な読み方です。公式に読み仮名の定めはありません)
SUMは、指定した範囲の数値を合計する関数です。最も基本的で、最もよく使われる関数です。
このページの中身(21項目)
この記事の書式と対応環境の出どころ(2026-08-26 確認)
- Google スプレッドシート ヘルプ:公式の書式は
SUM(値1, 値2)
https://support.google.com/docs/answer/3093669 - Microsoft サポート:SUM 関数
https://support.microsoft.com/ja-jp/excel/functions/sum-function
関数の仕様は追加・変更されることがあります。書式が合わないときは、上の公式ページで最新をご確認ください。
書き方は単純ですが、「合計が合わない」という相談が最も多い関数でもあります。この記事では基本に加えて、その原因の見つけ方まで扱います。

書式
=SUM(範囲1, [範囲2], ...)
範囲はいくつでも並べられます。
基本の使い方
| A | |
|---|---|
| 1 | 120 |
| 2 | 340 |
| 3 | 250 |
=SUM(A1:A3) → 710
飛び飛びのセルを足すには、カンマで区切ります。
=SUM(A1, A3, A5)
範囲と個別セルを混ぜることもできます。
=SUM(A1:A10, C1, E5:E8)
列全体を指定すれば、行が増えても数式を直す必要がありません。
=SUM(A:A)
文字列や空欄は無視されるので、見出し行を含めても問題ありません。ただし、合計を出しているセル自身を範囲に含めると循環参照になります。 列全体を使うときは、合計を別の列か別のシートに置いてください。

数値を直接足すこともできる
=SUM(100, 200, 300) → 600
ただしこの用途なら =100+200+300 で十分です。SUMの利点は範囲を扱えることにあります。
「合計が合わない」4つの原因
これが実務で最も多い問題です。原因はほぼこの4つに絞られます。
1. 数値が文字列になっている
最も多い原因です
他システムからコピーしたデータ、CSVから読み込んだデータでよく起きます。
見分け方
セルの中身が左寄せになっていたら文字列です。数値は既定で右寄せになります。
確認する:
=COUNT(A1:A100)
COUNT は数値だけを数えます。行数より少なければ、文字列が混ざっています。
直す:
=SUM(VALUE(A1:A100))
または元データ側で「データ → 数値に変換」を行うか、*1 を掛けた作業列を作ります。
2. 範囲が足りていない
行を追加したのに、数式の範囲が古いまま。=SUM(A2:A50) のままで51行目以降が入っていない、というケースです。
対策は列全体で指定することです。=SUM(A:A) にしておけば、行を追加しても自動で含まれます。
3. 非表示の行・フィルタで隠れた行も合計されている
SUMは見えていない行も足します。フィルタで絞り込んだ状態の合計を出したいなら SUBTOTAL を使ってください。
=SUBTOTAL(109, A2:A100)
109 は「合計、非表示の行を除く」という意味です。フィルタと合計を併用する場面では、SUMではなくSUBTOTALが正解です。
4. 小数の丸め誤差
見た目は 100 なのに、実際には 100.004 が入っている、というケース。表示桁数を減らしていると気づけません。
確認する: 桁数の表示を増やすか、
=A1 - ROUND(A1, 0)
で差を見ます。
直す: 元の値を ROUND で丸めるか、合計側で =ROUND(SUM(A:A), 0) とします。表示だけ丸めても内部の値は変わらないので、計算に使うなら値そのものを丸めてください。
条件を付けて合計したいとき
「東京の分だけ」のように条件を付けるなら、SUMIF または SUMIFS を使います。
=SUMIF(A:A, "東京", C:C)
=SUMIFS(C:C, A:A, "東京", B:B, "商品A")
エラーが混ざっているときの対処
範囲の中に1つでもエラーがあると、SUMもエラーになります。
根本的な対処は、エラーの原因を直すことです
VLOOKUPの #N/A なら、なぜ見つからないのかを先に確かめてください。エラーを隠すのは、原因を確かめてからです。
どうしてもエラーを無視して合計したい場合は、次の書き方があります。
=SUMIF(B2:B100, "<>#N/A")
条件付きで合計する方法です。ただし、エラーの種類ごとに書く必要があります。
より確実なのは、元の数式をIFERRORで包んでおくことです。
=IFERROR(VLOOKUP(...), 0)
エラーのときに0を返すようにしておけば、SUMは正常に動きます。ただし、0を返すと平均が狂います。 平均も出す場合は空文字を返すほうが安全です。→ IFERROR関数の使い方
範囲内に #N/A や #DIV/0! が1つでもあると、SUMもエラーになります。
対策は2つあります。
元のエラーを潰す(推奨)
=IFERROR(VLOOKUP(...), 0)
合計側で無視する
=SUMIF(A2:A100, "<>#N/A")
または AGGREGATE(Excel)や QUERY(スプレッドシート)を使う方法もあります。
ただし、エラーを隠す前に原因を確認してください
#N/A はマスタに無いデータがあるという重要な情報です。詳しくは IFERROR で扱っています。
複数シートをまたいで合計する
同じ形のシートが並んでいる場合、Excelでは次の書き方ができます。
=SUM(4月:6月!B10)
Googleスプレッドシートではこの書き方(3D参照)が使えません
素直に足すか、{} で範囲を縦に結合します。
='4月'!B10 + '5月'!B10 + '6月'!B10
シート数が多いなら、集計用シートに IMPORTRANGE や参照をまとめる方法が確実です。
Excelとの違い
基本の書式・挙動は同じです。 違いは次の点です。
| Excel | スプレッドシート | |
|---|---|---|
3D参照 SUM(Sheet1:Sheet3!A1) | 使える | 使えない |
AGGREGATE(エラー無視の集計) | ある | ない |
| QUERY による集計 | ない | ある |
列全体指定 SUM(A:A) | 使える | 使える |
スプレッドシートでは AGGREGATE の代わりに QUERY や FILTER を使います。
「合計が合わない」を実際に潰す手順
SUMで最も多い相談は「見た目の数字を足した値と、SUMの結果が違う」というものです。原因は限られているので、順番に潰していけば必ず見つかります。
手順1:合計したい範囲の件数を数える
空いたセルに =COUNT(B2:B100) と入れてください。これは数値だけを数えます。次に =COUNTA(B2:B100) と入れます。これは空白以外すべてを数えます。
この2つの数字が違えば、範囲の中に数値でないものが混ざっています。 文字列として入っている数字、スペースだけのセル、他システムから貼り付けた値。SUMはこれらを無視するので、その分だけ合計が小さくなります。
手順2:文字列の数字を見つける
数値は右寄せ、文字列は左寄せで表示されるのが既定です。左寄せのセルがあれば、それが原因です。=ISNUMBER(B2) で1つずつ確かめることもできます。
直し方は、対象の列を選んで「データ」から数値に変換するか、=VALUE(B2) で変換した作業列を作る方法があります。前後に空白が入っている場合は =VALUE(TRIM(B2)) としてください。
手順3:表示の丸めを疑う
小数を含む数値は、表示上は四捨五入されていても内部では元の値のままです。表示されている数字を足しても、SUMの結果とは一致しません。これは不具合ではありません。
表示どおりに計算したい場合は、ROUND関数で実際に丸めてから合計してください。表示形式を変えるだけでは中身は変わりません。
手順4:非表示の行を確認する
SUMは非表示の行も合計します。 フィルタで絞り込んだ状態で見えている行だけを合計したい場合は、SUMではなくSUBTOTALを使ってください。→ SUBTOTAL関数の使い方
手順5:範囲そのものを確認する
行を追加したのに、SUMの範囲が古いままということがよくあります。数式のセルを選ぶと範囲が色枠で表示されるので、目で確かめてください。
範囲の指定で気をつけること
列全体(B:B)を指定するのは避けてください
動作はしますが、100万行を対象にするため、シート全体が重くなる原因になります。特に他の関数と組み合わせているときに効いてきます。
見出し行を範囲に含めても問題ありません
文字列は無視されるためです。ただし、範囲の意味が分かりにくくなるので、データ部分だけを指定するほうが読みやすくなります。
離れた範囲を足すこともできます
=SUM(B2:B10, D2:D10) のようにカンマで区切ります。3つ以上でも構いません。
自分自身を範囲に含めると循環参照になります
B11にSUMを置いて =SUM(B2:B11) と書くとエラーになります。合計セルの1つ上までを範囲にしてください。
行を挿入したときの挙動に注意
範囲の内側に行を挿入すれば自動で範囲が広がりますが、範囲のすぐ下に追加した行は含まれません。表の最終行のさらに下にデータを足していく運用では、これが原因で合計が合わなくなります。
用途による使い分け
| やりたいこと | 使う関数 |
|---|---|
| 単純に足す | SUM |
| 条件に合うものだけ足す | SUMIF |
| 条件が2つ以上 | SUMIFS |
| フィルタで見えている行だけ | SUBTOTAL |
| 掛けてから足す | SUMPRODUCT |
| 件数を数える | COUNT / COUNTA |
| 平均を出す | AVERAGE |
SUMPRODUCTは「単価×数量の合計」を1つの数式で出せます
作業列を作らずに済むので、表を汚さずに集計できます。
合計欄の置き方
合計欄をどこに置くかは、後の作業に影響します。表の下に置くのが習慣になっていますが、上に置くほうが有利な場面もあります。
表の上に置く利点は、スクロールしても見え続けることです。行数が多い表では、下まで移動しないと合計が見えないのは不便です。ウィンドウ枠を固定すれば、常に表示されます。
もうひとつの利点は、行を追加したときに範囲が壊れにくいことです。表の最終行の下に追加していく運用では、下の合計欄との間に行が入るため、範囲の広がり方に注意が必要になります。上に置けばこの問題は起きません。
フィルタとの相性も上のほうが良くなります。表の下に合計を置くと、絞り込んだときに合計行まで対象に含まれることがあります。
一方、印刷では下にあるほうが自然に見えます。帳票として出す場合は、印刷用のシートを別に作り、そこでは下に置くという使い分けができます。
複数の合計を並べる場合も、上のほうが管理しやすくなります。件数、合計、平均、最大、最小を横に並べておけば、表の状態が一目で分かります。
作業用の表は上、印刷用の表は下。この使い分けを覚えておくと、両方の要求を満たせます。
「集計」の関数を全体から見る
数値をまとめる関数群です。同じカテゴリの関数は、つまずく場所も似ています。この記事のほかに48本あります。
このカテゴリで共通するつまずき
空欄と0の扱いが結果を左右します。未入力を0で埋めると平均が下がります。1つで理解した内容は、同じカテゴリの他の関数にもそのまま使えます。
どれを使うかの決め方
条件の数で使う関数が変わります。将来増えるなら複数条件に対応する形にしてください。関数の一覧を眺めて選ぼうとすると、どれも当てはまるように見えて決まりません。
迷ったときは
→ 全関数の一覧 に目的別の索引があります。
数式を書く前の手順
先に決めておけば、書くのは数分で終わります。
1. 出したい結果を一文で書く
「何を、どの条件で、どんな形で出したいか」。この一文が書ければ、関数はほぼ決まります。書けないなら、まだ要件が固まっていません。
2. 元データの型を確認する
空欄と0の扱いが結果を左右します。未入力を0で埋めると平均が下がります。=ISNUMBER(A2) で数値かどうかを確認できます。見た目が同じでも、数値と文字列は別物です。
3. 空欄と0の扱いを決める
未入力なのか、実績が0なのか。表の意味が変わります。どちらとして扱うかを決めてから書いてください。
4. 条件の数を数える
条件の数で使う関数が変わります。将来増えるなら複数条件に対応する形にしてください。将来条件が増える可能性があるなら、最初から複数条件に対応する形にしてください。
5. 共有先の環境を確認する
新しい関数は、古い環境で開くとエラーになります。社外に渡すファイルでは、この一点で選択肢が変わります。
6. 1行だけ書いて確認する
全行にコピーする前に、1行分の結果が正しいかを見てください。間違ったまま広げると、直す手間が増えます。
どの関数でも共通する確認
うまくいかないときに見る場所は、ほぼ決まっています。
参照を固定したか
下方向にコピーする数式では、動いてはいけない参照を固定します。上の数行だけ見て判断しないでください。ずれは下のほうで表面化します。
範囲の行数が揃っているか
複数の範囲を渡す関数では、行数がずれると結果が狂います。エラーにならず値が返るため、気づきにくい種類の間違いです。
型が揃っているか
=ISNUMBER(A2)
数値として入っているかを判定します。システムから書き出したデータでは、これが原因のことが多くあります。
前後に空白が入っていないか
=LEN(A2)&" / "&LEN(TRIM(A2))
数が違えば、余分な空白が入っています。見た目では判別できません。
別の方法で検算したか
同じ数字を別の関数でも出して、突き合わせてください。1つの結果だけを見ても、正しいかどうかは判断できません。
最終行まで確認したか
一番下までスクロールして、結果を見てください。途中から値が変わっていないかを確認します。
引き継ぐときに残すこと
数式は動いていても、意図は残りません。渡す前に、次の点をシート内にメモしてください。3分で終わります。
何を出している数式か
一行で構いません。読めば分かると思っても、数か月後の自分には分かりません。
どの表を参照しているか
参照先のシート名と、更新の担当。別ファイルなら、その場所も書いてください。
該当しないときの扱い
空欄にしているのか、文言を出しているのか、エラーのまま残しているのか。書いていないと、受け取った側は空欄をデータなしと読みます。
触ってはいけない場所
列を挿入すると壊れる数式がある場合、必ず書き残してください。この一行があるだけで、引き継ぎ後の事故が大きく減ります。
使った関数の対応環境
新しい関数を使っている場合、古い環境では開けません。共有の範囲が広がる可能性があるなら、明記してください。
確定した期間は値にする
締めた月の集計は、値貼り付けにしてください。参照元を消しても壊れなくなり、ファイルも軽くなります。
このサイトの収録状況
収録は201本です。カテゴリごとの内訳を出しておきます。
| カテゴリ | 記事数 |
|---|---|
| 目的別 | 51本 |
| 集計 | 47本 ←この記事 |
| 文字列 | 31本 |
| 日付 | 19本 |
| 検索・参照 | 15本 |
| 条件 | 15本 |
| 機能 | 12本 |
| 配列・抽出 | 10本 |
| 関数一覧 | 1本 |
探し方の順番
関数名が分かっているなら検索窓から。やりたいことだけ決まっているなら「目的別」から。近い関数を比べたいなら、同じカテゴリの一覧から入ってください。
記事の構成
どの記事も、書式・実例・つまずきやすいところ・似た関数との使い分けを同じ順番で並べています。1本読めば、他の記事も同じ場所を探せます。
よくある質問
Q. 合計欄だけ0になります
範囲内のすべてが文字列として入っている可能性があります。COUNTで数えて0なら、数値が1つも入っていません。
Q. 小数の合計がわずかにずれます
コンピュータの小数計算の仕組み上、ごく小さな誤差が出ることがあります。金額を扱うなら、ROUNDで丸めてから合計してください。
Q. 時間を合計したら24時間で戻ってしまいます
表示形式が原因です。[h]:mm という形式に変えると、24時間を超えても累計で表示されます。
Q. 複数シートの同じ位置を合計できますか
できます。=SUM(Sheet1:Sheet3!B2) のように書くと、Sheet1からSheet3までのB2を合計します。ただしシートの並び順に依存するので、シートを移動すると結果が変わります。
Q. オートSUMが変な範囲を選びます
自動判定なので、空白行があるとそこで止まります。範囲は手で選び直してください。
Q. 合計を固定して残したいのですが
値として貼り付ければ数式が消えて数値だけが残ります。元に戻せないので、コピーを取ってから実行してください。
Q. マイナスだけ合計したいのですが
=SUMIF(B2:B100, "<0") で負の数だけを合計できます。
Q. 重複を除いて合計できますか
SUM単体ではできません。UNIQUEで重複を除いた一覧を作ってから合計するか、SUMPRODUCTを使います。→ UNIQUE関数の使い方
この分野の他の記事
同じ「集計」の記事です。目的が近いので、こちらで解決しない場合はこちらも見てください。
まとめ
- 書式は
=SUM(範囲)。飛び飛びはカンマ区切り - 列全体
A:Aで指定すると、行が増えても壊れない - 合計が合わない原因は「文字列・範囲不足・非表示行・丸め誤差」の4つ
- フィルタ中の合計は SUBTOTAL
- 条件付きなら SUMIF / SUMIFS