我有一个脚本,它有一个函数,可以在Google电子表格中的一系列行中运行,并将F列中的多行单元格拆分为多行。然后继续将同一行其他列中的单元格复制到新创建的行中。下面是我的意思的一个例子。
函数运行的范围如下:
该函数运行并生成以下内容:
如您所见,在第一幅图中,F列中的某些单元格有多行。该函数检测这些单元格,将它们拆分为尽可能多的行(有换行符),然后复制其他列中的剩余单元格。对于“John Doe”和“Candice Len”,F列都有多行条目,因此,在函数运行后,这两个名称的行数与F列中的地址相同。
我使用的函数如下:(F列的函数中有索引5)
function result(range) {
var output2 = [];
for(var i=0, iLen=range.length; i<iLen; i++) {
var s = range[i][5].split("\n");
for(var j=0, jLen=s.length; j<jLen; j++) {
var output1 = [];
for(var k=0, kLen=range[0].length; k<kLen; k++) {
if(k == 5) {
output1.push(s[j]);
} else {
output1.push(range[i][k]);
}
}
output2.push(output1);
}
}
return output2;
}
这很好用。但是,我希望该函数对F列以外的其他列执行相同的操作。因此,如果其他列有多行条目,我希望该函数遍历这些行,将多行单元格拆分为多行,只要有换行符,并将其余列中的单元格内容复制到新创建的行中。下面是一个示例,其中列E和F都有多行条目。
如果我有这样的东西:
我希望函数将其转换为:
在这种情况下,需要注意的是,对于每个多行单元格,每行必须具有相同数量的换行符,因为不同的行必须映射到不同列中的相应行。换句话说,以最后两张截图为例,在“John Doe”条目中,“旧金山”必须与“address1”位于同一行,“辛辛那提”必须与“address2”位于同一行。对于“Candice Len”条目,“Washington”、“Phoenix”、“address1”和“address2”也是如此。
列E和F只是一个示例。脚本必须在两列以上的多行单元格中运行。
我如何才能更改脚本,使其能够对其他列而不仅仅是F列执行相同的操作?
非常感谢你。