【问题标题】:Google Spreadsheet - Convert multiple columns to one columnGoogle 电子表格 - 将多列转换为一列
【发布时间】:2016-08-02 16:49:40
【问题描述】:

我想遍历 Google 电子表格中的一组行,如下所示:

XXX 123 234 234

YYY 789 098 765

ZZZ 76 123 345

最终结果必须是:

XXX:123

XXX:234

XXX:234

YYY:789

YYY:098

等等

我当前的代码:

function loopshoplocations(){ 
  var sheet = SpreadsheetApp.getActiveSheet(); 
  var data = sheet.getRange('A4:A8').getValues(); 
  var i=0; 
  for(i = 0; i < 4; i++){
    return ('Shop Location: ' + data[i][0]);
  }}

【问题讨论】:

    标签: for-loop google-apps-script google-sheets


    【解决方案1】:

    或者用公式

    =ArrayFormula( transpose(split(query(rept(left(A2:A, 3)&" ", 3),,50000), " "))&": "
    &transpose(split(query(regexreplace(A2:A, "^(.+?)\s",""),,50000), " ")))
    

    另见此截图:

    【讨论】:

      【解决方案2】:

      此代码假定第一行有一个标题行。数据将附加在工作表的末尾。如果您想要不同的东西,则需要调整代码。

      function loopshoplocations() {
        var data,L,outerArray,innerArray,numberOfRows,sheet,startRow;
      
        startRow = 2;
      
        sheet = SpreadsheetApp.getActiveSheet();
        numberOfRows = sheet.getLastRow();
        data = sheet.getRange(startRow,1,numberOfRows-startRow+1,4).getValues(); 
        L = data.length;
      
        //Logger.log(data);
      
        outerArray = [];
      
        var i,j;
        for(i = 0; i < L; i++){
      
          for (j=1; j<4 ; j+=1) {//Begin count at one, not zero
            innerArray = [];//Reset
            innerArray.push(data[i][0]);
            innerArray.push(data[i][j]);
            //Logger.log(innerArray)
            outerArray.push(innerArray);
          };
        };
      
        sheet.getRange(numberOfRows+1,1,outerArray.length,outerArray[0].length).setValues(outerArray);
      };
      

      【讨论】:

        猜你喜欢
        • 2020-07-19
        • 1970-01-01
        • 2022-07-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-04
        • 1970-01-01
        相关资源
        最近更新 更多