it-swarm.com.de

Wie füge ich ein einfaches berechnetes Feld zu einem Google-Formular hinzu?

Ich suche nach einer Möglichkeit, ein einfaches berechnetes Feld in ein Google-Formular einzufügen, das von den Werten anderer Felder abhängt.

Das erste Feld ist ein einfaches Preisfeld quantity * price = total_price, wobei die Menge ein vom Benutzer eingegebenes numerisches Feld ist.

Das zweite Feld ist ein Enddatum now() + X months, wobei X vom Benutzer ausgewählt wird.

Ich habe mir die Tutorials von Google angesehen und nur Addons gefunden, die meines Erachtens formularbreit sind, bei denen ich eher nach einem benutzerdefinierten Formularfeld Ausschau halte.

Die beste Lösung wäre eine, bei der die Felder berechnet werden, wenn der Benutzer den Wert der anderen Eingabe ändert. Ein einfacher Text auf der Bestätigungsseite ist jedoch ebenfalls in Ordnung.

Ich würde mich freuen, wenn jemand mich in die richtige Richtung lenken könnte. Vielen Dank.

4
haki

Nur Scripting kann die Erstellung und Bearbeitung eines Formulars nach dem Senden beeinflussen. Sie können keine Änderungen an der "Live" -Form vornehmen, die der Benutzer gerade betrachtet. Was Sie tun können, ist eine E-Mail an den Benutzer zu senden, nachdem das Formular mit einer kalkulierten Übersicht gesendet wurde. Sie könnten einen Link zum getEditResponseUrl () einfügen, wenn Fehler angezeigt werden.

4
Spencer Easton

Live-Berechnungen basierend auf den Eingaben bei Google werden nicht unterstützt. Scripting kann das Problem teilweise lösen, wie in den obigen Antworten erwähnt. 

Es gibt einige Alternativen, mit denen Sie Formularfelder erstellen und dann einen Variablennamen für jedes Feld angeben können. Sie können diese Variablen zum Berechnen verwenden. 

Eine solche Alternative ist Clappia ( www.clappia.com ). 

Haftungsausschluss: Ich bin mit Clappia verbunden.

0
Ashutosh Kumar

Ich hatte auch dieses Problem. Ich musste eine Kontrolltafel mit den Antworten erstellen, die von einem Google-Formular stammen. Das Problem: Wenn Sie Formeln in einer Spalte neben dem Blatt verwenden, in das die Antworten übermittelt werden, fügt Google eine neue Zeile ein, aber die Formel wird nicht repliziert am Ende wird die Formel immer und immer wieder kopiert und eingefügt.

Um dies zu lösen, habe ich ein Skript verwendet, das die Zelle, in der sich die Formel befindet, kopiert und in alle Zeilen einfügt, in denen die Antworten waren.

Das Skript ist ziemlich einfach. Zuerst müssen Sie den Skript-Editor im Menü "Tools" öffnen und den folgenden Code einfügen. Sie müssen nur die Tabellen mit einem Namen im Code "aufrufen" und dann die Spalten markieren, in denen sich die Formeln befinden. In diesem Fall ist hoja1 "BD ingresos" und hoja2 ist "DB gastos".

In diesem Fall sind die Blätter, in denen ich Formulare mit Antworten implementiert habe, "BD ingreso" und "BD gastos", die Spalten, in denen ich etwas berechne, sind A, B, C, D und E in "BD ingresos" wie in "BD Gastos" ".

(spanisch namen, sorry)

// 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);   
}

Dann musst du im Script-Editor einen Trigger erstellen, wie dieses Bild zeigt. Setzen Sie den Auslöser, um den Code "actualizar" mit dem Ereignis "aus der Tabelle" "beim Formular absenden" zu starten.

0
David Alv