我正在尝试制作一个谷歌脚本,以自动化谷歌电子表格中的一些计算。 我在这张表中有几件事,我需要的是,对于A列上的所有日期值(在第3行和第20行之间),我需要搜索列T(第17行和第50行之间)以及日期匹配时我需要获取T列中数据旁边的单元格中的值。
然后用这个总和我需要去B行向下移动一行并从上面的单元格中减去这个总和。
例如: 一个 17/8/2017 18/8/2017 19/8/2017
乙 100 空 空
Ť 空 空 18/8/2017 18/8/2017 18/8/2017 19/8/2017
û 空 空 五 五 2 1
运行脚本B之后应该是: 100 88 87
我的代码:
function burnDown(){
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = sheet.getDataRange().getValues();
var completed = sheet.getRange(20, 20, 40);
for(var i = 3; i<20;i++){
for(var j = 1; i<50; j++){
var sum = 0;
if(data[i][0] == completed[j][0])
{
sum = sum + completed[j][20];
Logger.log(completed[j][21] + "" + sum);
}
j++;
}
i++;
}
}
我陷入了这一点,我必须进行匹配,但我得到错误:TypeError:无法从undefined中读取属性“0”。 (第9行,文件“BurnDown” 谢谢,
答案 0 :(得分:0)
没有完成的值。也许你需要一个getValues()某处
function burnDown()
{
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = sheet.getDataRange().getValues();
//var completed = sheet.getRange(20, 20, 40);//this is a range
var completed = sheet.getRange(20,20,40).getValues();//this creates a 2d array of values
for(var i = 3;i<20;i++)
{
for(var j = 1; j<50; j++)
{
var sum = 0;
if(data[i][0]==completed[j][0])
{
sum=sum + completed[j][20];
Logger.log(completed[j][21] + "" + sum);
}
//j++;//not sure why these are here the loop increments
}
//i++;//same question as above
}
}