Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 如何使用google apps脚本以新格式在另一个选项卡中汇总数据_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 如何使用google apps脚本以新格式在另一个选项卡中汇总数据

Google apps script 如何使用google apps脚本以新格式在另一个选项卡中汇总数据,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我有许多行中的原始数据,我想以新的所需格式(如图片)将这些数据汇总到一个新选项卡: 函数getData(){ var ss=SpreadsheetApp.getActiveSpreadsheet(); var sheet=ss.getSheets(); 活页。设置冻结行(1); var值=[“车间订单”、“零件号”、“工作站”、“计数工作站”]; var range=yourNewSheet.getRange(“A1:D1”); 范围。设置值(值); var sheet1Sheet=ss

我有许多行中的原始数据,我想以新的所需格式(如图片)将这些数据汇总到一个新选项卡:

  • 函数getData(){ var ss=SpreadsheetApp.getActiveSpreadsheet(); var sheet=ss.getSheets(); 活页。设置冻结行(1); var值=[“车间订单”、“零件号”、“工作站”、“计数工作站”]; var range=yourNewSheet.getRange(“A1:D1”); 范围。设置值(值); var sheet1Sheet=ss.getSheetByName(“Sheet1”); var columnF=sheet1Sheet.getRange(“F2:F”).getValues(); var columnB=sheet1Sheet.getRange(“B2:B”).getValues(); var columnC=sheet1Sheet.getRange(“C2:C”).getValues(); }} 我不知道如何编写代码将我的数据更改为新格式。

    这里有一个工作代码段,它通过
    • shop\u order
      part\u number
      的组合分配给一个数组,并将每一行转换为一个数组条目
    • 估计每次组合发生的次数,并将结果分配给数组和的一个条目
    • 检查组合是否首次发生
    • 将包含
      零件号
      车间订单
      总和
      的行填充到第二张表中,每次组合一次
    
    函数myFunction(){
    var sheet=SpreadsheetApp.getActive().getSheetByName('Sheet1');
    var sheet2=SpreadsheetApp.getActive().getSheetByName('Sheet43');
    var rowNumber=sheet.getLastRow()-1;
    var-columnShopOrder=6;
    var columnPartNumber=2;
    var shopOrder=sheet.getRange(2,columnShopOrder,rowNumber,1).getValues();
    var partNumber=sheet.getRange(2,columnPartNumber,rowNumber,1).getValues();
    变量计数=[]
    
    对于(var a=0;a从其他问题来看,您链接到的文件不可访问。很抱歉,这是我第一次在堆栈溢出中提出问题。我编辑了这个问题,并添加了更多已完成的信息。感谢您的好意。但是…我不知道如何将循环写入工作站以我的格式。我可以想到的方法是通过对工作站的所有事件进行统计,计算每个事件发生的次数,构建一个事件总数-就像上面代码中对总数所做的那样,但对每个工作站分别进行计算,然后将所有这些信息推到一个字符串中。非常密集的编码,这就是为什么我建议您考虑如何表示其他解决方案的原因您的数据,或使用数据透视表对其进行汇总,这可以从UI手动完成。
    
    function myFunction() {
    
      var sheet=SpreadsheetApp.getActive().getSheetByName('Sheet1');
      var sheet2=SpreadsheetApp.getActive().getSheetByName('Sheet43');
      var rowNumber=sheet.getLastRow()-1;
      var columnShopOrder=6;
      var columnPartNumber=2;
      var shopOrder=sheet.getRange(2,columnShopOrder,rowNumber,1).getValues();
      var partNumber=sheet.getRange(2,columnPartNumber,rowNumber,1).getValues();
    
      var count=[]
      for(var a=0;a<partNumber.length;a++)
      {
       count.push(shopOrder[a][0]+partNumber[a][0]) 
      }
      var sum=[];
      var element;
      for(var j=0;j<count.length;j++){
        element=count[j];
        var indexes = [], i, occurence;
        for(i = 0; i < count.length; i++){
          if (count[i] == element){
             indexes.push(i);
            if(count.indexOf(element)==j){
              occurence='first';
            }     
          }
        }
        if(occurence=='first') {
         sum.push([indexes.length])
         } else {
           sum.push([0])
         }
        occurence='existing';  
      }
      for(var x=0;x<sum.length;x++){
        if(sum[x][0]!=0)
        {
          sheet2.appendRow([shopOrder[x][0], partNumber[x][0], sum[x][0]]);
        }
      }
    }