it-roy-ru.com

Как добавить простое вычисляемое поле в форму Google?

Я ищу способ добавить простое вычисляемое поле в форму Google, которая будет зависеть от значений других полей. 

Первое поле - это простое поле цены quantity * price = total_price, где количество - это числовое поле, введенное пользователем.

Второе поле - это конечная дата now() + X months, где X выбирается пользователем.

Я посмотрел учебники Google и нашел только надстройки, которые, как я понимаю, имеют широкую форму, где я ищу что-то более похожее на поле настраиваемой формы. 

Лучшим решением было бы то, которое вычисляло бы поля, когда пользователь изменял значение другого ввода, но простой текст на странице подтверждения также в порядке.

Я был бы признателен, если бы кто-нибудь мог указать мне правильное направление. Спасибо.

4
haki

Только сценарии могут повлиять на создание и последующую обработку формы. Вы не можете вносить какие-либо изменения в «живую» форму, которую пользователь просматривает в данный момент. Что вы можете сделать, это отправить электронное письмо пользователю после отправки формы с расчетным суммой. Вы можете включить ссылку на getEditResponseUrl (), если они видят какие-либо ошибки.

4
Spencer Easton

Живой расчет на основе входных данных в Google не поддерживается. Сценарии могут частично решить проблему, как указано в ответах выше. 

Есть несколько альтернатив, которые позволяют создавать поля формы, а затем предоставлять имена переменных для каждого поля. Вы можете использовать эти переменные для расчета. 

Одной из таких альтернатив является Clappia ( www.clappia.com ). 

Отказ от ответственности: я связан с Clappia.

0
Ashutosh Kumar

У меня тоже была эта пробема. Мне нужно было создать панель управления, используя ответы, поступающие из формы Google. Проблема: когда вы используете формулы в столбце рядом с листом, на который отправляются ответы, Google вставляет новую строку, но не копирует формулу, поэтому вы в конечном итоге копирование и вставка формулы снова и снова.

Чтобы решить эту проблему, я использовал скрипт, который копирует ячейку, где находится формула, и вставляет ее во все строки, где были ответы.

Сценарий довольно прост, сначала вы должны открыть редактор сценариев в меню «Инструменты» и вставить код ниже. Вам нужно только «вызвать» листы с именем в коде, а затем пометить столбцы, в которых находятся формулы. В этом случае hoja1 - «BD ingresos», а hoja2 - «DB gastos»

В этом случае листы, на которых у меня есть формы с развертывающими ответами, представляют собой «BD ingreso» и «BD gastos», столбцы, где я вычисляю что-то, - это A, B, C, D и E в «BD ingresos», такие же, как в «BD Gastos». ».

(имена на испанском языке, извините)

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

Затем вы должны создать триггер в редакторе скриптов, как показано на этом рисунке. Установите триггер для запуска кода «actualizar» с событием «из электронной таблицы» «при отправке формы»

0
David Alv