Googleスプレッドシートで複数シートのデータをまとめるQUERY関数

スプレッドシートで複数シートのデータを集計する方法

Googleスプレッドシートで、複数シートのデータを1つにまとめる方法をご紹介します。データが追加されたときに自動更新する方法や、複数シートのデータを項目別に集計する方法についても解説しているので、ぜひ参考にしてみてください。

スポンサーリンク

複数シートのデータを並べる方法

スプレッドシートで複数シートのデータを並べる方法

複数シートのデータを1つのシートに並べる場合の入力方法は、以下の通りです。配列を表す中括弧を使用して、各シートのデータを連結しています。

入力方法: ={‘シート名1’!範囲 ; ‘シート名2′!範囲 [;’シート名3’!範囲]…}

まず結合先のシートを開き、開き中括弧( ={ )まで入力します。

次に、結合元のシート名をクリックしてください。元データの範囲を囲うと中括弧内に自動でシート名とセル範囲 が入るので、セミコロン( ; )を打って次のシートに移動します。

例のように青い枠線と選択したいセル(A2)が重なってしまっている場合は、右下のセル(B6)から左上方向にセル範囲を囲いましょう。

スプレッドシートで複数シートのデータを並べる方法

同じように、シート数分のセル範囲をセミコロンで区切りながら入力していきます。

最後に中括弧( } )を閉じて[Enter]を押すと、結合先のシートに結合元のデータが並びました。

スプレッドシートで複数シートのデータを並べる方法

例のように区切り記号をカンマ(,)にすると、各シートのデータを横方向に連結できます。

これは配列において行区切りはカンマ(,)、列区切りはセミコロン(;)と決まっているためです。

スポンサーリンク

可変な複数シートのデータをまとめる方法

スプレッドシートで複数シートのデータをまとめる方法

結合元データから空白行を除く場合や、データの追加に対応する方法です。QUERY関数についてはかなりのボリュームになるので、詳しくはQUWEY関数の使い方をご参照ください。

例:=QUERY({‘シート1′!A2:B;’シート2’!A2:B},”SELECT* where Col1 is not null”)

全データを抽出する場合は、SELECT区を省略しても問題ありません。

スプレッドシートで複数シートのデータをまとめる方法

追加されたデータも連結するために、データ範囲に列全体(A:B)を指定しましょう。

今回は見出しを除きたいので、開始列に行数を追加(A2:B)して2行目以降の列全体を指定します。

列全体を指定すると空白行も連結されますが、これをQUERY関数で回避しています。

結合元シートにデータXを追加すると、結合先のシートにもデータXが追加されました。

また、元データに空白行が含まれる場合は除外されます。

スポンサーリンク

複数シートのデータを集計する方法

スプレッドシートで複数シートのデータを集計する方法

元データについては、これまでの解説で複数シートを結合したものを使用します。重複する項目が含まれる場合に、項目別に集計する方法は以下の通りです。

  1. UNIQUE関数で、指定した範囲から一意の項目を取得します。
  2. SUMIF関数はUNIQUE関数で取得した項目と一致するセルを検索し、合計を返します。

UNIQUE関数は指定した範囲から 重複する行 を削除し、一意の行だけを返します。

範囲に A2:A のように入力すると、A列の2行目以降を指定可能です。

UNIQUE関数の構成要素:(範囲, [列の比較], [回数指定])

SUMIF関数は 検索範囲 から、指定した条件と一致するセルの合計を返します。

SUMIF(A2:B,D2,B2:B)のように、条件にUNIQUE関数で取得した項目を指定してください。オートフィルで数式をコピーすると、一意の項目ごとに集計が可能です。

SUMIF関数の構成要素:(検索範囲, 条件, [合計範囲])

スプレッドシートで複数シートのデータを集計する方法

これをQUERY関数で行う場合は、次のような数式になります。

=QUERY({‘シート1′!A2:B;’シート2’!A2:B}, “SELECT Col1,sum(Col2) where Col1 is not null group by Col1”)

詳しい解説はQUWEY関数の GROUP BY句の使い方 をご参照ください。

QUERY関数を使用する場合は、結合した元データの作成は不要です。

タイトルとURLをコピーしました