在R中,data.table库dcast()可以将数据集从宽形转换为长形,如何在googlespreadsheet中做到这一点?
从这种格式:
| JAN | FEB | MAR
----------+------------+------------+-----------
Product 1 | 1 | 2 | 3
Product 2 | 4 | 5 | 6
Product 3 | 7 | 8 | 9
将其转换为以下格式:
Date| Product | Qty
-----------+-----------+----
JAN | Product 1 | 1
FEB | Product 2 | 4
MAR | Product 3 | 9
JAN | Product 2 | 4
FEB | Product 1 | 2
JAN | Product 3 | 7
MAR | Product 2 | 6
FEB | Product 3 | 8
MAR | Product 1 | 3
我们有解决方案吗?
答案 0 :(得分:1)
这个示例脚本怎么样?
使用此脚本时,请首先将输入值放入单元格“ A1:D4”,然后运行myFunction()
。
function myFunction() {
var sheet = SpreadsheetApp.getActiveSheet();
var values = sheet.getRange("A1:D4").getValues(); // Retrieve values
var result = [];
for (var i = 1; i < values.length; i++) {
for (var j = 1; j < values[i].length; j++) {
result.push([values[0][i], values[j][0], values[j][i]]);
}
}
sheet.getRange("A6:C14").setValues(result); // Put result
}
将result.push([values[0][i], values[j][0], values[j][i]]);
修改为temp.push([values[0][j], values[i][0], values[i][j]]);
时,可获得以下结果。