IMPORTRANGE関数を使用してスプレッドシート間でデータを縦に結合するには、IMPORTRANGE関数を使ってインポートし、QUERY関数またはARRAYFORMULAを使用して縦に結合することで、複数月のデータを一つのシートにまとめることができます。
例えば、各月の売上データのシートがあった場合、IMPORTRANGE関数を使ってインポートし、QUERY関数またはARRAYFORMULAを使用して縦に結合することができます。
ステップ1: IMPORTRANGE関数でデータをインポート
IMPORTRANGE関数は、別のスプレッドシートからデータを取り込むために使用されます。この関数の基本構文は次のとおりです。
=IMPORTRANGE("スプレッドシートURL", "シート名!範囲")
ここで、スプレッドシートURL
はデータを取り込む元のスプレッドシートのURLを指し、シート名!範囲
はそのスプレッドシート内の具体的なデータ範囲を示します。
この式では、1月と2月のスプレッドシートからデータをインポートしています。
1月のデータ:
=IMPORTRANGE("https://docs.google.com/spreadsheets/d/JanuarySales_ID", "January!A1:C5")
2月のデータ:
=IMPORTRANGE("https://docs.google.com/spreadsheets/d/FebruarySales_ID", "February!A1:C5")
ステップ2: IMPORTRANGE関数の結果を縦に結合
IMPORTRANGE関数の結果を縦に結合するために、複数のIMPORTRANGEを中括弧 {}
で囲んで配列形式で渡します。これにより、各月のデータを1つの配列として扱うことができます。
ステップ3: QUERY関数でデータをフィルタリング
QUERY関数は、この結合されたデータ配列に対してSQL風のクエリを実行し、特定の条件に基づいてデータをフィルタリングするために使用されます。
基本構文は次のとおりです。
=QUERY(データ範囲, "クエリ")
ここで、データ範囲
は対象となるデータの範囲で、クエリ
はSQLのSELECT文に似た形式でデータのフィルタリング条件を指定します。
この場合のクエリは次のとおりです。
"SELECT * WHERE Col1 IS NOT NULL"
これは、1列目(Col1)がNULLでないすべての行を選択するという意味です。
最終式
このすべてを組み合わせた最終的な式は次のとおりです。
=QUERY({ IMPORTRANGE("https://docs.google.com/spreadsheets/d/JanuarySales_ID", "January!A1:C5"); IMPORTRANGE("https://docs.google.com/spreadsheets/d/FebruarySales_ID", "February!A1:C5") }, "SELECT * WHERE Col1 IS NOT NULL")
この式の処理は次のようになります。
1月のスプレッドシートからデータをインポート。
2月のスプレッドシートからデータをインポート。
1月と2月のデータを縦に結合。
結合されたデータに対して、1列目(Col1)がNULLでない行をすべて選択。
これにより、1月と2月の売上データが一つのシートに縦に結合され、必要なデータだけが表示されます。
Screenshot
Screenshot
ARRAYFORMULAを使用した方法:
=ARRAYFORMULA({
IMPORTRANGE("https://docs.google.com/spreadsheets/d/JanuarySales_ID", "January!A1:C5");
IMPORTRANGE("https://docs.google.com/spreadsheets/d/FebruarySales_ID", "February!A1:C5")
})
ARRAYFORMULAの場合は、シンプルに配列結合されます。
Screenshot
まとめ
Googleスプレッドシートで複数のシートからデータをインポートして縦に結合する方法について解説しました。
覚えておくと便利ですので、ご参考ください。