
Googleスプレッドシートには、Excelのような標準の串刺し機能がありません。この記事では、GAS(スクリプト)を使って全シートを集計する方法から、初心者でも簡単な「手動での集計」で分かりやすく解説しているので、ぜひ参考にしてみてください。
串刺し集計とは?

複数のシートにある「項目や並びが同じ表」を、一気に集計する方法です。
GASと関数で一気に集計する

【手順1】
- メニューの「拡張機能」→「Apps Script」をクリックします。

【手順2】
- エディタにある元々のコードを消して、以下のコードを貼り付け、「プロジェクトを保存」をクリックします。
- 「実行」をクリックして、正常に作動するかどうかを確認します。※初めて実行する場合は「承認」が必要です。
function SHEET_NAMES() {
return SpreadsheetApp.getActiveSpreadsheet().getSheets().map(s => s.getName());
}
💡ポイント:
- スクリプト内で定義した
SHEET_NAMESという名前が、シート上で使う関数名になります。

【手順3】
- シートの空いている場所に、作成した関数(例:
=SHEET_NAMES())を入れ、すべてのシート名を取得します。

【手順4】
- 集計したいセルに以下のような数式を入力し、オートフィルでコピーします。
- 例:
=SUM(MAP($A$2:$A$4, LAMBDA(sheet, INDIRECT(sheet & "!" & ADDRESS(ROW(B2), COLUMN(B2), 4)))))
💡 ポイント:
MAP(範囲,...):集計したいシート名の範囲(例:$A$2:$A$4)を絶対参照で指定します。※集計先のシート(例:合計)は範囲から外します。ROW(B2), COLUMN(B2):各シートから集計したい「最初のセル番地」をそのまま入れます(例:B2セルの値を集計したいならB2と入力)。
【数式の解説】
- MAP関数が、範囲の各値(1月、2月…)を、LAMBDA関数の変数(sheet)に格納します。
- ADDRESS関数が、指定した行と列のセル位置(例:B2)を「文字列」として作り出します。
- INDIRECT関数が、「
1月!B2」などを、実際のセル参照として値を取得します。
参考:
シート名を手動で選んで集計する

【手順1】
- 集計先のシート(例:合計)を開き、
=SUM(を入力します。
💡 ポイント:SUM関数のカッコは閉じず、開きカッコまで入力します。

【手順2】
- 集計したい1つ目のシート(例:1月)をクリックします。
- 集計したいセル(例:B2)を選択します。
- 数式入力欄に
,(カンマ) を入力します。 - 2つ目、3つ目のシートでも同じ操作(クリックしてカンマ)を繰り返します。
💡 ポイント:数式が被ってセルがうまくクリックできない時は、隣のセルをクリックしてからキーボードの「←」や「→」で移動します。

【手順3】
- 最後のシートまで選択し終えたら、そのまま
Enterを押して確定します。 - セルの右下にカーソルを合わせ、十字(+)になったらドラッグ(オートフィル)することで、数式をコピーできます。