Googleスプレッドシートの複数シートを縦につなぐときは、各シートの列の並びとデータ型を先に揃えることが重要です。見出しだけ同じでも、列順が違えば別項目の値が同じ列に並んでしまいます。
シート間の列順とデータ型を検査
- 各シートのヘッダー順(例:日付・顧客名・金額)が一致しているか確認します。
- 結合したいのが同じブック内の複数シートか、別ブックかを分けます。
- 空行や途中の見出し行を含めてよいか決めます。
- 数式が入る先に既存の手入力データがないか確認します。
見出しを除いて縦結合する式を作る
- 元の各シートを保持したまま統合用の別シートを作ります。
- 各シートのヘッダーを1行ずつ比較し、列順・名称・型を揃えます。
- 同じ3列を結合するなら、たとえば
={'東京'!A2:C;'大阪'!A2:C}のように配列のセミコロンで行方向へ結合します。Google公式の配列構文と一致する書き方です。 - 空行を除きたい場合は、統合後の結果に対し
QUERYなどで空欄の行を除きます。 - 統合結果の件数と金額合計を元の各シートの合計と照合します。
追加・空白行の扱いを決める
- 異なるシートに列の追加があると、同じ列位置でも別の意味になることがあります。
- 片方に数式結果の空文字があると、見た目上は空でも集計条件が違う場合があります。
- 結合先へ手入力すると、元シート側の変更時に結果と衝突する可能性があります。
結合後の行数と列対応を確認
- 各シートの先頭と最後のレコードが統合先に含まれているかを確認します。
- 元シートの行数合計と統合結果の実データ件数を比較します。
2シートを結ぶ最小例と、空行を除く例
例として「東京」と「大阪」の両シートにA列=日付、B列=顧客、C列=金額が並び、1行目が見出しであるとします。別の統合シートに ={'東京'!A2:C;'大阪'!A2:C} と入力すると、2行目以降を縦につなぐ配列を作れます。ただし行数が十分に広い範囲をそのまま結ぶと途中の空行も大量に含まれます。空行を除きたいときは、例えば =QUERY({'東京'!A2:C;'大阪'!A2:C},"select * where Col1 is not null",0) を使い、日付が空白のレコードを除外する設計を検討できます。この式では、日付未入力の本物のレコードも除外されるため、最初に業務上の必須列を決めてください。
列順が片方だけ「顧客/日付/金額」ならそのまま結合すると値の意味がずれます。関数を調整する前に元データの列順と見出しを揃える方が確実です。日付・金額の型の違いも、統合後の集計に影響します。
統合後の欠落・二重計上を調べる
東京5件、大阪3件なら、統合先の実レコード数は原則8件です。ただし同一取引が両シートに重複していれば8件表示されても売上合計は二重計上です。取引IDなど元データのキーを確保し、件数・金額合計・ID重複を別々に比較します。QUERY式の3番目の引数は見出し行数で、見出しを除いた配列なら0を指定するのが分かりやすい方法です。
