質問するログイン新規登録
Google Apps Script

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

Q&A

解決済

3回答

672閲覧

GASでカスタム関数の結果を元データと同期させたい

izumin123

総合スコア37

Google Apps Script

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

0グッド

0クリップ

投稿2022/03/07 07:42

0

0

実現したいこと

GASでカスタム関数を実行した後、参照している元データが変更されたら、カスタム関数の結果も変更されるようにしたい。

具体例

シート1に次のようなデータがある場合

日付会社名金額
3/1A株式会社10,000
3/2B株式会社20,000
3/3A株式会社30,000

シート2でGASで作成したカスタム関数を実行すると、次のような結果が得られます。
[実行内容]=query("シート1","会社名","A株式会社")
[結果]

日付会社名金額
3/1A株式会社10,000
3/3A株式会社30,000

ここで、シート1に4つ目をデータを加えた時、

日付会社名金額
3/1A株式会社10,000
3/2B株式会社20,000
3/3A株式会社30,000
3/4A株式会社40,000

カスタム関数の結果が自動的に理想のようになって欲しいです。
現状は、結果が変わりません。

[シート1変更後の現状]

日付会社名金額
3/1A株式会社10,000
3/3A株式会社30,000

[シート1変更後の理想]

日付会社名金額
3/1A株式会社10,000
3/3A株式会社30,000
3/4A株式会社40,000

GASのカスタム関数を参照データから常に同期させる方法などがあれば知りたいです。

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

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

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

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

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

arcxor

2022/03/07 08:03

> query("シート1","会社名","A株式会社") この query はどういう定義のカスタム関数ですか?
izumin123

2022/03/07 08:54

シート1のテーブルデータのうち、"会社名"の列に"A株式会社"が入る行の値を複数取得し、配列で返すカスタム関数です。
arcxor

2022/03/07 09:01

標準のクエリ関数 https://support.google.com/docs/answer/3093343 とは異なるカスタム関数を定義しているのであれば、そのソースコードを示してください。
izumin123

2022/03/08 00:28

標準のクエリ関数とは異なるカスタム関数です。紛らわしい関数名をつけてしまいすみません。 以下のようなカスタム関数だと思ってもらった方が良いです。 =table("シート1","会社名","A株式会社") ソースコードはかなり長くなってしまったので、添付はしたくないのですが...。 =importRangeを実行した時のように、カスタム関数が参照元のデータと常に同期する方法がないかなと思って質問しています。
guest

回答3

0

自己解決

こちらのサイトで解決しました。
Google Apps Scriptを用いてスプレッドシート上のカスタム関数をリフレッシュする
https://qiita.com/tanaike/items/3e1bca80f87b690f782e

投稿2022/03/15 00:35

編集2022/03/15 00:38
izumin123

総合スコア37

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

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

0

標準のクエリ関数とは異なるカスタム関数です。紛らわしい関数名をつけてしまいすみません。
以下のようなカスタム関数だと思ってもらった方が良いです。
=table("シート1","会社名","A株式会社")

ソースコードはかなり長くなってしまったので、添付はしたくないのですが...。
=importRangeを実行した時のように、カスタム関数が参照元のデータと常に同期する方法がないかなと思って質問しています。

カスタム関数について聞いておきながら実装を示さないというのは、その実装に問題があるということが指摘できません。

カスタム関数であってもリアルタイムで動的に参照元データの表示を増減させることは可能です。カスタム関数の引数と返値の振る舞いについて確認してみてください。

投稿2022/03/08 03:37

arcxor

総合スコア2857

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

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

0

シンプルにこう言う事でしょうか。
一度ご確認下さい。

=Query('シート1'!A:C,"where B='A株式会社'")

投稿2022/03/07 12:13

bis_don

総合スコア18

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

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

izumin123

2022/03/08 00:29

標準のクエリ関数とは異なるカスタム関数です。紛らわしい関数名をつけてしまいすみません。 以下のようなカスタム関数だと思ってもらった方が良いです。 =table("シート1","会社名","A株式会社") =importRangeを実行した時のように、カスタム関数が参照元のデータと常に同期する方法がないかなと思って質問しています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問