はじめに
Googleフォームの回答は新しく行を作って挿入しているため、
左にINDEXの列を作って数字をふっても、Googleフォームから回答が送られると、下記のようにINDEX列のセルは空白となってしまいます。
↓
今回は、上記の問題をGASを使って解決しました。
GASをいじったことのない方は、チュートリアル記事を用意したので参考にしてみてください。
GASで「Hello,World!」を出力するまでをまとめてみた。
実装
タイムスタンプ列の左隣にINDEX列を作成する
この時、A列はタイムスタンプ型に変換されるようになってしまっているため、書式を「自動」に変更する。
スクリプトエディタから新規関数を実装する
機能は、"A列の最終行が空白である時、INDEXを割り振る"というもの。
function myFunction() {
var spreadsheet = SpreadsheetApp.openById('<id>');
var sheet = spreadsheet.getSheets()[0];
var range = sheet.getRange(sheet.getLastRow(),1);
if(range.isBlank() == true){
range.setValue("=ROW()-1");
}
}
Googleフォームから回答が送信された時に、上記で実装した関数が起動するように設定する
スクリプトエディタ左上の「編集」→「現在のプロジェクトのトリガー」から新規トリガーを作成する。
結果
適当な回答を送信し、INDEXの値が割り振られるようになったことを確認した。
# 終わりに
今回の実装を応用すると、Googleフォームの回答データに初期値を持たせることができます。
活用してみてください。