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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google フォーム

Google フォームは、 Google社が提供しているアンケートフォーム作成および集計ができる無料のツール。Googleアカウントがあれば利用が可能です。集計データは、スプレッドシートに収集され、データ分析もできます。

Google Apps Script

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

Google

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

Q&A

0回答

1009閲覧

Google Fromsと連動したSpread Sheetをソートしたいができない(必要に応じてGASも使えます)

tomiheyy

総合スコア0

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google フォーム

Google フォームは、 Google社が提供しているアンケートフォーム作成および集計ができる無料のツール。Googleアカウントがあれば利用が可能です。集計データは、スプレッドシートに収集され、データ分析もできます。

Google Apps Script

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

Google

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

0グッド

1クリップ

投稿2020/09/23 13:35

前提・実現したいこと

Google form, Google spread sheetを使って以下を満たす仕組みを実現したいです。
・スプレッドシートは、フォームからの入力と直接入力の両方ができる
フォームから入力されたシート①を、シート②で呼び出し、補足情報を追記できる
・日次バッチ程度より短スパンで最新のデータをソートすることができ、1行の関係は維持できる
(毎日数回、新しいレコードがformから入力される。リアルタイムでソートされてもよい)

なお、フォームから入力されたシートを別シートから=QUERY(,,)で呼び出し、
追記する方法で既に運用が開始しており、上記の前提は崩さずに解決したいです。

発生している問題

GSSの基本機能でソートしてもうまくいかない
・シート①をソートすると、シート②で追記した内容が連動せず、所望の結果にならない
・シート②をソートすると、呼び出し部分が先祖返りし、所望の結果にならない
(QUERY関数で再読み込みしてしまい、シート①の順番に戻ってしまう)

以下のようなGASを作成してみたが、呼び出し部分が先祖返りし、所望の結果にならない

function sort() { // 問い合わせ回答のスプレッドシートへの参照を取得する var sheets = SpreadsheetApp.getActiveSpreadsheet(); // ソートをかける対象のシートを取得する(indexは左側のシートから0) var sheet = sheets.getSheets()[1] // sort({ソートをかける列の指定}, {true: 昇順, false: 降順}) sheet.sort(2, false) }

補足情報(FW/ツールのバージョンなど)

見ていただくのが一番早いかと思い、サンプルのスプレッドシートを以下に用意しています。
https://docs.google.com/spreadsheets/d/1HJ9bvV-DR2OxAjrVVjc08rYua7HLVTmNQ1MvOAOEF7k/edit?usp=sharing

アウトプットイメージとしては、このシートで
「データ」→「フィルタを表示」→「新しい一時的なフィルタビューを作成」→B列でソート
を行った状態です。この状態を常に最新化したいです。

よろしくお願いいたします。

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

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

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

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

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

sawa

2020/09/24 00:57

フィルタビューでの運用ではダメですか? シートのオーナーであればフィルタビューの保存ができて、そのURLを共有することもできます。 フィルタビューは 開く(F5で更新する)たびに、最新状態になりますよ。
tomiheyy

2020/09/24 04:43

ありがとうございます! フィルタビューでの運用は以下の回答なども確認して、実現性がないものかと理解していました。 (同様に、シートを保護した状態で実現しています。) https://teratail.com/questions/193945 >シートのオーナーであればフィルタビューの保存ができて、そのURLを共有することもできます。 シートが保護されている前提で、メンバが自分でフィルタビューを作成してそれを維持する方法はあるでしょうか?
sawa

2020/09/24 05:27

>シートが保護されている前提 これだと「編集権限」のあるメンバーでも保護の制限を受ける為、一時的なフィルタビューは出来ても、それを保存したり共有したりはできません。一時的なので、一度スプレッドシートを閉じると消えちゃいます。 もともとSORTで考えていたのなら、オーナー側でB列?でソートしたフィルタビューを保存しておいて、 メンバーにはその画面で更新してもらうって運用が現実的かと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問