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

エクセルの串刺し計算をGoogleスプレッドシートでも使いたいと思ったことはありませんか?
Googleスプレッドシートにはエクセルのような串刺し計算機能はありませんが、クエリ関数(QUERY)を使うことで、複数のシートにまたがるデータを統合・集計できます。
本記事では、
- 同じスプレッドシート内の複数シートのデータを統合・集計する方法
- 別のスプレッドシートにある複数シートのデータをIMPORTRANGE関数とQUERY関数を組み合わせて集計する方法
の2つのケースを紹介します。

クエリ関数(QUERY)とは?
クエリ関数は、Googleスプレッドシートで特定の条件を指定してデータを検索・集計・フィルタリングできる便利な関数です。
基本構文:
=QUERY(範囲, "クエリ(データ取得ルール)", ヘッダー行の数)
- 複数のシートのデータを統合できる
- フィルタリングや集計が簡単
- シートが増えても数式を少し変更するだけで対応可能
【同じファイル内】複数シートのデータを統合・集計する方法


例えば、1月
, 2月
, 3月
というシートに売上データがあるとします。
これを統合して、商品ごとの売上合計を求めます。
(対象のデータ範囲:A2:B4)

新しいシートのセルに以下の数式を入力します。
クエリ関数を使った数式
=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
→ 既存のヘッダーを含めず、新たにヘッダーを設定

商品ごとの売上合計が表示されます。
元のデータ(1月
, 2月
, 3月
シート)の数値を変更すると、売上合計も更新されます。
クエリ関数では、列の幅や書式設定は反映されないため、必要に応じてフォーマットを合わせます。
【別ファイルのデータを集計】IMPORTRANGE関数 + QUERY関数の活用
Googleスプレッドシートの場合、集計したいデータが別ファイルにあっても IMPORTRANGE関数とQUERY関数を組み合わせることで集計が可能です。
IMPORTRANGE関数は、別のスプレッドシートファイルからデータを取得する関数です。
基本構文:
=IMPORTRANGE("スプレッドシートのURL", "シート名!範囲")
例えば、
ファイルA
1月ファイルB
2月ファイルC
3月

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

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

新しいシートのセルに以下の数式を入力します。(例では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は、アドレスバーに表示されています。
以下の方法で確認できます。
- スプレッドシートを開きます。
- ブラウザのアドレスバーに表示されているURLのうち、
https://docs.google.com/spreadsheets/d/
の後に続く文字列ファイルIDまでをコピーします。 - 例:
https://docs.google.com/spreadsheets/d/ABCDEFGHIJKLMNO1234567890/edit#gid=0
であればhttps://docs.google.com/spreadsheets/d/ABCDEFGHIJKLMNO1234567890
までをコピー
このURLを IMPORTRANGE
関数に使用すると、他のスプレッドシートのデータを参照できます。

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

各ファイルの集計データが表示されます。
まとめ
Googleスプレッドシートでは、QUERY関数を活用することでエクセルの串刺し計算のように複数シートのデータを統合・集計できます。
また、IMPORTRANGE関数を組み合わせることで、別のスプレッドシートのデータも集計可能です。
クエリ関数を使って、スプレッドシートでのデータ集計をより効率的に進めてみませんか。
さらに、GASを活用すればシートの数が増減しても自動でデータを取得し、柔軟な集計が可能になります。

弊社では、Google Apps Script(GAS)を活用した業務効率化のサポートを提供しております。
GASのカスタマイズやエラー対応にお困りの際は、ぜひお気軽にご相談ください。
また、ITツールの導入支援やIT導入補助金の申請サポートも行っております。
貴方の業務改善を全力でサポートいたします。
コメント