エクセル串刺し計算のようにクエリ関数(QUERY)で複数シートを集計:Googleスプレッドシート

エクセルの串刺し計算をGoogleスプレッドシートでも使いたいと思ったことはありませんか?

Googleスプレッドシートにはエクセルのような串刺し計算機能はありませんが、クエリ関数(QUERY)を使うことで、複数のシートにまたがるデータを統合・集計できます。

本記事では、

  • 同じスプレッドシート内の複数シートのデータを統合・集計する方法
  • 別のスプレッドシートにある複数シートのデータをIMPORTRANGE関数とQUERY関数を組み合わせて集計する方法

の2つのケースを紹介します。

目次

クエリ関数(QUERY)とは?

クエリ関数は、Googleスプレッドシートで特定の条件を指定してデータを検索・集計・フィルタリングできる便利な関数です。

基本構文

=QUERY(範囲, "クエリ(データ取得ルール)", ヘッダー行の数)
クエリ関数のメリット
  • 複数のシートのデータを統合できる
  • フィルタリングや集計が簡単
  • シートが増えても数式を少し変更するだけで対応可能

【同じファイル内】複数シートのデータを統合・集計する方法

STEP
データの準備

例えば、1月, 2月, 3月 というシートに売上データがあるとします。

これを統合して、商品ごとの売上合計を求めます。

(対象のデータ範囲:A2:B4)

STEP
クエリ関数を使ってデータを統合・集計

新しいシートのセルに以下の数式を入力します。

クエリ関数を使った数式

=QUERY({ '1月'!A2:B4; '2月'!A2:B4; '3月'!A2:B4 },
       "SELECT Col1, SUM(Col2) GROUP BY Col1 LABEL Col1 '商品名', SUM(Col2) '売上合計'", 0)

数式の説明

  • { '1月'!A2:B4; '2月'!A2:B4; '3月'!A2:B4 } → 各シートのデータを統合(ヘッダー行を除外)
  • SELECT Col1, SUM(Col2) GROUP BY Col1 → 商品ごとに売上を合計
  • LABEL Col1 '商品名', SUM(Col2) '売上合計' → ヘッダーを「商品名」「売上合計」に設定
  • 0 → 既存のヘッダーを含めず、新たにヘッダーを設定
STEP
実行結果

商品ごとの売上合計が表示されます。

元のデータ(1月, 2月, 3月シート)の数値を変更すると、売上合計も更新されます。

クエリ関数では、列の幅や書式設定は反映されないため、必要に応じてフォーマットを合わせます。

【別ファイルのデータを集計】IMPORTRANGE関数 + QUERY関数の活用

Googleスプレッドシートの場合、集計したいデータが別ファイルにあっても IMPORTRANGE関数QUERY関数を組み合わせることで集計が可能です。

IMPORTRANGE関数とは?

IMPORTRANGE関数は、別のスプレッドシートファイルからデータを取得する関数です。

基本構文

=IMPORTRANGE("スプレッドシートのURL", "シート名!範囲")

例えば、

  • ファイルA  1月
  • ファイルB  2月
  • ファイルC  3月

これらのファイルに分かれて売上データがある場合、統合して集計するには次の数式を入力します。

STEP
スプレッドシートを開く

新しいスプレッドシートを開くか、既存のファイルで新しいシートを作成します。

STEP
クエリ関数を入力(別ファイルのデータを集計)

新しいシートのセルに以下の数式を入力します。(例ではA1セルに入力)

別ファイルのデータを集計する数式

=QUERY({IMPORTRANGE("URL_A", "1月!A2:B4");
        IMPORTRANGE("URL_B", "2月!A2:B4");
        IMPORTRANGE("URL_C", "3月!A2:B4")},
       "SELECT Col1, SUM(Col2) GROUP BY Col1 LABEL Col1 '商品名', SUM(Col2) '売上合計'", 0)

数式の説明

  • IMPORTRANGE("URL_A", "1月!A2:B4") → 別のスプレッドシートから「1月」シートのデータを取得。
  • IMPORTRANGE("URL_B", "2月!A2:B4") → 別のスプレッドシートから「2月」シートのデータを取得。
  • IMPORTRANGE("URL_C", "3月!A2:B4") → 別のスプレッドシートから「3月」シートのデータを取得。
  • {...; ...; ...} → 各月のデータを統合。
  • SELECT Col1, SUM(Col2) GROUP BY Col1 → 商品名ごとに売上を合計。
  • LABEL Col1 '商品名', SUM(Col2) '売上合計' → ヘッダー名を設定。
  • 0 → ヘッダーを新たに指定するため、元のヘッダーを削除。
参考:スプレッドシートファイルURLの確認方法

GoogleスプレッドシートのURLは、アドレスバーに表示されています。

以下の方法で確認できます。

  1. スプレッドシートを開きます。
  2. ブラウザのアドレスバーに表示されているURLのうち、https://docs.google.com/spreadsheets/d/ の後に続く文字列ファイルIDまでをコピーします。
  3. 例: https://docs.google.com/spreadsheets/d/ABCDEFGHIJKLMNO1234567890/edit#gid=0 であればhttps://docs.google.com/spreadsheets/d/ABCDEFGHIJKLMNO1234567890までをコピー

このURLを IMPORTRANGE 関数に使用すると、他のスプレッドシートのデータを参照できます。

初回実行時の注意

IMPORTRANGE関数を初めて使用すると、「アクセスを許可」というメッセージが表示されるため、許可ボタンを押す必要があります。

STEP
実行結果

各ファイルの集計データが表示されます。

まとめ

Googleスプレッドシートでは、QUERY関数を活用することでエクセルの串刺し計算のように複数シートのデータを統合・集計できます。

また、IMPORTRANGE関数を組み合わせることで、別のスプレッドシートのデータも集計可能です。

クエリ関数を使って、スプレッドシートでのデータ集計をより効率的に進めてみませんか。

さらに、GASを活用すればシートの数が増減しても自動でデータを取得し、柔軟な集計が可能になります。

弊社では、Google Apps Script(GAS)を活用した業務効率化のサポートを提供しております。

GASのカスタマイズやエラー対応にお困りの際は、ぜひお気軽にご相談ください。

また、ITツールの導入支援やIT導入補助金の申請サポートも行っております。

貴方の業務改善を全力でサポートいたします。

お問い合わせはこちら

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次