使用数组中的值查找单元格行 - Google脚本

问题描述 投票:0回答:1

我有一个数据库,我想在其上找到行索引,具体取决于第一列中的值是否属于另一个值数组

假设A列和B列具有以下值:A:111,112,113,114,...... B:112,113

我想找到A列中的行,这些行的值在B列的值数组中。

到目前为止,这是我的代码。问题:indexOf没有检测到值,并且在Logger.log函数中测试时返回= -1

var ss = SpreadsheetApp.getActiveSpreadsheet(),
  sheet = ss.getActiveSheet(),
  values = sheet.getRange(7,2,5,1).getValues(), //This would be 'Column B'
  rows = sheet.getLastRow();


for (var i = 2; i <= 15; i++){
  Logger.log(values);
  Logger.log(sheet.getRange(7,1).getValue());
  Logger.log(values.indexOf(sheet.getRange(7,1).getValue()));

  if (values.indexOf(sheet.getRange(i,1).getValue()) != -1) { //column 1 because 'Column A'
    Logger.log("Success");

  }
}

使用Logger.log函数我已经能够证明它实际上拉的值与数组中的一个值匹配......但由于某种原因,它没有检测到它......

为了我的目的,我也尝试了以下方法:

for (var i = 2; i <= rows; i++){
  for (var j = 1; j <= values.length; j++){
    if (values[j] == sheet.getRange(i,1).getValue()){
      Logger.log("values[j] works. Found in cell " + i + ",1 con un valor que busco");
    }
  }
}

但是在这里,没有调用Logger.log函数,这意味着没有满足if语句,表示同样的主要问题。测试的单元格中的数组值无法满足数组中的某个值。

在此先感谢您的帮助。我现在真的搜索了几个小时,似乎无法找到这个特殊问题的答案......

对于它的价值,我尝试这样做的原因是因为我想根据条目的数量更新数据库(在本例中,列A),但只更新某些行(我在B列中指出的行) )。

arrays google-apps-script
1个回答
0
投票

我希望我能正确理解你。如果是这样,只需评论,我们就可以制定代码。

你从indexOf函数得到-1,因为它无法搜索二维数组。 join()功能可以提供帮助;这会将您的二维数组合并为一个字符串。你的函数索引可以搜索一维字符串,你的logger.log函数应该给你正确的结果。

© www.soinside.com 2019 - 2024. All rights reserved.