搜索电子表格列文本字符串,另一列返回结果(search spreadsheet column for

2019-07-03 17:35发布

使用谷歌应用程序的脚本和电子表格,我一直试图做一个简单的事情,但不能找出问题。 我有一个表,一个空白柱,并用文本的列。 该列不是彼此相邻。 我想在一列中搜索文本中的每个单元格,如果文本被发现,然后设置单元格的值在空栏为“是”。

示例(抱歉,没有代码 - 我已经走了一圈又一圈用了好几个小时,和我有什么是如此令人费解,这是最好的只是提供一个例子):

Column A with text  Empty Column F
abcd efg hij
klmn opq rstu  
vwxzy                  Yes

什么是搜索栏一种“XYZ”,并返回一个“是”在F栏的最简单的代码?

我看,并试图约十几个不同的代码示例在线,并不能得到其中的任何工作。 欣赏任何帮助!

编辑 (最终希望)为我用(我有一些后端的实用工具,让我基于标题名称的列数,不包括在此代码,仅供参考):

var sskey = SpreadsheetApp.openById('**********************')

function otherfunction(){
  addCustomValue('POCs', 'Groups', 'Champion', 'Champion', 'Yes');
}

function addCustomValue(sheetNamestr, searchColnamestr, writeColnamestr, searchKeystr, writeValstr) {
  var sheet = sskey.getSheetByName(sheetNamestr);
  var searchColnum = MyUtilities.getColIndexByName(sheet, 1, searchColnamestr);
  var writeColnum = MyUtilities.getColIndexByName(sheet, 1, writeColnamestr);
  var data = sheet.getDataRange().getValues();
  for (n=0; n<data.length; ++n) {
    if (data[n][searchColnum-1].toString().match(searchKeystr)==searchKeystr){ data[n][writeColnum-1] = writeValstr};
    }
  sheet.getRange(1,1,data.length,data[0].length).setValues(data);
}

感谢哔叽! 现在,我可以在基于任何列的条件我的电子表格运行这个!

Answer 1:

这是一个简单的可能的脚本,做你所需要的。 (如果你的表中包含公式或自定义函数,那么它应该进行修改,以考虑到这一点)

function test(){
  var sh = SpreadsheetApp.getActiveSheet();
  var data = sh.getDataRange().getValues(); // read all data in the sheet
  for(n=0;n<data.length;++n){ // iterate row by row and examine data in column A
    if(data[n][0].toString().match('xyz')=='xyz'){
      // if column A contains 'xyz' then set value in index [5] (is column F)
      data[n][5] = 'YES'
    };
  }
  Logger.log(data)
  sh.getRange(1,1,data.length,data[0].length).setValues(data); // write back to the sheet
}


Answer 2:

function myFunction() {
  //Variable to keep track of the sheet
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  //Start at row 1, end at the last row of the spreadsheet
  for(var i=1;i<sheet.getLastRow();i++){
    var value = sheet.getRange(i, 1).getValue();
    //Compare the value of the cell to 'xyz', if it is then set column 4 for that row to "Yes"
    if(value == 'xyz'){
      sheet.setActiveRange(sheet.getRange(i, 4)).setValue('Yes');
    }
  }
}


文章来源: search spreadsheet column for text in a string and return a result in another column