Googleフォームで入力があるたびにGoogleスプレッドシートの内容をタイムスタンプの降順に並べ替える処理を書いてみました。

というのも、入力内容が溜まってくると最新の情報を見るために一番下までスクロールする必要があったからです。

ポイントは、範囲指定の方法と並べ替えの基準となる列の指定です。

以下のようなソースコードにしました。

 

並べ替えの範囲は以下のように指定しました。

“A2” + “:L” + lastRow;

範囲指定の左上はA2セルからとしました。

なぜなら、Googleフォームで入力したGoogleスプレッドシートの1行目は項目名(フォームの質問内容)が入るからです。

また、列数は今回L列までと決まっていたのでそのまま記述しました。

<並べ替え後のイメージ図>

  A B C (中略) L M
1 20xx/05/04 8:13:50 入力データ 入力データ 入力データ  
2 20xx/05/03 8:22:30 入力データ 入力データ 入力データ  
3 20xx/05/01 21:09:17 入力データ 入力データ 入力データ  
4 20xx/04/30 23:30:42 入力データ 入力データ 入力データ  
5 (以下省略)

 

入力があるたびに増える行数は

sheet.getLastRow();

で取得しました。

 

並べ替えの基準となる列は、Googleフォームで入力したGoogleスプレッドシートのA列に入っているため

column: 1

で指定しました。

また、降順に並べ替えるため、

ascending: false

で指定しました。

関数名は、「sortByTimeStamp」としました。

 

あとは、トリガーの設定をしてフォームに入力があるたびに並べ替えが行われるようにします。

以下の設定で大丈夫でした。

 

実行する関数を選択:sortByTimeStamp

 

どなたかの参考になりましたら幸いです。