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が追加されました。
また、元データに空白行が含まれる場合は除外されます。
複数シートのデータを集計する方法
元データについては、これまでの解説で複数シートを結合したものを使用します。重複する項目が含まれる場合に、項目別に集計する方法は以下の通りです。
- UNIQUE関数で、指定した範囲から一意の項目を取得します。
- 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関数を使用する場合は、結合した元データの作成は不要です。