如何根据当前单元格的值将相邻单元格的值添加到列表中?

时间:2018-10-04 15:51:55

标签: google-apps-script google-sheets

让我们假设colA包含雇员的姓名。 ColB包含一个'clocked in'值或一个空值“”(如果它们不起作用)。 如何遍历colB查找空单元格,然后将colA中的相应名称附加到列表(或数组?)上? 最后,我想返回此列表并将其显示在屏幕上(或将其提供给另一个脚本)。
这是一个示例说明,但是脚本将在我的实际数据中处理相同的前提。

我的第一次尝试导致了这一小问题(至少,这是个主意,但这是行不通的,仍然是一个新手):

function getAbsEmployees() {
    
  var absent = [];
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('clocking in');
  var status = sheet.getRange(112, 2, 10, 1).getValues(); //colB
  Logger.log(status) //no problem up until now
  
  for (var i = 0; i < status.length; i++) {
    
    if (status[i][1] === "") {
          
    absent.push(status[i][0]); //corresponding value from colA is added to list
    }
  }
  
  return( absent );  
  
  SpreadsheetApp.getUi().alert(absent); //Logger.log does the same here, obviously
  
}

1 个答案:

答案 0 :(得分:1)

作为自定义函数,将此= getAbsEmployees()放置在员工姓名范围之外的任何单元格中。

自定义函数如下所示。

function getAbsEmployees() {

  var absent = [];
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('clocking in');
  var names = sheet.getRange(1,1,12,2).getValues();

  for (var i = 0; i < names.length; i++) {
    if( names[i][1] === "" ) absent.push(names[i][0]);
  }

  return( absent );
}