将匹配的值复制到其他工作表时包括相邻的单元格

时间:2018-08-10 20:01:19

标签: google-apps-script google-sheets

我有一个脚本,用于比较Google电子表格上两个不同工作表中单元格中的值。它可以成功地找到匹配项并将它们复制到第三张纸上。但是,我想将选择范围扩展到匹配项的左侧,并复制匹配项和相邻单元格。

为澄清起见:电子表格1包含电子邮件和专业,电子表格2包含其所属大学的专业。我正在匹配专业,所以我只能收到特定大学里的人的电子邮件。现在,它所复制的都是带有专业名称的单元格,但是我也希望它也复制带有电子邮件的单元格(这是左侧的一列)。

outputs = Lambda(lambda x: K.batch_flatten(x))(outputs)

1 个答案:

答案 0 :(得分:0)

我扩大了搜索范围,以包括电子邮件列表,并将匹配的设置数据移动了一行。然后将循环中的setInput变量更改为+1,将搜索范围缩小到专业,然后添加第二个变量(setInputFina)仅返回我能够生成列表的电子邮件!

function match_CoE() {
  //Set variables for active spreadsheet, input data, comparitive data, and finalized match input.
  var sh = SpreadsheetApp.getActive();
  var input = sh.getSheetByName('AOP 2018-2019').getRange("B1:C").getValues();
  var values = sh.getSheetByName('Major-College-Conversion').getRange("A72:B75").getValues();
  var output = sh.getSheetByName('College of Education Contacts');
  var match = [];

  //Compare Input to Pre-determined values for matches
  for (i in input){
    var setInput = input[i][+1];
    var setInputFinal = input[i][0];
    var exists = false;

    for (j in values){
      var setValues = values[j][+1];
      if (setValues == setInput){
        exists = true;
        break;
      }
    } // end for j
    if (exists == true){
        match.push([setInputFinal])
    }
  }//end for i

  //Copy matching values to new sheet.
  output.getRange(1, 1, match.length, 1).setValues(match);
}

function copySet_CoE() {

}