首页 > 解决方案 > 跟踪进入空白行

问题描述

我有一个列出我们公司客户的电子表格(A21:A250 已格式化,但目前只有 A21:A106 有数据)。我想做的是在进入下一个空白行时计算新客户。我尝试了几种不同的方法,但无济于事。这是我一直在做的事情。

我已经尝试过工作表本身的公式(COUNTIF 不是空白)。这就像它应该的那样,但问题是我需要按月捕获新客户(A 之后的列数月)。我创建了另一个电子表格,其中有一个按钮,我每月单击一次以导入数据,从而捕获当天的这些数字。

function newCustomers() {
  ss = SpreadsheetApp.getActiveSpreadsheet();
  sourceSheet = ss.getSheetByName('BACKLOG');
  var lrow = sourceSheet.getLastRow();
  var range = sourceSheet.getRange(21, 1, lrow, 1);
  var data = range.getValues();
  var countNew = 0;

  for (var i=0; i<data.length; i++) {
    if (data[i][0] !== null) {
    countNew++
   }
 }
   Logger.log('New Customers' + countNew)
}

上面的代码有效,但每次运行时都会在日志中报告 250(范围中的最后一个空白列)。如何将其更改为仅计算 A 列中没有输入数据的单元格?

标签: google-apps-scriptgoogle-sheets

解决方案


尝试这个:

function newCustomers() {
  var ss=SpreadsheetApp.getActive();
  var srcsh=ss.getSheetByName('BACKLOG');
  var startrow=21;
  var rg=srcsh.getRange(startrow, 1, srcsh.getLastRow()-startrow + 1, 1);
  var dA=rg.getValues();
  var count=0;
  for (var i=0;i<dA.length;i++) {
    if(dA[i][0] && dA[i][0].length>0) {
      count++;
    }
  } 
  var html=Utilities.formatString('Count: %s', count);
  SpreadsheetApp.getUi().showModelessDialog(HtmlService.createHtmlOutput(html),'Count');
}

推荐阅读