【发布时间】:2020-04-28 09:47:16
【问题描述】:
我有一些用户希望能够修改表格聚合的列。我的问题是我似乎无法在 Power BI 中执行此操作。我基本上希望能够在 SQL 中执行以下操作:
SELECT
<OrgLevel1>,
<OrgLevel2>,
SUM([Revenue])
FROM [Data]
GROUP BY
<OrgLevel1>,
<OrgLevel2>
;
用户可以将<OrgLevel1>和/或<OrgLevel2>更改为{"(All)"、[Department]、[Product]}中的任何一个。
这里有一个指向说明此问题的工作簿的链接,TestParameterizeGroupby.pbix(由 Google 云端硬盘托管)。我还在下面的屏幕截图中包含了字段定义。感谢您的帮助。
TestParameterizeGroupby.pbix
链接:TestParameterizeGroupby.pbix(由 Google Drive 托管)
问题
[Org Level 1] 和 [Org Level 2] 字段不会根据用户的选择重新计算。仅显示默认值。
表中的预期结果
"Org Level 1", "Org Level 2", "Revenue"
"(All)", "(All)", 28
注意
目的是具有可参数化的组织级别字段,以便报告用户可以按全部、部门、产品或两者按任一顺序汇总。
表和列定义
'Data' = DATATABLE(
"Department",
STRING,
"Product",
STRING,
"Revenue",
DOUBLE,
{
{"DeptA", "ProdX", 5.0},
{"DeptA", "ProdY", 6.0},
{"DeptB", "ProdX", 10.0},
{"DeptB", "ProdY", 7.0}
}
)
'Data'[Org Level 1] = SWITCH(
'Org Level 1 Parameter'[Org Level 1 Parameter Value],
0,
"(All)",
1,
[Department],
2,
[Product]
)
// Problem: [Org Level 1] and [Org Level 2] fields are not recalculating from the users' selection. Only the default values are shown.
'Org Level 1' = DATATABLE(
"Org Level 1",
STRING,
"Org Level 1 Parameter",
INTEGER,
{
{"(0) (All)", 0},
{"(1) Department", 1},
{"(2) Product", 2}
}
)
'Org Level 1 Parameter'[Org Level 1 Parameter] = GENERATESERIES(0, 2, 1)
'Org Level 1 Parameter'[Org Level 1 Parameter Value] = SELECTEDVALUE('Org Level 1 Parameter'[Org Level 1 Parameter], 1)
表 'Org Level 1' 与列 [Org Level 1 Parameter] 上的 'Org Level 1 Parameter' 具有 1-1 关系。
用户通过选择“Org Level 1”[Org Level 1] 的值来选择“Data”[Org Level 1] 的值。
[Org Level 2] 的表和列的定义方式与 [Org Level 1] 相同。
截图
交叉引用 Power BI 论坛中的帖子: Power BI Forum: How to parameterize a column for aggregation
【问题讨论】:
标签: group-by parameters powerbi aggregation powerbi-desktop