我有一个脚本,其中包含一个函数,它会遍历 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”条目中,“San Francisco”必须结束于与“address1”相同的行,“Cincinnati”必须结束于与“address2”相同的行。对于“Candice Len”条目,“Washington”、“Phoenix”、“address1”和“address2”也是如此。 列E和F只是示例。脚本必须遍历超过两个列的多行单元格。 我该如何更改脚本,使其能够对其他列执行相同的操作,而不仅仅是F列?
非常感谢。