【Googleスプレッドシート】クエリ関数シリーズ!データ範囲を複数のスプレッドシートから結合する!

スポンサーリンク

はじめに

データ範囲を複数のスプレッドシートから結合する

これまでシリーズで「クエリ関数」について紹介して来ました。これまでは同じスプレッドシートのファイルの中にクエリ関数を書いてデータ抽出を行って来ましたが、前回こちたの記事で、データ元の範囲指定をIMPORTRANGE関数で指定することで、スプレッドシートをもっと便利に使うことができることを紹介しました。

今回は更に発展させて、IMPORTRANGEで指定する範囲を複数に増やし、結合したデータを範囲指定する方法を紹介します!

これまでのクエリ関数シリーズの記事ははこちら

スポンサーリンク

IMPORTRANGE関数

この関数は、複数のスプレッドシートがあった場合、あるスプレッドシートから別のスプレッドシートのデータを参照する時に使う関数です。

※EXCELでは、別ブックの参照は、「=」を使ってマウスで選択するだけでできますが、スプレッドシートではそのような操作ができません。

IMPORTRANGE関数についての詳しい記事はこちら

スポンサーリンク

結合方法

クエリ関数で複数のスプレッドシートから範囲を結合するためには、

  1. IMPORTRANGE関数で複数のスプレッドシートの範囲を結合する
  2. 結合した範囲を、クエリ関数の範囲に指定する

といった具合に進めます。

IMPORTRANGEで複数の範囲を結合する

まずは、IMPORTRANGE関数で複数のスプレッドシートを結合する方法から始めます。

次の2つのスプレッドシートを、3つ目の表示用のスプレッドシートに結合して表示させます。

IMPORTRANGE1
IMPORTRANGE2
表示用のスプレッドシート

「IMPORTRANGE1」「IMPORTRANGE2」の2つの同じ項目(店舗名・商品・売上)で構成されたスプレッドシートです。

結合の方法には以下の2つの種類があります。

  • 横結合
  • 縦結合

横結合の構文

{IMPORTRANGE関数,IMPORTRANGE関数}

横結合の場合は、IMPORTRANGE関数を「,」カンマで繋げて、全体を「{}」でくくります。

表示用スプレッドシートのA1セルに、以下の数式を入れます。

={IMPORTRANGE(“スプレッドシートキー1″,”‘シート1’!A1:C4”), IMPORTRANGE(“スプレッドシートキー2″,”‘シート1’!A1:C4”)}

※IMPORTRANGE関数の使い方が分からない方は先に以下をご覧下さい。

注意店として、初めてIMPORTRANGE関数を使う時は、数式を入力した後、次のようなメッセージが流れてアクセス許可をクリックしないといけないのですが、結合するスプレッドシート全てでアクセス許可が行われている状態じゃないとエラーになってしまいます。

数式の入力結果は下記です。

2つのスプレッドシートがよこにつながって表示されました。これが横結合です。

実務ではあまり使わないかもしれないですね。使いやすいの次の紹介する「縦結合」です。

縦結合の構文

{IMPORTRANGE関数;IMPORTRANGE関数}

基本的に横結合と同じですが、IMPORTRANGERANGE関数をつなげる記号が、「;」セミコロンになります。

={IMPORTRANGE(“スプレッドシートキー1″,”‘シート1’!A1:C4”); IMPORTRANGE(“スプレッドシートキー2″,”‘シート1’!A1:C4”)}

実際に、先程の数式の「,」カンマを「;」セミコロンに変えてみましょう。

図のように、縦につながります。

見出しが2回出てきちゃうのはブサイクなので、範囲の指定に工夫をしましょう。2つ目のIMPORTRANGE関数の読み込み範囲を「A2:C4」に変更します。

2つ目のIMPORTRANGE関数の指定範囲をA2からにすることによって、見出しを除いた範囲を結合しているため、使いやすい形で表示することができました。

クエリ関数に指定の指定する

クエリ関数で複数のスプレッドシートの範囲を結合して指定するには、上記のIMPORTRANGE関数で結合した数式を、そのままクエリ関数のデータ範囲に指定します。

クエリア関数の構文

= QUERY( 範囲, “式”)

式は、簡単に1列目と2列目を表示させるクエリ式を入れます。

※クエリ関数が分からない方は先にこちらをどうぞ。

表示用のスプレッドシートのA1セルに次の数式を入力します。

=QUERY({IMPORTRANGE(“スプレッドシートキー1″,”‘シート1’!A1:C4”); IMPORTRANGE(“スプレッドシートキー2″,”‘シート1’!A2:C4″)},”select Col1,Col2”)

長いですが、先程のIMPORTRANGE関数の結合とQUERY関数を組み合わせているだけです。

※クエリ関数のデータ範囲を、IMPORTRANGEで指定した場合、AやBといった列名での指定はできません。「Col1」「Col2」などの列番号での指定をして下さい。

結合した範囲の1列目、2列目だけがクエリ関数で抽出されました。

まとめ

以上、今回はクエリ関数に複数のスプレッドシートを結合したデータを指定する方法を紹介しました!

同じ形のスプレッドシートを複数人に配布して、集計用のスプレッドシートに結合してリアルタイムに結果処理するなど、スプレッドシート独特の使い方ができそうですね!

コメント

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