他のフィールドの値に依存する単純な計算フィールドをGoogleフォームに追加する方法を探しています。
最初のフィールドは単純な価格フィールド_quantity * price = total_price
_です。ここで、quantityはユーザーが入力した数値フィールドです。
2番目のフィールドは終了日now() + X months
で、Xはユーザーが選択します。
私はグーグルのチュートリアルを見て、カスタムフォームフィールドのようなものを探している私の理解ではフォームワイドであるアドオンだけを見つけました。
最善の解決策は、ユーザーが他の入力の値を変更したときにフィールドを計算することですが、確認ページの単純なテキストでも問題ありません。
誰かが私を正しい方向に向けてくれれば幸いです。ありがとう。
スクリプトはフォームの作成と送信後の処理にのみ影響します。ユーザーが現在見ている「ライブ」フォームに変更を加えることはできません。あなたができることは、計算された夏時間を含むフォームが送信された後にユーザーにメールを送ることです。エラーが発生した場合は、getEditResponseUrl()へのリンクを含めることができます。
Googleの入力に基づくライブ計算はサポートされていません。上記の回答で述べたように、スクリプトによって部分的に問題が解決する場合があります。
フォームフィールドを作成し、各フィールドに変数名を指定できる代替手段がいくつかあります。これらの変数を使用して計算できます。
そのような代替手段の1つは、Clappia( www.clappia.com )です。
免責事項:私はクラピアに関連しています。
私もこの問題を抱えていました。 Googleフォームから受け取った回答を使用してコントロールボードを構築する必要がありました。問題:回答が送信されたシートの横の列で数式を使用すると、Googleは新しい行を挿入しますが、数式を複製しないため、数式を何度もコピーして貼り付けることになります。
これを解決するために、数式があるセルをコピーし、回答があったすべての行に貼り付けるスクリプトを使用しました。
スクリプトは非常にシンプルです。まず、[ツール]メニューでスクリプトエディターを開き、以下のコードを貼り付けます。コードで名前を付けてシートを「呼び出し」、式がある列にマークを付けるだけです。この場合、hoja1は「BD ingresos」、hoja2は「DB gastos」です。
この場合、回答を展開するフォームがあるシートは「BD ingreso」と「BD gastos」です。何かを計算する列は、「BD ingresos」の「BD Gastos」と同じA、B、C、D、Eです。 」.
(スペイン語の名前、申し訳ありません)
// Activar la hoja actual
var ss = SpreadsheetApp.getActiveSpreadsheet();
// se guarda hoja1
var hoja1 = ss.getSheetByName("BD ingreso");
var hoja2 = ss.getSheetByName("BD gastos")
function actualizar() {
// obtener ultima fila de la hoja
var ultimaFila = hoja1.getLastRow();
rellenarColumna("A",ultimaFila,hoja1);
rellenarColumna("B",ultimaFila,hoja1);
rellenarColumna("C",ultimaFila,hoja1);
rellenarColumna("D",ultimaFila,hoja1);
rellenarColumna("E",ultimaFila,hoja1);
// obtener ultima fila de la hoja
var ultimaFila = hoja2.getLastRow();
rellenarColumna("A",ultimaFila,hoja2);
rellenarColumna("B",ultimaFila,hoja2);
rellenarColumna("C",ultimaFila,hoja2);
rellenarColumna("D",ultimaFila,hoja2);
rellenarColumna("E",ultimaFila,hoja2);
}
function rellenarColumna(pivote, ultimaFila,hojaTrabajo)
{
//-------------------------------------------------------------
//celda que contiene la información que se va a pegar.
var celdaCopiarFormula = hojaTrabajo.getRange(pivote+"2");
//obtener valor de dicha celda
var valorCeldaCopiarFormula = celdaCopiarFormula.getFormula();
//modificar rango para que pegue la información desde la ubicacion enviada hasta la ultima fila
var rangoTotal = pivote + "2:" + pivote + ultimaFila;
//definir ubicacion en donde se va a pegar la informacion
var destinoPegado = hojaTrabajo.getRange(rangoTotal);
destinoPegado.setFormula(valorCeldaCopiarFormula);
}