
Excelで複数のシートに分かれたデータを扱う場面は少なくありません。
特に月ごとのデータや部署別の集計などでは、「別シートの同じセル範囲を合計したい」といったニーズが頻繁に発生します。
本記事では、「エクセル 別シート セル 合計」という検索キーワードで検索されることを重視し、別シートにあるセルを合計する方法を5つご紹介します。
VBAを使った方法などは、初心者の方にもかんたんでオススメです。
① 基本の参照:シート名+セル番地
もっとも基本的な方法は、シート名+セル番地で指定するやり方です。
これは、「Sheet1」「Sheet2」「Sheet3」のA1セルの値を合計しています。
シート数が少ない場合や、指定するセルが固定されている場合に適しています。
② SUM関数を使った合計
複数のシートにまたがるセル範囲を一括で合計するには、SUM関数が便利です。
または、連続したシートの場合は、次のようにシートの範囲指定も可能です。
この書き方は「Sheet1」から「Sheet3」までのすべてのシートにあるA1セルを合計します。
シートが連続している場合の最も効率的な方法です。
③ INDIRECT関数で動的に合計
シート名が変わったり、変数として参照したい場合には、INDIRECT関数を使うと便利です。
ここで、A1セルには「Sheet1」「Sheet2」などのシート名が入力されており、その内容を参照して合計します。

▲各シートのセルA1の値をピックアップできる
複数のシートを動的に処理したい場合は、VBAと組み合わせるか、次の方法を検討してください。
④ 3D参照で範囲全体を合計
Excelの3D参照機能を使うと、同じ構造の複数シートを一括で扱えます。
たとえば、各月の売上が「Jan」「Feb」「Mar」などのシートにある場合:
これは、「Jan」~「Mar」シートのB2~B10の範囲をまとめて合計します。
構成が揃っている月次報告やテンプレートに特に有効です。
⑤ VBAを使って柔軟に合計
大量のシートを一括処理したい場合や、条件付きで合計したい場合は VBA(マクロ)の活用も選択肢になります。
以下は、すべてのシートのA1セルを合計するマクロの例です。
"SumAcrossSheets" という関数そのものを作成します。
Function SumAcrossSheets(rngAddress As String) As Double
Dim ws As Worksheet
Dim total As Double
total = 0
For Each ws In ThisWorkbook.Worksheets
total = total + ws.Range(rngAddress).Value
Next ws
SumAcrossSheets = total
End Function

▲Visual Basicエディタに貼り付けたイメージ
この関数をセルで以下のように使えば、すべてのシートのA1セルを合計できます:
業務で多数のワークシートを扱う場合にとても重宝します。
まとめ
エクセルで別シートのセルを合計する方法は、基本的なシート参照から3D参照、さらにはINDIRECT関数やVBAまで、用途に応じてさまざまな手段があります。
以下に用途別のおすすめを整理します:
| 用途 | おすすめ方法 |
|---|---|
| シート数が少ない場合 | シート名+セル番地 |
| シートが連続している場合 | SUM(Sheet1:Sheet3!A1) |
| シート名をセルに入力したい場合 | INDIRECT関数 |
| 同じ構造のテンプレート利用時 | 3D参照 |
| 柔軟な条件で集計したい場合 | VBA(マクロ) |
「エクセル」「別シート」「セル」「合計」といったキーワードでの検索を意識し、目的に応じた最適な方法を選んでください。
関連記事・広告