Google电子表格编程,setValues

时间:2015-12-31 18:12:42

标签: google-apps-script

所以我一直在尝试在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;返回到电子表格,但电子表格拒绝通过该方法更新。

这就是关于它的。任何人都可以提供的帮助将非常感激:)。

1 个答案:

答案 0 :(得分:0)

因为在创建变量“result”之后你正在做一个for循环,你在数组的前3行中添加一个包含3个值的数组:

var result=new Array();
for (row=0;row<3;row++)
{
  result[row]=new Array(3);
}

添加这些数组后,您将添加实际结果。 所以最终得到三行,其中包含三个空值,然后是实际结果。 解决方案应该是删除该循环。 如果之后您仍然获得“NOT_FOUND”值,请告诉我。