- 作成日 : 2025年9月22日
スプレッドシートで合計を求めるには?SUM関数の基本から応用まで
Googleスプレッドシートで数値データの合計を求めることは、売上管理、経費計算、在庫管理など、あらゆるビジネスシーンで必要不可欠な作業です。単純な合計から複雑な条件付き集計まで、適切な関数を使いこなすことで、データ分析の効率と精度を高めることが期待できます。
この記事では、基本的なSUM関数の使い方から、複数条件での合計、縦一列の範囲指定、スマホでの操作方法、そして合計できない場合のトラブルシューティングまで、実務で役立つ主要な方法を解説します。
目次
スプレッドシートでデータの合計を求める基本的な方法
スプレッドシートで最も頻繁に使用される関数の一つがSUM関数です。基本的な構文は「=SUM(範囲)」で、指定した範囲内の数値をすべて合計します。たとえば、A1からA10までのセルの合計を求める場合、「=SUM(A1:A10)」と入力します。この簡単な数式により、10個のセルの値が瞬時に合計されます。
SUM関数の入力方法にはいくつかのアプローチがあります。最も基本的な方法は、合計を表示したいセルをクリックし、「=SUM(」と入力してから、合計したい範囲をマウスでドラッグして選択する方法です。選択が完了したら、Enterキーを押すか、閉じ括弧「)」を入力してEnterキーを押します。この視覚的な選択方法は、範囲を間違えにくく、初心者にも扱いやすい方法です。
複数の範囲を合計することも可能です。「=SUM(A1:A10,C1:C10,E1:E10)」のように、カンマで区切って複数の範囲を指定できます。また、個別のセルを指定することもでき、「=SUM(A1,B5,C10,D15)」のような形式で、離れた位置にあるセルの値を合計できます。この柔軟性により、表のレイアウトに関わらず必要なデータを集計できます。
オートSUM機能の活用
スプレッドシートには、SUM関数を自動的に挿入するオートSUM機能が搭載されています。この機能を使用すると、クリック一つで適切な範囲を自動検出し、合計式を作成してくれます。データの最後の行または列の隣のセルを選択し、ツールバーの「Σ」(シグマ)アイコンをクリックするだけで、自動的にSUM関数が挿入されます。
オートSUM機能は、連続したデータ範囲を自動的に認識します。たとえば、B2からB10にデータが入力されている場合、B11セルでオートSUMを実行すると、自動的に「=SUM(B2:B10)」という数式が作成されます。空白行があると、そこで範囲が区切られるため、意図しない範囲が選択される場合は手動で調整が必要です。
キーボード操作でSUMを挿入したい場合は、まず[ヘルプ]→[キーボード ショートカット]で「互換ショートカットを有効にする」をオンにしてください。オンの環境ではAlt+=(Windows)や⌘+Shift+T(Mac)が使える場合がありますが、環境差で動作しないこともあるため、確実な方法としてはツールバーのΣ(関数)から「SUM」を選んで挿入してください。なお、Σは原則として“選択中の1セル”にSUMを挿入します。複数列を一度に自動で合計セルへ入力する機能は想定されていません。
行と列の合計を同時に求める方法
実務では、行の合計と列の合計を同時に求める必要がよくあります。たとえば、月別・部門別の売上表で、各月の合計(行の合計)と各部門の合計(列の合計)を計算する場合です。この作業を効率的に行う方法をいくつか紹介します。
表全体の縦横合計を一度に自動配置する機能はありません。列の合計は、(テーブルを使用している場合)テーブルメニューから「表のフッター(合計行)」を表示して各列をSUMに設定するか、最下行にSUMを入れて横方向にコピーします。行の合計は各行の最右列に「=SUM(該当範囲)」を入れて下方向にコピーするか、「=BYROW(B2:F10,LAMBDA(r,SUM(r)))」のような配列数式でまとめて計算します。右下の総合計は「=SUM(行合計の列)」または「=SUM(列合計の行)」で求めます。
この方法により、一度の操作で表全体の集計が完了します。
手動で設定する場合は、まず最下行に列の合計を設定します。各列の最下行セルに「=SUM(B2:B10)」のような数式を入力し、横方向にコピーします。次に、最右列に行の合計を設定します。各行の最右列セルに「=SUM(B2:F2)」のような数式を入力し、下方向にコピーします。最後に、右下のセルに「=SUM(B11:F11)」または「=SUM(G2:G10)」を入力して総合計を求めます。
動的な範囲指定による自動更新
データが追加されるたびに合計範囲を手動で更新するのは非効率的です。動的な範囲指定を使用することで、データの追加や削除に自動的に対応する合計式を作成できます。最も簡単な方法は、列全体を指定することです。「=SUM(A:A)」と入力すると、A列のすべての数値が合計されます。
ただし、列全体を指定する場合、合計セル自体も範囲に含まれないよう注意が必要です。循環参照エラーを避けるため、合計セルは範囲外に配置するか、OFFSET関数やINDEX関数を使用して動的に範囲を定義します。「=SUM(A2:INDEX(A:A,COUNTA(A:A)))」という数式は、A2からデータが入力されている最後の行までを自動的に合計します。
テーブル機能を使用する方法も効果的です。データ範囲を選択して「表示形式」→「テーブル」から表形式に変換すると、構造化参照が使用できるようになります。テーブル内でSUM関数を使用すると、自動的にテーブルの列全体を参照し、データの追加や削除に対応します。
スプレッドシートで複数条件に一致するデータを合計する方法
SUMIF関数による単一条件での合計
特定の条件を満たすデータのみを合計したい場合、SUMIF関数を使用します。基本構文は「=SUMIF(条件範囲, 条件, 合計範囲)」です。たとえば、商品名が「商品A」の売上金額のみを合計する場合、「=SUMIF(A:A,”商品A”,B:B)」と入力します。A列で「商品A」と一致する行のB列の値が合計されます。
条件には比較演算子も使用できます。「=SUMIF(B:B,”>10000″,B:B)」という数式は、B列で10000より大きい値のみを合計します。日付条件も指定可能で、「=SUMIF(C:C,”>=”&DATE(2025,1,1),D:D)」のように、特定の日付以降のデータのみを合計できます。文字列と演算子を組み合わせる場合は、アンパサンド(&)で連結することに注意してください。
ワイルドカードを使えば部分一致で合計できます。例えば「A列に『株式会社』を含む行のB列を合計」は「=SUMIF(A:A,”株式会社”,B:B)」です。ワイルドカードは、アスタリスク()=任意の文字列、クエスチョンマーク(?)=任意の1文字、実際の「」「?」を検索したい場合はチルダ(~)を付けて「~*」「~?」と指定します。
アスタリスク()は任意の文字列、クエスチョンマーク(?)は任意の1文字を表します。これにより、完全一致ではない柔軟な条件設定が可能になります。
SUMIFS関数による複数条件での合計
2つ以上の条件をすべて満たすデータを合計する場合、SUMIFS関数を使用します。基本構文は「=SUMIFS(合計範囲, 条件範囲1, 条件1, 条件範囲2, 条件2, …)」です。SUMIF関数と異なり、合計範囲を最初に指定することに注意してください。
実践的な例として、「地域が東京」かつ「商品が商品A」かつ「売上が50000以上」という3つの条件を満たすデータの合計を求める場合、「=SUMIFS(D:D,A:A,”東京”,B:B,”商品A”,C:C,”>=50000″)」と入力します。すべての条件がAND条件として評価され、全条件を満たす行のみが合計対象となります。
日付範囲を条件にすることも頻繁にあります。特定の期間内のデータを合計する場合、「=SUMIFS(E:E,D:D,”>=”&DATE(2025,1,1),D:D,”<=”&DATE(2025,1,31))」のように、開始日と終了日の2つの条件を指定します。この方法により、月次、四半期、年次などの期間集計が簡単に行えます。
OR条件を含む複雑な合計
SUMIFS関数は基本的にAND条件ですが、OR条件を実現するには工夫が必要です。最も簡単な方法は、複数のSUMIF関数を足し合わせることです。「=SUMIF(A:A,”東京”,C:C)+SUMIF(A:A,”大阪”,C:C)+SUMIF(A:A,”名古屋”,C:C)」は、地域が東京、大阪、名古屋のいずれかのデータを合計します。
SUMPRODUCT関数を使用すると、より複雑な条件を表現できます。「=SUMPRODUCT(((A:A=”東京”)+(A:A=”大阪”)+(A:A=”名古屋”))*(B:B=”商品A”)*C:C)」という数式は、地域が3都市のいずれかで、かつ商品が商品Aのデータを合計します。プラス記号がOR条件、アスタリスクがAND条件を表します。
配列数式を使用する方法もあります。「=SUM(IF((A:A=”東京”)+(A:A=”大阪”)+(A:A=”名古屋”),IF(B:B=”商品A”,C:C,0),0))」という数式を、Ctrl+Shift+Enter(配列数式として入力)で確定します。この方法は複雑ですが、非常に柔軟な条件設定が可能です。
動的な条件設定と管理
条件を別のセルに入力し、それを参照する形で数式を作成すると、条件の変更が容易になります。たとえば、F1セルに地域、G1セルに商品名を入力し、「=SUMIFS(C:C,A:A,F1,B:B,G1)」という数式を使用します。これにより、F1やG1の値を変更するだけで、異なる条件での集計が可能になります。
データ入力規則と組み合わせることで、より使いやすいインターフェースを作成できます。条件入力セルにプルダウンリストを設定し、選択可能な値を制限することで、入力ミスを防ぎながら動的な集計が実現できます。複数の条件セルを用意し、それぞれにリストを設定すれば、複雑な条件の組み合わせも簡単に指定できます。
名前付き範囲を使用すると、数式の可読性が向上します。データ範囲や条件セルに意味のある名前を付けることで、「=SUMIFS(売上金額,地域,選択地域,商品,選択商品)」のような、理解しやすい数式を作成できます。これは、チーム内で共有するスプレッドシートで特に有効です。
スプレッドシートで縦一列の範囲を合計する効率的な方法
列全体の指定と部分範囲の指定
縦一列のデータを合計する最も簡単な方法は、列全体を指定することです。「=SUM(B:B)」と入力すると、B列のすべての数値が合計されます。この方法の利点は、データが追加されても自動的に合計範囲に含まれることです。ただし、列内に合計セルや他の集計値がある場合は、それらも合計に含まれてしまうため注意が必要です。
部分範囲を指定する場合は、開始セルと終了セルを明示的に指定します。「=SUM(B2:B100)」のように、具体的な行番号を指定することで、ヘッダー行や合計行を除外できます。データの増減に対応するため、実際のデータより少し多めの範囲を指定しておくことも一般的です。
動的な終了位置を指定する方法として、INDIRECT関数を使用できます。「=SUM(B2:INDIRECT(“B”&COUNTA(B:B)))」という数式は、B2からB列の最後の非空白セルまでを合計します。COUNTA関数でデータの個数を数え、その位置までを範囲として指定しています。
空白セルと非数値データの処理
縦一列を合計する際、空白セルや文字列が含まれている場合の処理を理解することが重要です。SUM関数は、空白セルを0として扱い、文字列は無視します。そのため、「=SUM(B:B)」という数式は、B列内の数値のみを合計し、文字列や空白は自動的にスキップされます。
エラーを含む列の合計は、エラーを0に置き換えてから集計します。
- 列全体を対象:=SUM(IFERROR(B:B, 0))
- 非連続セルの合計:=SUM(IFERROR({G7,I7,K7,M7,U7,W7,AB7,AE7},0)) や =SUMPRODUCT(IFNA({G7,I7,K7,M7,U7,W7,AB7,AE7})) など。
数値として認識されないテキスト(全角数字など)が含まれている場合、VALUE関数で変換してから合計する必要があります。「=SUMPRODUCT(VALUE(B2:B100))」という数式は、テキスト形式の数字も数値に変換して合計します。ただし、変換できない文字列がある場合はエラーになるため、事前のデータクリーニングが重要です。
フィルタされたデータの合計
表示されているデータのみを合計したい場合、SUBTOTAL関数を使用します。「=SUBTOTAL(109,B:B)」という数式は、フィルタで非表示になっている行を除外して合計します。第一引数の109は、非表示行を無視するSUM関数を意味します。
手動で非表示の行を除外するには =SUBTOTAL(109,範囲) のように100番台コードを使います(9は手動非表示も含む)。フィルタで非表示の行は、コードに関わらず常に集計から除外されます。オートフィルタだけでなく、行の非表示機能を使用している場合も、表示されているデータのみが集計対象となります。これは、一時的に特定のデータを除外して集計したい場合に便利です。
複数の列で異なるフィルタ条件を適用している場合でも、SUBTOTAL関数は正しく動作します。各列に対して個別にSUBTOTAL関数を設定することで、フィルタ状態に応じた動的な集計表を作成できます。フィルタを変更するたびに、自動的に合計値が更新されます。
累積合計の作成
縦一列のデータに対して、累積合計(ランニングトータル)を作成することも頻繁にあります。各行までの合計を順次表示する方法です。最も基本的な方法は、絶対参照と相対参照を組み合わせることです。
C2セルに「=SUM($B$2:B2)」と入力し、この数式を下方向にコピーします。$B$2は絶対参照で固定され、B2は相対参照で行に応じて変化します。結果として、C2には B2の値、C3にはB2からB3までの合計、C4にはB2からB4までの合計が表示されます。
より高度な累積合計として、条件付き累積合計も作成できます。「=SUMIF($A$2:A2,A2,$B$2:B2)」という数式は、同じカテゴリーのデータのみの累積合計を計算します。これは、カテゴリー別の累計推移を追跡する際に有用です。
スマホのスプレッドシートでデータの合計を求める方法
iOS版アプリでのSUM関数の入力
iPhoneやiPadのGoogleスプレッドシートアプリで合計を求める手順を詳しく説明します。まず、合計を表示したいセルをタップして選択します。画面下部に表示される数式バーをタップし、キーボードが表示されたら「=」を入力します。
関数の入力を支援する機能として、「=」を入力すると関数リストが表示されます。「SUM」と入力し始めると、候補として表示されるSUM関数をタップして選択できます。括弧が自動的に追加され、範囲選択モードに入ります。
範囲の選択は、タッチ操作で行います。開始セルをタップしてから、終了セルまでドラッグするか、範囲は「開始セルをタップ → 青いハンドルをドラッグ」または数式に範囲(例 A1:A10)を直接入力して選択します。外付けキーボードがある場合は Shift+矢印 で範囲を広げられます。複数の範囲を選択する場合は、カンマを入力してから次の範囲を選択します。選択が完了したら、チェックマークをタップして確定します。
Android版アプリでの効率的な操作
AndroidスマートフォンやタブレットでのGoogleスプレッドシートアプリも、基本的な操作は似ていますが、インターフェースに若干の違いがあります。セルを選択後、画面上部の「fx」ボタンをタップすると、関数入力画面が開きます。
Android版では、セルを選択して 関数(fx) ボタン → SUM を選ぶか、合計したい範囲をハイライトして下部の計算行「合計」を目的のセルへドラッグして挿入します。提案された範囲が正しければ、そのまま確定できます。修正が必要な場合は、範囲をタップして調整します。
スマホ特有の便利機能と制限
スマホアプリには、PC版にはない便利な機能がいくつかあります。スマート入力機能により、連続したデータを自動認識し、適切な範囲を提案してくれます。また、最近使用した関数の履歴が表示され、頻繁に使う関数に素早くアクセスできます。
ジェスチャー操作も活用できます。2本指でピンチイン・ピンチアウトすることで、表示倍率を調整できます。範囲選択時に見やすい倍率に調整することで、正確な選択が可能になります。また、長押しすることでコンテキストメニューが表示され、よく使う操作にアクセスできます。
一方で、スマホアプリには制限もあります。複雑な数式の編集は画面サイズの制約により困難な場合があります。また、モバイルでもデスクトップ同様に関数を利用でき、ARRAYFORMULA を含む配列計算も可能です(操作は小画面ゆえ編集しづらい場合あり)。重要な作業は、可能な限りPCで行い、スマホは確認や簡単な修正に使用することをお勧めします。
オフライン時の合計機能
スマホアプリの重要な機能として、オフラインでの作業があります。事前に設定を行えば、インターネット接続がない状態でも、SUM関数を含む基本的な操作が可能です。アプリの設定から「オフラインで使用可能にする」をオンにし、必要なファイルをダウンロードしておきます。
オフライン時に作成や編集した合計式は、デバイス内に保存されます。インターネットに接続されると、自動的にクラウドと同期されます。ただし、IMPORTRANGE関数など、外部データを参照する関数はオフラインでは動作しません。
同期の競合を避けるため、オフラインで編集する際は、他のユーザーが同じファイルを編集していないことを確認することが重要です。可能であれば、オフライン編集用の専用ファイルを作成し、後でメインファイルにデータを統合する方法も検討してください。
スプレッドシートで合計できない場合のトラブルシューティング
データ形式の問題と解決方法
合計ができない最も一般的な原因は、データ形式の問題です。数値が文字列として認識されている場合、SUM関数では合計されません。Sheets では「緑三角=文字列」という仕様は一般的ではありません。数値として扱えない場合は、[表示形式]→[数値]を適用するか、VALUE() / TO_PURE_NUMBER() で変換してから合計してください。
この問題を解決するには、まず該当するセルを選択し、表示される警告アイコンをクリックします。「数値に変換」オプションを選択すると、文字列が数値に変換されます。大量のデータがある場合は、VALUE関数を使用して一括変換することも可能です。
全角数字が含まれている場合も、合計できない原因となります。「123」のような全角数字は、数値として認識されません。SUBSTITUTE関数を使用して、全角数字を半角に変換してから合計する必要があります。「=SUM(VALUE(SUBSTITUTE(SUBSTITUTE(A1:A10,”1”,”1″),”2”,”2″)))」のような複雑な数式が必要になる場合もあります。
非表示データと結合セルの影響
非表示の行や列にデータが含まれている場合、通常のSUM関数では非表示データも合計に含まれます。表示されているデータのみを合計したい場合は、前述のSUBTOTAL関数を使用する必要があります。
結合セルも合計計算に影響を与えることがあります。結合されたセルの中で、実際に値を持つのは左上のセルのみです。他のセルは空として扱われるため、範囲指定の際に注意が必要です。結合セルを含む範囲を合計する場合は、結合を解除してから計算することをお勧めします。
条件付き書式やデータ入力規則が原因で、見た目は数値でも実際は文字列として扱われている場合もあります。セルを選択して数式バーを確認し、値の前後に余分なスペースや特殊文字がないか確認してください。
循環参照エラーの対処
合計式で循環参照エラーが発生することがあります。これは、合計範囲に合計セル自体が含まれている場合に起こります。たとえば、A10セルに「=SUM(A:A)」と入力すると、A10自体もA列に含まれるため、循環参照となります。
この問題を解決するには、合計範囲から合計セル自体を除外する必要があります。「=SUM(A1:A9)」のように、明示的に範囲を指定するか、合計セルを別の列に配置します。また、OFFSET関数を使用して、動的に合計セルを除外することも可能です。
循環参照の警告が表示された場合、「ファイル」→「スプレッドシートの設定」から「計算」タブを開き、「反復計算」を有効にすることで、一時的にエラーを回避できます。ただし、これは根本的な解決ではないため、数式の見直しをお勧めします。
大量データでのパフォーマンス問題
数万行を超える大量データの合計を計算する際、処理速度が遅くなることがあります。特に、複雑な条件付き合計や、他のシートを参照する合計では、顕著な遅延が発生する可能性があります。
パフォーマンスを改善するには、まず不要な計算を削減します。列全体(A:A)ではなく、実際のデータ範囲(A1:A10000)を指定することで、処理対象を限定できます。また、揮発性関数(TODAY、NOW、RANDなど)との組み合わせは避け、静的な値を使用することを検討してください。
計算の最適化として、ヘルパー列を使用する方法も効果的です。複雑な条件判定を別の列で行い、その結果を単純なSUM関数で合計することで、全体的な処理速度が向上します。また、ピボットテーブルを使用することで、大量データの集計を効率的に集計できる場合があります。
外部参照とインポート関数のエラー
IMPORTRANGE関数やIMPORTDATA関数を使用して外部データを参照している場合、接続エラーにより合計ができないことがあります。#REF!エラーが表示される場合は、まず参照先のファイルへのアクセス権限を確認してください。
IMPORTRANGE関数を初めて使用する際は、アクセス許可が必要です。エラーが表示されているセルをクリックし、「アクセスを許可」ボタンをクリックすることで、データの取得が可能になります。許可後も、ネットワークの問題や参照先ファイルの変更により、エラーが発生することがあります。
外部データの合計を確実に行うには、エラー処理を組み込むことが重要です。「=IFERROR(SUM(IMPORTRANGE(…)),0)」のように、IFERROR関数でラップすることで、エラー時にも適切な値(この場合は0)を返すようにできます。また、定期的に参照先の状態を確認し、必要に応じて更新することも重要です。
スプレッドシートで合計を正しく集計しよう
Googleスプレッドシートの合計機能は、SUM関数から複雑な条件付き集計まで、幅広いニーズに対応できます。基本的な使い方を理解した上で、SUMIF、SUMIFS、SUBTOTALなどの応用関数を使いこなすことで、あらゆるビジネスシーンでのデータ分析が可能になります。
スマホからも同じような操作ができるため、外出先でも確認や入力ができます。基本を押さえながら応用関数も覚えていくことで、日々のデータ管理を効率的に進められるようになります。
※ 掲載している情報は記事更新時点のものです。
※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。
関連記事
PROPER関数の使い方:文字列を適切な大文字小文字に変換する方法
PROPER関数は、文字列の各単語の先頭文字を大文字に、それ以外を小文字に変換するエクセルの文字列関数です。名前や住所などのデータを統一的な形式に整える際に便利な関数です。 顧客データベースの整備、レポートの体裁統一、輸入データのクリーニン…
詳しくみるエクセルでエンターキーを押した後の移動方向を設定する方法
エクセルを使う際、エンターキーを押した後のセルの移動方向を設定することで、作業効率が向上します。デフォルトでは、エンターキーを押すと下方向にセルが選択されますが、この設定を変更することで、左や右、上に移動させることが可能です。この記事では、…
詳しくみるエクセルで割り算するには?使える関数や一気に割り算する方法を解説
エクセルは多くのビジネスシーンで使用される強力なツールです。計算業務を効率化し、正確なデータ処理を行うために、エクセルの割り算に関する基本的な知識を身につけることが重要です。関数を使った割り算の方法や具体的な手順について解説します。これによ…
詳しくみるエクセルでグラフの単位を設定・編集する方法をわかりやすく解説
エクセルを使ってデータを視覚化する際、グラフの単位設定は重要です。しかし、具体的な単位の指定や変更がうまくできない場合もあります。このガイドでは、エクセルでグラフの単位を効果的に設定・編集する方法について詳しく解説します。簡単な手順を追うこ…
詳しくみるエクセルで電話番号の「0」が消える!原因と一括設定テクニック
エクセルに電話番号を入力すると、先頭の「0」が勝手に消えてしまって困った経験はありませんか?これは、エクセルが数字データを自動的に「数値」として認識し、数学的な意味を持たない先頭のゼロを省略してしまうために起こります。 この記事では、なぜ電…
詳しくみるREPT関数完全ガイド|文字列を繰り返す方法と実践的な活用術
REPT関数は、指定した文字列を指定回数だけ繰り返して表示するExcelの文字列関数です。データの視覚化やレポート作成、簡易的なグラフ作成など、様々な場面で活用できる便利な機能です。 本記事では、REPT関数の基本的な使い方から実践的な応用…
詳しくみる