我试图以编程方式复制Google电子表格中的行。我想将行复制的次数基于行本身中的一个值。
例如,假设我有一个这样的表:
您可以看到C列中有数字.C列中的值是我想复制该行的次数。这就是期望的结果:
从技术上讲,如果C列中的值为3,我们会将该行重复两次。
有关如何编写Google电子表格脚本以执行此操作的任何想法都会很棒!
谢谢!
答案 0 :(得分:6)
这很简单,您应该自己尝试一下。我敢肯定,当你阅读下面的代码时,你会说“哦,当然,我可以轻松地完成它”......对吗?
function autoDup() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = sheet.getDataRange().getValues();
var newData = [];
for(var n in data){
newData.push(data[n]);
if(!Number(data[n][2])){continue};// if column 3 is not a number then do nothing
for(var c=1 ; c < Number(data[n][2]) ; c++){ // start from 1 instead of 0 because we have already 1 copy
newData.push(data[n]);//store values
}
}
sheet.getRange(1,1,newData.length,newData[0].length).setValues(newData);// write new data to sheet, overwriting old data
}
答案 1 :(得分:0)
假设您输入的内容位于inSheet上,则可以在另一张纸上放置以下公式=transpose(split(arrayformula(textjoin(",",false,iferror(rept(inSheet!A1:A&",",inSheet!$C1:$C)))),","))
并将其向右拖动两次,即可完成操作。
可以将其防弹,以处理空单元格或逗号或重复值为0的单元格,但对于像上面这样的漂亮数据,它照常工作。