各所で集めたデータをもとにまとめたサマリーを作ることがあったのでメモ
複数のスプレッドシートや複数のシートのデータをつなげたい、その後集計などをしたい場合に使う
IMPORTRANGEで他のシートや他のスプレッドシートのデータを取得してさらにつなげる
方法
{}
で囲ってそれぞれを縦の場合は;
、横の場合は,
でつなぐ
縦方向
SQLでいうUNIONのイメージ
={IMPORTRANGE("id1", "シート名!A1:B5"); IMPORTRANGE("id2", "シート名!A1:B5")}
最初の方のシートが何行目までかという範囲指定は必要そうだった(指定しないとエラーで読み込めなかった)
もとのデータで行が追加されたら都度変更する必要があるので若干不便ではあるがつなげることができる
上がid1
のデータ、下がid2
のデータ
※ 2022-12-22追記
執筆時は見つけられなかったが、下記のように書くとIMPORTRANGEで参照するシートの行数が変わっても柔軟に取得してくれる
=QUERY( { QUERY(IMPORTRANGE("id1","シート名!A2:B"), "SELECT *"); QUERY(IMPORTRANGE("id2","シート名!A2:B"), "SELECT *") }, "WHERE Col1 IS NOT NULL" )
QUERY
で囲むことで中のQUERY
の結果行数が変わったとしても変わった結果からさらにQUERYで表示してくれるよう
求めていたのはこれ感がすごい
横方向
={IMPORTRANGE("id1", "シート名!A1:B5"), IMPORTRANGE("id2", "シート名!A1:B5")}
左がid1
のデータ、右がid2
のデータ
INDIRECTを使って動的に範囲指定できればさらに使いやすいがサクッとできなかったためここまで