所以我一直在尝试在Google电子表格中执行以下操作。 The Objective
我需要查看E和F列中的数字,找出哪些数字大于其平均值,并将A,B和E列中的相应值复制到H,I和J列。
如果您看到附图,我设法使用下面给出的代码完成它,但唯一的问题是单元格H4:K7,填充了" NOT_FOUND"当我执行代码时。我通过删除那三行来得到这张照片。
这是代码,
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet(),sheet = ss.getSheetByName("Sheet1"), percentages=sheet.getRange("E3:E78").getValues(),ave,row,len,names=sheet.getRange("A3:A78").getValues(),prices=sheet.getRange("B3:B78").getValues();
var sum=0,count=0,count1;
var locs,rowind,colind;
var result=new Array();
for (row=0;row<3;row++)
{
result[row]=new Array(3);
}
for (row=0,len=percentages.length;row<len;row++)
{
sum=sum+Number(percentages[row]);
}
ave=sum/len;
for (row=0,len=percentages.length;row<len;row++)
{
if (percentages[row]>ave)
{
result.push([[names[row]],[prices[row]],[percentages[row]]]);
count=count+1;
}
}
count=count+3;
locs=sheet.getRange("H4");
rowind=locs.getRowIndex();
colind=locs.getColumn();
locs=sheet.getRange(rowind,colind,count,3);
locs.setValues(result);
}
所以我为代码提出了类似的东西,这导致了正确的输出,但是额外的3x3值为NOT_FOUND。
在使用setValues之前,我尝试将2D数组&#39;结果&#39;返回到电子表格,但电子表格拒绝通过该方法更新。
这就是关于它的。任何人都可以提供的帮助将非常感激:)。
答案 0 :(得分:0)
因为在创建变量“result”之后你正在做一个for循环,你在数组的前3行中添加一个包含3个值的数组:
var result=new Array();
for (row=0;row<3;row++)
{
result[row]=new Array(3);
}
添加这些数组后,您将添加实际结果。 所以最终得到三行,其中包含三个空值,然后是实际结果。 解决方案应该是删除该循环。 如果之后您仍然获得“NOT_FOUND”值,请告诉我。