大家好我使用谷歌应用程序脚本试图从谷歌表格获取数据从原始数据转置到排序表。但我的代码不起作用。我试图做一个自定义功能。并致电=columnSplit(A1:B2, 2, ",")
。
这就是我所拥有的:
列A上的日期和编号B上的连接数字。
9/10/17 13:30:00 1234,4567,8910
9/11/17 12:34:00 0987,6543,21
我想得到什么:
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
}
答案 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;
}
这些是我的电子表格,展示了如何使用它:
对于此功能,a1是一个选定的范围。 idx是0或1.dlm是分隔符。