Forms 如何在Google电子表格中将多选文本值转换为数字

Forms 如何在Google电子表格中将多选文本值转换为数字,forms,google-apps-script,google-sheets,Forms,Google Apps Script,Google Sheets,我有一个简单的谷歌表格,里面有一组问题,答案要么是Yes要么是No。我想根据用户回答的问题(范围:1到5)分配预定义的分数/评级。现在所有这些输入都存储在谷歌电子表格中 关于形式:问题是: 固定分数值4,如果用户回答/选择“是” 如果回答为是,则固定分数值3 如果回答为“是”,则固定分数为1 如果用户选择“否”,则默认固定值为0 现在,我如何在电子表格响应中获得这些数值,而不是“是”或“否”值?您有两种选择: 1.您可以使用google apps scrip查看UiApp构建自己的表单。 2.用

我有一个简单的谷歌表格,里面有一组问题,答案要么是
Yes
要么是
No
。我想根据用户回答的问题(范围:1到5)分配预定义的分数/评级。现在所有这些输入都存储在谷歌电子表格中

关于形式:问题是:

  • 固定分数值4,如果用户回答/选择“是”
  • 如果回答为是,则固定分数值3
  • 如果回答为“是”,则固定分数为1
  • 如果用户选择“否”,则默认固定值为0


    现在,我如何在电子表格响应中获得这些数值,而不是“是”或“否”值?

    您有两种选择: 1.您可以使用google apps scrip查看UiApp构建自己的表单。 2.用问题做一个标准表格,并在你的电子表格中使用函数,比如:=IF(a1,yes,4)等等


    我建议您使用自定义表单。

    您有两种选择: 1.您可以使用google apps scrip查看UiApp构建自己的表单。 2.用问题做一个标准表格,并在你的电子表格中使用函数,比如:=IF(a1,yes,4)等等


    我建议您使用自定义表单。

    如果您正在考虑使用触发器编写google脚本,我想这可能会对您有所帮助

    function doGet() {
    
    var app = UiApp.createApplication().setTitle("formulario");
    var panel = app.createVerticalPanel().setId("panel");
    var labelAsk = app.createLabel().setId("ask").setText("MY QUESTION IS HERE");
    var value = app.createListBox().setId("value");
    value.setItemText(0, "Choose");
    value.setItemText(1, "1");
    value.setItemText(2, "2");
    value.setItemText(3, "3");
    value.setItemText(4, "4");
    
    var button = app.createButton().addClickHandler(handler).setId("button").setText("send");
    var handler = app.createServerHandler("check").addCallbackElement("panel");
    button.addClickHandler(handler);
    
     panel.add(labelAsk);
     panel.add(button);
     app.add(panel);
    
    return app;
    
    };
    function check(e){
     try{
    var value = e.parameter.value;
     switch(value){
       case "1": change option in cell of spreadsheet;
       case "2": change option in cell of spreadsheet;
       case "3": change option in cell of spreadsheet;
       case "4": change option in cell of spreadsheet;
       default:  change option in cell of spreadsheet;
      }//end if
     }//end try
      catch(e){ error_en_e_parameter_value}
     return app;
    };
    

    我认为这可以帮助你,如果你正在考虑写你的谷歌脚本与触发器

    function doGet() {
    
    var app = UiApp.createApplication().setTitle("formulario");
    var panel = app.createVerticalPanel().setId("panel");
    var labelAsk = app.createLabel().setId("ask").setText("MY QUESTION IS HERE");
    var value = app.createListBox().setId("value");
    value.setItemText(0, "Choose");
    value.setItemText(1, "1");
    value.setItemText(2, "2");
    value.setItemText(3, "3");
    value.setItemText(4, "4");
    
    var button = app.createButton().addClickHandler(handler).setId("button").setText("send");
    var handler = app.createServerHandler("check").addCallbackElement("panel");
    button.addClickHandler(handler);
    
     panel.add(labelAsk);
     panel.add(button);
     app.add(panel);
    
    return app;
    
    };
    function check(e){
     try{
    var value = e.parameter.value;
     switch(value){
       case "1": change option in cell of spreadsheet;
       case "2": change option in cell of spreadsheet;
       case "3": change option in cell of spreadsheet;
       case "4": change option in cell of spreadsheet;
       default:  change option in cell of spreadsheet;
      }//end if
     }//end try
      catch(e){ error_en_e_parameter_value}
     return app;
    };
    

    你是使用谷歌表单还是自己用UI服务设计的?@Sergeinsas我不知道UI服务,我只是用谷歌表单。你是用谷歌表单还是自己用UI服务设计的?@Sergeinsas我不知道UI服务,我只是用谷歌表单。谢谢<代码>=如果(a1,是,4)有用。但是它会在表单提交时触发吗?你应该看看,表单中的值是e.values,它是一个包含所有答案的数组。。。然后再加几个“如果”就行了谢谢<代码>=如果(a1,是,4)有用。但是它会在表单提交时触发吗?你应该看看,表单中的值是e.values,它是一个包含所有答案的数组。。。然后几个“如果”就可以了。