Googleスプレッドシート応用
他のスプレッドシートからQUERYで取得

Google スプレッドシートの応用編です
公開日:2016-09-25 最終更新日:2021-04-14

他のスプレッドシートからQUERYで取得

Googleスプレッドシートで他のスプレッドシート(他のブック)から、


QUERY関数を使って、データを取得します、

スプレッドシートでは、Excelのような単純な参照は、他のブックに対しては出来ません。

QUERY関数を使って条件付き集計
Googleスプレッドシートで、QUERY関数を使って条件に合致したデータを集計します、QUERY関数は、クエリ言語を使用してクエリを実行しデータを取得します。使われるクエリ言語は、GoogleVisualizationAPIのクエリ言語になります。
こちらの、別ブックからの集計版になります。
QUERY関数の基本については、上記のページを参照してください。

以下の二つのスプレッドシートを使います。

スプレッドシート 参考画像

Google スプレッドシート 画面


部署別集計に、売上明細を部署別に集計します。

シートをコピーして使っても良いですが、データが変更されるたびにコピーし直しが発生してしまいます。
Googleスプレッドシートでシートをコピーします、同一ブック(同じスプレッドシート)内にコピーする場合と、別ブック(別のスプレッドシート)にコピーする場合があります。特に、シートをコピーして新規ブックを作成したい場合は、Excelに比べて少々面倒です。
そこで、データがリンクした状態で参照できるようにしたいという事です。


スプレッドシートキー

Excelで言えばファイル名に相当します。
スプレッドシート(ブック)の場合は、
URIの一部に、ファイル名入っています。

Google スプレッドシート 画面

https://docs.google.com/spreadsheets/d/○△□/edit#gid=0

URIの、この「○△□」の部分を、
スプレッドシートキー
と言います。
このスプレッドシートキーをコピーしておきましょう。


QUERY関数にIMPORTRANGE関数を組み込む

QUERY関数の構文
QUERY(データ, クエリ, [見出し])

IMPORTRANGE関数の構文
IMPORTRANGE(スプレッドシートキー, 範囲の文字列)

この二つの関数を組み合わせます。

QUERYの第1引数のデータに、IMPORTRANGEを使います。

全体の数式は、
=QUERY(IMPORTRANGE("○△□","シート1!A:D"),"クエリ",1)

このようになります。
「○△□」は、スプレッドシートキーです。

このクエリに入れる、クエリ文は、
select Col2,SUM(Col4) where Col1>=date '2016-09-01' and Col1<=date '2016-09-03' group by Col2

列の指定は、Col1,Col2,Col3,・・・と、Colに続けて列数
を指定します。
このColは、最初のCが大文字、olが小文字になります。
全て小文字でcol1と指定してみたところ、エラーとなってしまいました。

'2016-09-01''2016-09-03'の部分は、
A2セルとB2セルをTEXT関数で編集します。
'"&TEXT(A2,"yyyy-mm-dd")&"'
'"&TEXT(B2,"yyyy-mm-dd")&"'

完成する数式は、※以下の数式は途中改行しています。
=QUERY(IMPORTRANGE("○△□","シート1!A:D"),
"select Col2,SUM(Col4)
where Col1>=date '"&TEXT(A2,"yyyy-mm-dd")
&"' and Col1<=date '"&TEXT(B2,"yyyy-mm-dd")
&"' group by Col2",1)


となります。

これを、A4セルに入れます。


結果

スプレッドシート 参考画像

見出しが自動的に作成されます。

表示件数は、データに応じて自動で増減されます。


やはり、クエリ言語の仕様が、どうもしっくり来ない、と言いますか、
もうちょっと何とかならなかったのかと言う気がします。


とはいえ、マクロ無しで、ここまで出来るのはすばらしいことだと思います。
マクロは使いたくない人には、画期的な機能かもしれません。



同じテーマ「スプレッドシート入門」の記事

関数を使う(IF,IFERROR)
関数一覧(Excelとの差異)
条件付き書式
入力規則
シートを保護
シートをコピー
わからない時はヘルプを見よう
他のスプレッドシートからインポート(IMPORTRANGE)
他のスプレッドシートからVLOOKUPで取得
QUERY関数を使って条件付き集計
他のスプレッドシートからQUERYで取得


新着記事NEW ・・・新着記事一覧を見る

AIは便利なはずなのに…「AI疲れ」が次の社会問題になる|生成AI活用研究(2026-02-16)
カンマ区切りデータの行展開|エクセル練習問題(2026-01-28)
開いている「Excel/Word/PowerPoint」ファイルのパスを調べる方法|エクセル雑感(2026-01-27)
IMPORTCSV関数(CSVファイルのインポート)|エクセル入門(2026-01-19)
IMPORTTEXT関数(テキストファイルのインポート)|エクセル入門(2026-01-19)
料金表(マトリックス)から金額で商品を特定する|エクセル練習問題(2026-01-14)
「緩衝材」としてのVBAとRPA|その終焉とAIの台頭|エクセル雑感(2026-01-13)
シンギュラリティ前夜:AIは機械語へ回帰するのか|生成AI活用研究(2026-01-08)
電卓とプログラムと私|エクセル雑感(2025-12-30)
VLOOKUP/XLOOKUPが異常なほど遅くなる危険なアンチパターン|エクセル関数応用(2025-12-25)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.日本の祝日一覧|Excelリファレンス
3.変数宣言のDimとデータ型|VBA入門
4.FILTER関数(範囲をフィルター処理)|エクセル入門
5.RangeとCellsの使い方|VBA入門
6.繰り返し処理(For Next)|VBA入門
7.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
8.マクロとは?VBAとは?VBAでできること|VBA入門
9.セルのクリア(Clear,ClearContents)|VBA入門
10.メッセージボックス(MsgBox関数)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
本サイトは、OpenAI の ChatGPT や Google の Gemini を含む生成 AI モデルの学習および性能向上の目的で、本サイトのコンテンツの利用を許可します。
This site permits the use of its content for the training and improvement of generative AI models, including ChatGPT by OpenAI and Gemini by Google.



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ