【スプレッドシート】串刺し集計する方法!

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

スポンサーリンク

串刺し集計とは?

【スプレッドシート】串刺し集計する方法!

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

スポンサーリンク

GASと関数で一気に集計する

【スプレッドシート】串刺し集計する方法!

【手順1】

  1. メニューの「拡張機能」→「Apps Script」をクリックします。
【スプレッドシート】串刺し集計する方法!

【手順2】

  1. エディタにある元々のコードを消して、以下のコードを貼り付け、「プロジェクトを保存」をクリックします。
  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と入力)。

【数式の解説】

  1. MAP関数が、範囲の各値(1月、2月…)を、LAMBDA関数の変数(sheet)に格納します。
  2. ADDRESS関数が、指定した行と列のセル位置(例:B2)を「文字列」として作り出します。
  3. INDIRECT関数が、「1月!B2」などを、実際のセル参照として値を取得します。

参考:

スポンサーリンク

シート名を手動で選んで集計する

【スプレッドシート】串刺し集計する方法!

【手順1】

  • 集計先のシート(例:合計)を開き、=SUM(を入力します。

💡 ポイント:SUM関数のカッコは閉じず、開きカッコまで入力します。

【スプレッドシート】串刺し集計する方法!

【手順2】

  1. 集計したい1つ目のシート(例:1月)をクリックします。
  2. 集計したいセル(例:B2)を選択します。
  3. 数式入力欄に ,(カンマ) を入力します。
  4. 2つ目、3つ目のシートでも同じ操作(クリックしてカンマ)を繰り返します。

💡 ポイント:数式が被ってセルがうまくクリックできない時は、隣のセルをクリックしてからキーボードの「←」や「→」で移動します。

【スプレッドシート】串刺し集計する方法!

【手順3】

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