根据另一个工作表值填充单元格

时间:2019-10-17 00:08:59

标签: google-apps-script google-sheets google-sheets-formula array-formulas gs-vlookup

我在Google表格上有一个电子表格,其中包含两个表格Sheet1Sheet2。在Sheet1上,我有2列(ID1Result1),其中有填充。在Sheet2上,我有2列(ID2Result2),其中填充了ID2,结果2中填充了“空”一词。

我真正的电子表格中的Sheet1正在从Google Forms获取数据,因此,每当Sheet1收到ID1和Result1上的值时,Sheet1应该在Sheet2的ID2上搜索ID1值,并在找到时将Result1值粘贴到Result2中被发现。

然后,仅当从表单提交的Sheet1上有新数据时,Result2才会更新。

我创建了此可编辑的表单和电子表格,以使其更易于理解(我还在其中添加了注释以对其进行解释)。您可以看到表单here和电子表格here

3 个答案:

答案 0 :(得分:1)

在第二张工作表的B2单元格中,输入以下内容:

=VLOOKUP(A2,Sheet1!A:B,2,FALSE)

Results

我猜Google表格上的 VLOOKUP 是否允许跨工作表引用?

  

仅供参考,在输入公式时,输入第一个参数作为查找标准后,您可以单击工作表1并突出显示列A和B,然后返回工作表2(第二个参数由系统自动填充)以第三个参数(结果范围列在查找范围内的位置)和第四个参数(TRUE表示近似匹配,FALSE表示精确匹配)结束公式,然后按 Enter 退出公式。

答案 1 :(得分:1)

只需这样做:

=ARRAYFORMULA(IFERROR(VLOOKUP(A2:A, Sheet1!A:B, 2, 0)))

0


0


或通过复选框重置:

0

答案 2 :(得分:1)

浏览完当前的答案和评论后,我认为我了解您的要求。

答案:

您可以通过在Google Apps脚本中创建绑定到Google表单的函数来执行此操作,该函数收集最新的响应并进行数据处理,并使其在表单提交上运行。

采取的步骤:

首先,您需要在表单上创建一个绑定脚本。在“表单”编辑页面右上角的菜单中,单击⋮ > Script editor,这将打开一个新的脚本页面。

您可以在此处创建一个脚本,该脚本将自动为您执行此操作,并制作一个可安装的触发器,该触发器将在需要时运行。

代码:

打开脚本编辑器后,您将看到一个易于编辑的功能,如下所示:

function myFunction() {

}

用以下代码替换整个脚本:

function onSubmit(e) {
  var responses = FormApp.getActiveForm().getResponses();
  var response = responses[responses.length - 1].getItemResponses();
  var connectedSheet = SpreadsheetApp.openById('<your-sheet-id>').getSheets();
  var sheet2 = connectedSheet[1];  
  var result2Column = sheet2.getRange('A1:A').getValues();

  for (var i = 0; i < result2Column.length; i++) {
    if (response[1] == result2Column[0]) {
      sheet2.getRange('B' + (i +1)).setValue(response[0]);
    }
  }
}

请确保将<your-sheet-id>替换为Google Sheeet的唯一ID,您可以在工作表的d//edit之间的网址中找到它,如下所示:

https://docs.google.com/spreadsheets/d/<your-sheet-id>/edit

通过按下播放按钮(►)运行脚本并授权应用程序运行。

然后转到Edit -> Current Project's Triggers并使用以下设置设置新的可安装触发器:

  • 选择要运行的功能:onSubmit
  • 选择应运行哪个部署:Head
  • 选择事件源:From form
  • 选择事件类型On form submit

说明:

该脚本将在每次自动提交新表单时运行-它将从表单响应中获取ID并搜索Sheet2。如果找到,则针对结果给出的响应也将放在Sheet2中,在相应ID旁边。

希望对您有所帮助!

参考文献: