gpt4 book ai didi

google-sheets - 如何自动设置数据格式以在 Google 表格中创建树形图?

转载 作者:行者123 更新时间:2023-12-01 19:30:20 29 4
gpt4 key购买 nike

我想根据 Google 电子表格中的动态数据创建树形图。到目前为止,我成功地获得了 Excel 可以使用的格式的表格,但我不知道如何将该表格转换为 Google 表格可以用来创建此树形图的表格

Excel 可以使用此数据。不是 Google 表格。

我的数据如下所示:

Categories  Item    Value
__________ ______ _____
category_1 item_1 5
category_1 item_2 20
category_1 item_3 1
category_2 item_4 0
category_2 item_5 5
category_2 item_6 18
category_3 item_7 16
category_4 item_8 7
category_4 item_9 16

我想找到一种方法将这些数据转换为如下表所示的内容,可供 Google Sheet 使用。

Item        Parent      Value
__________ __________ _____
Categories 88
category_1 Categories 26
item_1 category_1 5
item_2 category_1 20
item_3 category_1 1
category_2 Categories 23
item_4 category_2 0
item_5 category_2 5
item_6 category_2 18
category_3 Categories 16
item_7 category_3 16
category_4 Categories 23
item_8 category_4 7
item_9 category_4 16

我还没有找到一种方法来做到这一点,并且想知道是否有人遇到过同样的问题。

最佳答案

也许您可以使用这个简单的脚本函数作为示例:

function makeTree() {
var srcRange = SpreadsheetApp.getActiveSheet().getRange('A2:C10'),
tree = {'.Categories': 0}, key;

// Fill tree object with source data
srcRange.getValues().forEach(function(rowValues) {
// Add row value to the root
tree['.Categories'] += rowValues[2];
// Add it to "Category" level
key = 'Categories.' + rowValues[0];
if (tree[key] == undefined) {
tree[key] = rowValues[2];
} else {
tree[key] += rowValues[2];
}
// Add it to "Item" level too
key = rowValues[0] + '.' + rowValues[1];
if (tree[key] == undefined) {
tree[key] = rowValues[2];
} else {
tree[key] += rowValues[2];
}
});

// Format tree rows for output
var values = [];
for (key in tree) {
var subKeys = key.split('.');
values.push([subKeys[1], subKeys[0], tree[key]]);
}

// Fill target data rows
var targetRange = srcRange.offset(0, 4, values.length);
targetRange.setValues(values);
}

这里,我们使用带有点分隔符的复合字符串键将所有数据收集在单个 JS 对象中。在填充目标范围之前,将就绪对象转换为二维数组。因此,我们在同一张纸上有两个范围:

enter image description here

关于google-sheets - 如何自动设置数据格式以在 Google 表格中创建树形图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54699607/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com