我有一个包含500多行和三列的大型数据集:names
,id
,value
。我想将names
列拆分为单独的行,每行包含一个名称,但复制id
和value
的相同值。
例如,我有这个:
names id value
bob, sam, bill 99 10
harris 95 11
george, john 98 14
tom, harry 97 13
我需要得到这个:
bob 99 10
sam 99 10
bill 99 10
harris 95 11
george 98 14
john 98 14
tom 97 13
harry 97 13
我还需要能够在一次或两次迭代中完成此操作,因为我总共有500多行。我setup a test sheet here。此外,我需要解决方案在Google表格中。
答案 0 :(得分:0)
我不熟悉电子表格API(而且我不愿意注册Google),但我认为您应该能够做到这样的事情:
var sheet = SpreadsheetApp.getActiveSheet();
var row = 2;
var col = 0;
var values = [];
var start = row;
for (;;) {
var range = sheet.getRange(row, col, 1, 3);
var data = range.getValues();
if (data[0] == "") break;
var names = data[0].split(/, */);
for (var i = 0; i < names.length; i++) {
values.push([names[i], data[1], data[2]]);
}
row++;
}
var range = sheet.getRange(start, col, values.length, 3);
range.setValues(values);
这会扩展您的列表,覆盖原始列表。您可以通过更改最后一个范围中的行和列来制作副本。 (任何不直接使用Spreadsheet API的工作。其他所有应工作,但我还没有测试过。)