web-dev-qa-db-ja.com

Googleフォームの送信に基づいたGoogleスプレッドシートの自動インクリメント

Googleフォーム経由で送信される会議ごとに、自動生成された一意のID番号を作成しようとしています。

一意のID#ソリューションは、次の要件も満たしている必要があります。

  • ID#は静的である必要があります(行番号に関連付けられていません)。
  • 一意のID番号に「1」以外の開始点を設定できる必要があります。

次の解決策を試しましたが、行番号に基づいてID#を作成し、行が削除されると、一意のID#を複製します。

Googleフォームに基づいてGoogleスプレッドシートに自動インクリメントフィールドを追加できますか?

3
Mr. B

これは、次のスクリプトを使用して実行できます。この関数に対して「フォーム送信時に」トリガーを設定します。

カスタマイズ可能なパラメーターは次のとおりです。IDを挿入する列番号、および初期ID。この関数はスクリプトプロパティを使用して使用済みIDを追跡するため、繰り返されません。

function generateId(e) {
  var columnNumber = 5;
  var initialId = 42;
  var sp = PropertiesService.getScriptProperties();
  var id = sp.getProperty("Event Id") || initialId;
  e.range.offset(0, columnNumber - 1, 1, 1).setValue(id);
  sp.setProperty("Event Id", id + 1);
}
3
user79865