0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

別スプレッドシートの内容を抽出する

Posted at

はじめに

・他のスプレッドシートから内容を引用したかった。
・かつ、シート毎で月別にしたかった。(月初〜月末)

結論

やり方.スプレッドシート
=QUERY(IMPORTRANGE("【引用したいスプレッドシートのURL】", "【引用したいスプレッドシートの名称】!【引用したい対象の範囲】"),"SELECT 【対象範囲から引用したい列】 where 【対象範囲から日付が入力されている引用したい列】 >= date '【指定日付】'",-1)

【対象範囲から引用したい列】 はカンマ区切りで複数指定可能。
where内はandなどで複数指定が可能。

実例.スプレッドシート
=QUERY(IMPORTRANGE("https://docs.google.com/spreadsheets/d/xxxxx/edit?ts=yyyyy#gid=zzzzz", "フォームの回答 1!A:T"),"SELECT Col1,Col20 where Col1 >= date '2020-04-01' And Col1 < date '2020-05-01'",-1)

※ x,y,z箇所は内容を伏せています。
※ 実際にはアクセス許可を与える必要があります。

解説

他のスプレッドシートから内容の引用

やり方.スプレッドシート
=(IMPORTRANGE("【引用したいスプレッドシートのURL】", 【引用したい対象の範囲】")
実例.スプレッドシート
=IMPORTRANGE("https://docs.google.com/spreadsheets/d/xxxxx/edit?ts=yyyyy#gid=zzzzz","A1:T90")

※ 上記の場合、引用したいスプレッドシートのA1〜T90までが、関数を記載したシートに記載される。

指定した列のみを引用

やり方.スプレッドシート
=query('【引用したいシート名】'!【引用したい対象の範囲】, "select 【抽出したい列】", -1)

※ 抽出する対象が同じシート内にある場合は『'【引用したいシート名】'!』は不要。
【抽出したい列】はカンマ区切りで複数指定可能。

実例.スプレッドシート
=QUERY(A:T, "SELECT A, T", -1)

A:Tは行の範囲を絞らなくても大丈夫。

条件に該当する行のみを引用(日付)

やり方.スプレッドシート
=query('【引用したいシート名】'!【引用したい対象の範囲】, "select 【抽出したい列】 where 【引用した対象の列】 【不等号】 date '【条件】'", -1)

※ 抽出する対象が同じシート内にある場合は『'【引用したいシート名】'!』は不要。
whereに指定する条件はandやorで複数指定可能。

実例.スプレッドシート
=query(A:T, "select A, T where T >= date '2020-04-01'", -1)

んー!(PPAP風に統合)

やり方.スプレッドシート
=QUERY(IMPORTRANGE("【引用したいスプレッドシートのURL】", "【引用したいスプレッドシートの名称】!【引用したい対象の範囲】"),"SELECT 【対象範囲から引用したい列】 where 【対象範囲から日付が入力されている引用したい列】 >= date '【指定日付】'",-1)
実例.スプレッドシート
=QUERY(IMPORTRANGE("https://docs.google.com/spreadsheets/d/xxxxx/edit?ts=yyyyy#gid=zzzzz", "フォームの回答 1!A:T"),"SELECT Col1,Col20 where Col1 >= date '2020-04-01' And Col1 < date '2020-05-01'",-1)

※ 【対象範囲から日付が入力されている引用したい列】では、Col【左から数えた数値】で指定する必要がある。

おわりに

  • SQLをかじっていたので、selectやwhereはすんなり受け入れられた。
  • IMPORTRANGE関数を使用する際に、色々な記事があってすんなりいかなかった。
  • 業務時間を優先させた為、日付の自動取得などを調べることまで手が回らなかった。
  • 酔った勢いで結果から分割して解説したが、逆に分かりづらいような気もした。
  • 最近コードをいじらず、エクセルかスプレッドシートと格闘してばっかりだと、改めて思った。

参照記事

queryをimportrangeを使って別スプレッドシートのデータをフィルタリングする - GoogleSpreadSheet
スプレッドシートのQUERY関数で、条件に一致するデータをまとめて抽出する方法
【QUERY関数】where句で日付データを条件にして行を抽出する
【スプレッドシート】QUERY関数の参照にimportrangeを使う

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?