将列连接到单独的行中

时间:2017-11-23 01:42:13

标签: javascript google-apps-script google-sheets google-sheets-api

大家好我使用谷歌应用程序脚本试图从谷歌表格获取数据从原始数据转置到排序表。但我的代码不起作用。我试图做一个自定义功能。并致电=columnSplit(A1:B2, 2, ",")

这就是我所拥有的:

Image One

列A上的日期和编号B上的连接数字。

9/10/17 13:30:00     1234,4567,8910

9/11/17 12:34:00     0987,6543,21 

我想得到什么:

Image Two

9/10/17 13:30:00  1234

9/10/17 13:30:00  4567

9/10/17 13:30:00  8910

9/11/17 12:34:00  0987

9/11/17 12:34:00  6543

我从这里开始参考:How to split and transpose results over 2 columns

function columnSplit(reference, index, delimiter) {
  var input = reference;
  var output = [];
  if (input.constructor !== Array) {
    input = [[input]];                     
  }
  for (var i = 0; i < input.length; i++) {
    var parts = input[i][index - 1].toString().split(delimiter);
    for (var j = 0; j < parts.length; j++) {
      var copy = input[i].slice(0);        
      copy[index - 1] = parts[j].trim();  
      output.push(copy);
    }
  }
  return output
}

1 个答案:

答案 0 :(得分:0)

这有效:

function R2C(a1,idx,dlm){
  var vA=a1;
  var oA=[];
  for(var i=0;i<vA.length;i++){
    var tA=vA[i][idx].toString().split(dlm);
    var oidx=(idx==1)?0:1;
    for(k=0;k<tA.length;k++){
      if(idx==0){
        oA.push([tA[k],vA[i][1]]);
      }else{
        oA.push([vA[i][0],tA[k]]);
      }
    }
  }
  return oA;
}

这些是我的电子表格,展示了如何使用它:

enter image description here

enter image description here

  

对于此功能,a1是一个选定的范围。 idx是0或1.dlm是分隔符。