Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 跟踪输入到空行_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 跟踪输入到空行

Google apps script 跟踪输入到空行,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我有一个电子表格,列出了我们公司的客户(A21:A250是格式化的,但目前只有A21:A106有数据)。我想做的是在下一个空行中输入一个条目时统计新客户的数量。我试过几种不同的方法,但都没用。这是我一直在做的 我在表格中尝试过公式(如果不是空白的话)。这就像它应该做的那样,但问题是我需要按月捕获新客户(连续数月后的列)。我创建了另一个电子表格,它有一个按钮,我每个月点击一次以导入数据,从而捕获当天的数据 function newCustomers() { ss = SpreadsheetAp

我有一个电子表格,列出了我们公司的客户(A21:A250是格式化的,但目前只有A21:A106有数据)。我想做的是在下一个空行中输入一个条目时统计新客户的数量。我试过几种不同的方法,但都没用。这是我一直在做的

我在表格中尝试过公式(如果不是空白的话)。这就像它应该做的那样,但问题是我需要按月捕获新客户(连续数月后的列)。我创建了另一个电子表格,它有一个按钮,我每个月点击一次以导入数据,从而捕获当天的数据

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)
}
函数newCustomers(){
ss=电子表格应用程序。getActiveSpreadsheet();
sourceSheet=ss.getSheetByName('BACKLOG');
var lrow=sourceSheet.getLastRow();
var range=sourceSheet.getRange(21,1,lrow,1);
var data=range.getValues();
var countNew=0;
对于(var i=0;i尝试以下方法:

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');
}
函数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计数=0;
对于(var i=0;i0){
计数++;
}
} 
var html=Utilities.formatString('计数:%s',计数);
SpreadsheetApp.getUi().showModelessDialog(HtmlService.createHtmlOutput(html),'Count');
}

不严格等于
null
。空单元格被读取为
(当前返回
”公式的单元格也是如此)。因此,因为没有一个获得的单元格值是完全
null
,所以报告的结果是250。当然,谢谢!我知道我只是错过了一些简单的东西。我感觉它就在我的脑海里。我上面的代码很有效,但我更喜欢你的代码。不过,我只是想到了一件事,我设置它的方式并不真实请将当前数字与前一个数字进行比较,以便如果我在1月份添加新客户,那么在2月份运行脚本时,它将再次计数。在我现在使用的脚本中,我从变量newCustomers(仅在1月份有效)中减去86(1月1日的客户数).处理这个问题的最佳方法是什么?我可以设置另一个等于newCustomer的变量来比较下个月吗?你有没有另一列记录他们成为客户的日期?我有一列,F,记录他们成为客户的1周年纪念日。我会看看我能做些什么!获取从该日期到的月份制作您的报告
新日期(dA[i][?])。getMonth()