在Google Apps脚本中实现两个范围之间的vlookup

时间:2016-06-15 17:00:02

标签: google-apps-script google-sheets

我正在寻找一种方法来编写一个与google工作表中的vLookup类似的脚本。

Here is a link to a simplified example document.

我想要做的是使用“Sheet1”作为一种形式。当我在“Sheet1”列中输入信息时,BI希望能够点击自定义菜单按钮并让“Sheet1”列B中的信息根据A列中的值自动填充到“Sheet 2”的第一个空列中。

我可以编写脚本来创建自定义菜单并执行函数,但我不确定如何编写函数本身。

1 个答案:

答案 0 :(得分:0)

以下是这样的功能的外观。它获取指向每个工作表的指针,然后是每个工作表的适当范围:列A和B,忽略底部的空行。然后获取值并开始比较它们:当列A匹配时,将列B分配给。最后一行将修改后的数组values放回Sheet2。

function vl() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet1 = ss.getSheetByName('Sheet1');
  var sheet2 = ss.getSheetByName('Sheet2');
  var range1 = sheet1.getRange(1, 1, sheet1.getLastRow(), 2);
  var range2 = sheet2.getRange(1, 1, sheet2.getLastRow(), 2);
  var values1 = range1.getValues();
  var values2 = range2.getValues();
  for (var i = 0; i < values1.length; i++) {
    for (var j = 0; j < values2.length; j++) {
      if (values1[i][0] === values2[i][0]) {
        values2[i][1] = values1[i][0];
      }
    }
  }
  range2.setValues(values2);
}