2017-01-09 8 views
2

私はコーディングの初心者ですから謝罪します。私はGoogle Apps Scriptを使用してGoogleフォームレスポンスの分析を自動化することに興味があります。Appsスクリプトを使用してGoogleフォームレスポンスに式を追加できますか?

1)があったどのように多くの選手:私が持っている

simple exampleは人々を尋ねるフォームの回答のスプレッドシートのためにあるのですか?
2)[1st、2nd、etc.]を完了した場所

フォームの送信時に、ポイントを受け取る方法を計算し、この値を次の使用可能な列に挿入するスクリプトを実行したいこの例)。

私は、このプロセスを自動化するための最初のApps Scriptを作成しようとしましたが、成功しませんでした。

サンプルコード:

function onFormSubmit(e) { 
var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var sheet = ss.getSheetByName("Form Responses Master"); 
var players = e.values[2]; 
var place = e.values[3]; 
var positionPoints = e.values[4]; 
var positionPoints = (players - place + 1); 

return positionPoints; 
} 

私は重複したページを作成することで利用可能な回避策がある知っているが、私は希望Iに、誰かがアプリケーションスクリプトでのソリューションをコーディングする方法で私に助言することができるかもしれません期待していましたコーディングプロセスの理解を深めるかもしれません。

答えて

0

フォームのスクリプトエディタでコードを記述するのではなく、レスポンスコレクタスプレッドシート自体にappscriptを書き込むことができます。

したがって、回答シートにアクセスしてこのコードを貼り付けてください。

function myFunction() 
{ 
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Form Responses Master"); 
    var rowNo = sheet.getLastRow(); 
    var colNo = sheet.getLastColumn(); 
    sheet.getRange(rowNo, colNo).setValue("=(C"+rowNo+"-D"+rowNo+")+1"); 
} 

[リソース] - > [現在のプロジェクトトリガ]に移動します。新規追加をクリックし、これらの値をドロップダウンで設定します。myFunction - スプレッドシートから - フォーム提出時。

これで完了です。新しい応答が提出されるたびに、ポジションポイントが自動的に計算されます。

ここで、 変数シートは、実行可能なさまざまなシート操作用のアクティブなスプレッドシートを取得します。

コードで見られるrowNoとcolNoは、何かが書き込まれたスプレッドシートの最後の行/列の値を単に取り出します。

また、列 'E'に式を設定するには、setValueを使用できます。したがって、"=(C"+rowNo+"-D"+rowNo+")+1"は、2番目の行の場合は(C2-D2)+1に、次の行の場合も同様に変換されます。

getRangeは、特定のセル内の書込み式をスクリプトに伝えるために使用されます。

+0

あなたの助けに多くの感謝のShyam。 –

+0

あなたは歓迎です:)、幸せに助けて! –

関連する問題