質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

解決済

2回答

3020閲覧

Google スプレッドシートのクエリについて

freddie1991

総合スコア12

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

1クリップ

投稿2017/04/25 03:14

現在Googleスプレッドシートを使い他のスプレッドシートから
名前を参照して集計をしているのですが、日付と名前をを条件に抽出をしたいですが
やり方はわかりません。

現在の名前での抽出するための関数がこちらになります。

=iferror(sum(QUERY(IMPORTRANGE("スプレッドシートキー","タブ名!A:L"),"select Col集計対象列番号 where Col名前列番号 ='"&A3&"'",1)),0)

参照先のスプレッドシートには
日---担当-----集計対象
1 | A | 3 |
1 | B | 4 |
4 | A | 1 |
5 | A | 0 |
7 | C | 5 |
8 | A | 6 |
9 | C | 2 |
9 | B | 1 |
このような表記です。
※日の列は4/1なら1と表記されています。

上記関数だと現在の集計は
担当---集計合計
A | 10
B | 5
C | 7
のようにまとめられます。

これを日付条件を付けて集計を取りたいです。
日付の条件を付ける(1~7)
担当---集計合計
A | 4
B | 4
C | 5
のように抽出したいです。

説明下手で申し訳ございません。
仕事で使うのでご回答いただけれると幸いでございます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

=IFERROR(QUERY(IMPORTRANGE("スプレッドシートキー","範囲"),"select Col2,sum(Col3) where Col1>=1 and Col1<=7 group by Col2 label sum(Col3) ''"),"")

1,7をセル参照でやりたい場合は、

=IFERROR(QUERY(IMPORTRANGE("スプレッドシートキー","範囲"),"select Col2,sum(Col3) where Col1>="&参照セル&" and Col1<="&参照セル&" group by Col2 label sum(Col3) ''"),"")

ちょっと趣旨と違ってきちゃうかもしれませんが。1行1行にQUERYを動かしたいのですかね。

投稿2017/04/25 12:41

true

総合スコア440

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

freddie1991

2017/06/05 02:38

ご返答ありがとうございます! とても参考になりました。 私の説明不足で大変申し訳ございません。 これを日付条件を付けて集計を取りたいです。 日付の条件を付ける(1~7) 担当---集計合計 A | 4 B | 4 C | 5 のように抽出したいです。 とのことでしたが A | 4 B | 4 C | 5 D | 0 E | 0 F | 0 のようにしたいです。 以上の関数だと適応する人物しか反映されないかと思いますが A~Fのメンバーは参加していなくても0で返したいのでIFERRORで0にしています。 ※抽出先は1列にA~Fのように先に記入されています。
true

2017/06/08 10:38

たとえば、 IMPORTRANGEを使ってシート1にまるまる内容をコピーしておき、 シート2のA列にA,B...Fと並んでいて、B1に=SUMIFS('シート1'!C:C,'シート1'!B:B,A1,'シート1'!A:A,">=1",'シート1'!A:A,"<=7")、これを下方にコピー。 QUERYに拘る必要はないと思いますよ。
freddie1991

2017/06/21 19:06

ご返信ありがとうございます! そうですねそのやり方もいいですね! ただ、参照先のスプレッドシートが100以上ございます。 なので名簿的なものを作成しIMPORTRANGEを使って名簿に一気に集計をしていました。 その日付の条件抽出できる方法はないでしょうか?
guest

0

QUERY関数のところだけ書かせてもらいます
セルA1から
日|担当|集計対象|
1| A |3|
1| B |4|
4| A |1|
5| A |0|
7| C |5|
7|D|0|
8| A |6|
9| C |2|
9| B |1|

だとして、
=query(A:C,"select B,sum(C) where A <= 7 and A>=1 group by B")
と書けば 日付範囲指定して、集計できそうですが、外してますでしょうか?

結果↓
担当 sum 集計対象
A 4
B 4
C 5
D 0

投稿2017/06/27 04:45

beerbike

総合スコア21

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問