google-apps-script - 跟踪进入空白行
问题描述
我有一个列出我们公司客户的电子表格(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 列中没有输入数据的单元格?
解决方案
尝试这个:
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');
}
推荐阅读
- mysql - Mysql Left Join 最后一条记录
- javascript - 将 Javascript 值提升一级 - 将 key:object:key 设为 object:key
- android - 在 Android 中删除和添加视图而不会丢失其属性
- python - Pandas 如何根据其他列有条件地拆分列?
- webrtc - Torrent P2P 共享和 WebRTC P2P 共享之间的区别?
- python - re.search() 和 re.findall() 挂起
- amazon-web-services - 将现有根卷附加到 ec2 现货实例
- excel - 更改不同工作簿的单元格
- angular - 在 Angular typings.d.ts 中定义多个模块的问题
- db2 - SQL CASE 表达式给出计算错误信息