如何在Google脚本中获取非空白单元格的范围

 收藏

我正在尝试获取在K列中没有空白单元格的行的值。

  var spreadsheet = SpreadsheetApp.getActive();
  var bigrange = spreadsheet.getSheetByName('sheet').getRange("K2:K").getValues();
//  var smallrange= bigrange .filter(String);

  for (var i=0; i < smallrange.length; i++) {

var calId = spreadsheet.getSheetByName('sheet').getRange("M" + [i+ 2]).getValue();    

}

如果我不使用.filter(String),则上面的代码有效。但是由于我的数据很大,并且K2:K范围的大部分为空白,我认为我应该使用.filter(String)。

获取K2:K中不为空的少数单元格范围的最佳方法是什么?

回复
  • 祝玛丽 回复

    这个答案怎么样?

    模式1:

    • The sheet name is sheet. In this sheet, you want to retrieve the ranges when the cell of column "K" is empty.

    如果我的理解是正确的,那么该修改如何?

    修改后的脚本:

    首先,在此修改后的脚本中,从“ K2:K”中检索值。然后,从值中检索范围。

    var sheetName = "sheet"; // Please set the sheet name here.
    
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getSheetByName(sheetName);
    var values = sheet.getRange("K2:K").getValues();
    var ranges = values.map(function(e, i) {return e[0] ? sheetName + "!K" + (i + 2) : ""}).filter(String);
    Logger.log(ranges)
    

    模式2:

    • The sheet name is sheet. In this sheet, you want to retrieve the values of the column "M" when the cell of column "K" is empty.

    从您的问题和脚本中,我也像上面一样理解。如果我的理解是正确的,那么该修改如何?

    修改后的脚本:

    首先,在此修改后的脚本中,从“ A2:M”中检索值。然后,检索当列“ K”为空时列“ M”的值。

    var sheetName = "sheet"; // Please set the sheet name here.
    
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getSheetByName(sheetName);
    var values = sheet.getRange("A2:M").getValues();
    var res = values.map(function(e) {return e[10] ? e[12] : ""}).filter(String);
    Logger.log(res)
    

    注意:

    • In both modified scripts, from your script, it supposes that you want to retrieve the values from one sheet which is sheet.

    参考文献:

    如果我误解了您的问题,而这不是您想要的结果,我深表歉意。