电子表格目前采用 Google 表格格式。
我无法实现这一点并使事情保持动态。
您可以使用以下脚本作为您的脚本的基础:
function segregateData() {
var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Input");
var shOut = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Output");
var dataCol1 = sh.getRange(1, 5, 1, 5).getValues();
var dataColTrans = dataCol1.map((x) => x.map(y => [y])).flat(Infinity);
dataColTrans.unshift("Items");
var data = sh.getRange(2, 3, sh.getLastRow() - 1, sh.getLastColumn() - 2).getValues();
var data1 = data.map((x) => x.length >= 2 ? [x[0] + " (" + x[1] + ")"].concat(x.slice(2)) : x);
var data2 = data1[0].map((x, i) => data1.map(y => y[i]));
var dataOut = []
for (var i = 0; i < data2[0].length; i++) {
for (var j = 0; j < data2.length; j++) {
dataOut.push([dataColTrans[j], data2[j][i]])
}
j = 0;
dataOut.push(["", ""]); //spacing
dataOut.push(["", ""]); //spacing
}
shOut.getRange(1, 1, dataOut.length, dataOut[0].length).setValues(dataOut);
}
此脚本在以下设置下有效:
您可以编辑该行:
shOut.getRange(1, 1, dataOut.length, dataOut[0].length).setValues(dataOut);
调整输出的位置。
预期输出应如下所示: