Googleスプレッドシート│QUERY関数で複数シートのデータを一括集計する方法

複数の人や部門ごとに分かれたスプレッドシートのデータを、1つにまとめて集計したい!

そんなときに便利なのが、QUERY関数 × 複数範囲の連結です。

今回は、各担当者のシートにある点数データをまとめ、1セルで全体のデータベースを作成する方法をご紹介します。

データを集計するのにめちゃめちゃ使えます。

目次

集計対象のシート構成

今回は下記のように、同一シート上に複数のデータグループが横に並んでいる構成で解説します(本来は各人が別シートを持っている前提)。

例:

  • A列〜C列 → 一花さん
  • E列〜G列 → 二乃さん
  • I列〜K列 → 三玖さん
  • M列〜O列 → 四葉さん
  • Q列〜S列 → 五月さん

QUERY関数でデータをまとめて取得

次のように QUERY 関数で各人の範囲をまとめて取得し、それをさらに一つの QUERY で囲むことで全体を集約できます。

=QUERY({
  QUERY('シート1'!A2:C6);
  QUERY('シート1'!E2:G6);
  QUERY('シート1'!I2:K6);
  QUERY('シート1'!M2:O6);
  QUERY('シート1'!Q2:S6)
}, "")

ポイント:

  • { … ; … }縦方向に連結
  • 個別 QUERY で構造をそろえることで、1つに集約しやすくなります
  • 最後の "" でフィルター条件なしの全件取得

集計結果のイメージ

集約された結果がこちら

各人のデータが1つの表にまとまります。

応用:合計行の追加やピボット集計も可能

例えば、以下のように各人の点数の合計行を追加したり…

もしくは、科目別×名前ごとのピボット集計を行うこともできます

=QUERY(全体データの範囲, "select B, sum(C) group by B pivot A", 0)

結果:

まとめ

やりたいこと関数でできること
各人のデータをまとめたいQUERY + {} で連結
縦並びで統一表示にしたい; で範囲連結
科目や人別に集計したいQUERY + group by / pivot
合計などを加えたいARRAYFORMULASUM を組み合わせて

1セルに書くだけで、分散していたデータを1つに統合できるのは非常に強力です。

勤怠、売上、点数、工数など、「複数人・複数シート」運用のどんな場面にも応用できます!

Tips:各人が別シートでデータを管理している場合は、IMPORTRANGE と組み合わせれば、外部ファイルからの統合も可能です。

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

WAZAの有料記事のサブスクリプションも開始しました。

目次