如果日期与 google 个工作表不匹配,则插入空白行
Insert blank row if dates don't match google sheets
如果脚本检测到日期不同,我正在尝试找到一种在 google sheet 中插入空白行的方法。表面上看起来很简单,但我这几天一直在努力寻找解决方案。
下面是数据的示例:
Month Brand Size Impressions
2017/1 Nike 300x25 500
2017/1 Nike 300x250 300
2017/2 Nike 728x90 100
2017/2 Adidas 300x250 400
我需要做的是,当脚本检测到 2017/1 和 2017/2 之间的变化时,它将插入两个空白行,以便分隔月份。
像这样:
Month Brand Size Impressions
2017/1 Nike 300x25 500
2017/1 Nike 300x250 300
2017/2 Nike 728x90 100
2017/2 Adidas 300x250 400
显然这可以手动完成,但 sheet 是从 DFP 动态填充的,旨在成为自动报告。
有人有什么想法吗?
变成空格
我第一次走运运行。我实际上将日期列格式化为年月格式,以确保 getMonth() 函数可以正常工作。
function spacesIntoChanges()
{
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('Sheet1');
var rg=sh.getDataRange();
var vA=rg.getValues();
var spaces=[];
for(var i=2;i<vA.length;i++)
{
if(vA[i][0] && vA[i-1][0] && new Date(vA[i][0]).getMonth() != new Date(vA[i-1][0]).getMonth())//
{
spaces.push(i);
}
}
spaces.sort(compareNumbers);
for(var i=vA.length-1;i>=2;i--)
{
if(spaces.indexOf(i)>-1)
{
sh.insertRows(Number(i+1), 2);
}
}
}
function compareNumbers(a,b)
{
return b-a;
}
Sheet执行前:
Sheet执行后:
添加了更多无间距行:
然后再次执行:
如果脚本检测到日期不同,我正在尝试找到一种在 google sheet 中插入空白行的方法。表面上看起来很简单,但我这几天一直在努力寻找解决方案。
下面是数据的示例:
Month Brand Size Impressions 2017/1 Nike 300x25 500 2017/1 Nike 300x250 300 2017/2 Nike 728x90 100 2017/2 Adidas 300x250 400
我需要做的是,当脚本检测到 2017/1 和 2017/2 之间的变化时,它将插入两个空白行,以便分隔月份。
像这样:
Month Brand Size Impressions 2017/1 Nike 300x25 500 2017/1 Nike 300x250 300 2017/2 Nike 728x90 100 2017/2 Adidas 300x250 400
显然这可以手动完成,但 sheet 是从 DFP 动态填充的,旨在成为自动报告。
有人有什么想法吗?
变成空格
我第一次走运运行。我实际上将日期列格式化为年月格式,以确保 getMonth() 函数可以正常工作。
function spacesIntoChanges()
{
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('Sheet1');
var rg=sh.getDataRange();
var vA=rg.getValues();
var spaces=[];
for(var i=2;i<vA.length;i++)
{
if(vA[i][0] && vA[i-1][0] && new Date(vA[i][0]).getMonth() != new Date(vA[i-1][0]).getMonth())//
{
spaces.push(i);
}
}
spaces.sort(compareNumbers);
for(var i=vA.length-1;i>=2;i--)
{
if(spaces.indexOf(i)>-1)
{
sh.insertRows(Number(i+1), 2);
}
}
}
function compareNumbers(a,b)
{
return b-a;
}
Sheet执行前:
Sheet执行后:
添加了更多无间距行:
然后再次执行: