google-apps-script - 如何在 App Script 中将数据透视表值表示为列总数的百分比?
问题描述
所以我有代码可以在数据透视表中表达我的电子表格数据,但我需要将这些值显示为列总数的百分比。似乎有一个属性可以实现该结果,但我不知道如何将其集成到脚本中。
https://developers.google.com/apps-script/reference/spreadsheet/pivot-value-display-type
function addPivotTable3(spreadsheetId3, pivotSourceDataSheetId3, destinationSheetId3)
{
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheetName = "Sheet3";
var pivotTableParams = {};
// The source indicates the range of data you want to put in the table.
// optional arguments: startRowIndex, startColumnIndex, endRowIndex, endColumnIndex
pivotTableParams.source = {
sheetId: ss.getSheetByName(sheetName).getSheetId()
};
// Group rows, the 'sourceColumnOffset' corresponds to the column number in the source range
// eg: 0 to group by the first column
pivotTableParams.rows = [{
sourceColumnOffset: 2,
sortOrder: "ASCENDING"
}];
// Defines how a value in a pivot table should be calculated.
pivotTableParams.values = [{
summarizeFunction: "SUM",
displayType: "PERCENT_OF_COLUMN_TOTAL",
sourceColumnOffset: 3
}];
var requests = [{
'updateCells': {
'rows': {
'values': [
{
'pivotTable': {
'source': {
'sheetId': pivotSourceDataSheetId3,
'startRowIndex': 0,
'startColumnIndex': 0,
'endRowIndex': 94,
'endColumnIndex': 4,
},
'rows': [
{
'sourceColumnOffset': 2,
'showTotals': true,
'sortOrder': 'ASCENDING',
'valueBucket': {
'buckets': [
{
'stringValue': 'BAE Stages',
},
],
},
},
{
'sourceColumnOffset': 94,
'showTotals': true,
'sortOrder': 'ASCENDING',
'valueBucket': {},
},
],
'columns': [
{
'sourceColumnOffset': 0,
'sortOrder': 'ASCENDING',
'showTotals': true,
'valueBucket': {},
},
],
'values': [
{
'summarizeFunction': "SUM",
'sourceColumnOffset': 3,
//'displayType': "PERCENT_OF_COLUMN_TOTAL",
//This line triggers a JSON erorr
},
],
'valueLayout': 'HORIZONTAL',
},
},
],
},
'start': {
'sheetId': destinationSheetId3,
'rowIndex': 0,
'columnIndex': 0,
},
'fields': 'pivotTable',
},
}];
var response =
Sheets.Spreadsheets.batchUpdate({'requests': requests}, spreadsheetId3);
}
解决方案
好吧,我也不知道,文档太神秘了。
我正要放弃然后我遇到了这个:https ://developers.google.com/sheets/api/reference/rest/v4/spreadsheets#PivotValueCalculatedDisplayType
最终我计算出你的线路应该是:
'calculatedDisplayType' : "PERCENT_OF_COLUMN_TOTAL",
(在上面的网页上PivotValueCalculatedDisplayType
和表格中是你提到的 ENUM,“PERCENT_OF_COLUMN_TOTAL”我有一种预感,因为我们在对象的数据透视表/值部分,我们不需要 PivotValue ......所以我们'重新留下计算的DisplayType。
呸。
推荐阅读
- javascript - 如何制作一周中的一天计算器?
- json - 根据json类型列中值的存在获取Eloquent模型
- python - 在python的数据框中分组和打印最大值
- ios - 单击按钮后,从数组索引 0 移动到 1,依此类推
- excel - VBA Excel 字符串类型不匹配
- python - 如何将标记添加到 Folium 中的多个 FeatureGroup?
- json - 我想编写 XQuery 来打印 JSON 中的特定键
- reactjs - 错误..无法加载 PDF 文档 (reactjs)
- r - 计算 R 中的学术“g-index”(h-index 的变体)?
- python - 使用上下文管理器存储模型参数