拆分行的单元格部分并保留其余行的公式(对于大型数据集)

时间:2014-05-13 22:33:01

标签: algorithm google-sheets

我有一个包含500多行和三列的大型数据集:namesidvalue。我想将names列拆分为单独的行,每行包含一个名称,但复制idvalue的相同值。

例如,我有这个:

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表格中。

1 个答案:

答案 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的工作。其他所有工作,但我还没有测试过。)