Excel 在列的每个单元格中使用查找公式(不拖动)

Excel 在列的每个单元格中使用查找公式(不拖动),excel,spreadsheet,vlookup,Excel,Spreadsheet,Vlookup,我想对列中的每个单元格使用VLookup公式(德语=sverweis)。VLookup范围始终保持不变,但每个单元格中的值(m3、m4、m5)必须更改 由于我使用表单,新记录总是会出现,因此向下拖动公式不是一个好主意。该公式在N列的每个单元格中运行 我试着使用数组公式,但不知怎的我被卡住了 你知道怎么解决这个问题吗?提前谢谢 这里有一个技巧,它使用脚本将编辑链接放入表单响应表中。您将在底部看到,我添加了两个简单的公式,将两个单元格相加sheet.getRange(I+1,columnIndex+

我想对列中的每个单元格使用
VLookup
公式(德语=sverweis)。
VLookup
范围始终保持不变,但每个单元格中的值(m3、m4、m5)必须更改

由于我使用表单,新记录总是会出现,因此向下拖动公式不是一个好主意。该公式在N列的每个单元格中运行

我试着使用数组公式,但不知怎的我被卡住了


你知道怎么解决这个问题吗?提前谢谢

这里有一个技巧,它使用脚本将编辑链接放入表单响应表中。您将在底部看到,我添加了两个简单的公式,将两个单元格相加
sheet.getRange(I+1,columnIndex+2).setValue('=B'+intRow+'+C'+intRow)这是您可以放置vlookup公式的地方

您需要将表单URL中的-FORM-ID更改为长表单ID。我在这方面遇到了麻烦,因为Google现在在面向用户的表单上隐藏了您的ID,所以您需要转到表单编辑器并从那里复制ID

您还必须更改代码中的图纸名称以匹配您的图纸名称

// Form URL
var formURL = 'https://docs.google.com/forms/d/YOUR-FORM-ID/viewform';
// Sheet name used as destination of the form responses
var sheetName = 'Form Responses 1';
/*
 * Name of the column to be used to hold the response edit URLs
 * It should match exactly the header of the related column,
 * otherwise it will do nothing.
 */
var columnName = 'Edit Url' ;
// Responses starting row
var startRow = 2;

function getEditResponseUrls(){
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
  var headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues();
  var columnIndex = headers[0].indexOf(columnName);
  var data = sheet.getDataRange().getValues();
  var form = FormApp.openByUrl(formURL);
  for(var i = startRow-1; i < data.length; i++) {
    if(data[i][0] != '' && data[i][columnIndex] == '') {
      var timestamp = data[i][0];
      var formSubmitted = form.getResponses(timestamp);
      if(formSubmitted.length < 1) continue;
      var editResponseUrl = formSubmitted[0].getEditResponseUrl();
      Var intRow = i + 1
      sheet.getRange(i+1, columnIndex+1).setValue(editResponseUrl);
      sheet.getRange(i+1, columnIndex+2).setValue('=B'+intRow+'+C'+intRow);
      sheet.getRange(i+1, columnIndex+3).setValue('=H'+intRow+'+E'+intRow);
    }
  }
}
//表单URL
var formURL=https://docs.google.com/forms/d/YOUR-FORM-ID/viewform';
//用作表单响应目标的工作表名称
var sheetName='表单响应1';
/*
*用于保存响应编辑URL的列的名称
*它应该与相关列的标题完全匹配,
*否则它将一事无成。
*/
var columnName='编辑Url';
//起始行的响应
var startRow=2;
函数getEditResponseUrls(){
var sheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
var headers=sheet.getRange(1,1,1,sheet.getLastColumn()).getValues();
var columnIndex=headers[0].indexOf(columnName);
var data=sheet.getDataRange().getValues();
var form=FormApp.openByUrl(formURL);
对于(var i=startRow-1;i

如果您不熟悉脚本编辑器,只需单击工具和脚本编辑器,然后用此代码替换其中的任何代码。

将范围转换为列表(插入表),以便在出现新记录时自动向下拖动公式?这是我的答案,但看起来他使用的是谷歌工作表。我有一个脚本,在提交表单时将编辑链接放入工作表中,并对其进行了修改,以同时添加两个公式。我看看能不能找到。嗨,戈登,哇,你是我的冠军!谢谢!我去查一下再回来!我注意到代码使用了一个名为columnName的变量来自动查找要更新的正确列。你可以把它改成电子邮件,然后把你的vlookup放在他们有editResponseUrl的地方。