powerbi - power bi 矩阵中的自定义聚合列
问题描述
我正在尝试在 Power BI 报告中创建一个矩阵,以总结以多种不同方式划分的销售人员绩效。
我知道如何创建一个矩阵,其中包含行 - 销售人员、列 - 产品类型和值 - 销售数量,它将显示每种产品类型的每个销售人员的销售数量,但我还希望能够执行以下操作:
- 添加一个额外的列集以透视(例如销售年份),以便我可以在同一个表中并排看到按产品类型和年份旋转的销售计数(即,未嵌套)。
- 在我的矩阵中添加额外的汇总列,显示诸如销售人员的平均销售金额、销售人员销售总数的百分比等值。
为了清楚起见,我想这会导致一个矩阵,其中列标题为:销售人员,产品 1,产品 2,...,第 1 年,第 2 年,...,总销售额,平均销售额,占总销售额的百分比。请参阅下面的图片链接(我还没有声誉点来包含实际图片)
我认识到我可以通过创建有效复制矩阵如何拆分值并将每个度量添加为值(无列)的度量来做到这一点,但我不想每次都创建新度量并更新矩阵年或每次我们添加新的产品类型时。
我还查看了 Power BI 市场上的自定义视觉效果,但没有看到任何可以实现这一目标的方法。
解决方案
有可能做到这一点,但并不容易。您需要一个带有SWITCH
标题的度量以及一个表格。
您可以按照以下方式创建标题表:
Header =
UNION (
SUMMARIZE ( Sales, Sales[Product], "Group", "By Product", "Index", 1 ),
SUMMARIZE ( Sales, Sales[Year], "Group", "By Year", "Index", 2 ),
DATATABLE (
"Header", STRING,
"Group", STRING,
"Index", INTEGER,
{
{ " Total", "Summarizations", 3 },
{ "% of Total Sales", "Summarizations", 3 },
{ "Avg Sale Size", "Summarizations", 3 }
}
)
)
看起来像这样:
Header, Group, Index,
Product 1, By Product, 1,
Product 2, By Product, 1,
2016, By Year, 2,
2017, By Year, 2,
2018, By Year, 2,
Total, Summarizations, 3,
% of Total Sales, Summarizations, 3,
Avg Sale Size, Summarizations, 3
当添加更多产品或年份时,此表将自动扩展。
(注意:该Index
列是这样我可以使用按列排序正确排序它们。)
一旦你有了它,你只需要在矩阵视觉的列和行上放置Group
和,并在值中使用切换度量。Header
Salesperson
Measure =
VAR Val =
SWITCH (
SELECTEDVALUE ( Header[Group] ),
"By Product", CALCULATE (
SUM ( Sales[Amount] ),
FILTER ( Sales, Sales[Product] = MAX ( Header[Header] ) )
),
"By Year", CALCULATE (
SUM ( Sales[Amount] ),
FILTER ( Sales, Sales[Year] = VALUE ( MAX ( Header[Header] ) ) )
),
SWITCH (
SELECTEDVALUE ( Header[Header] ),
"% of Total Sales", DIVIDE (
SUM ( Sales[Amount] ),
CALCULATE ( SUM ( Sales[Amount] ), ALL ( Sales ) )
),
"Avg Sale Size", AVERAGE ( Sales[Amount] ),
SUM ( Sales[Amount] )
)
)
RETURN
IF (
SELECTEDVALUE ( Header[Header] ) = "% of Total Sales",
FORMAT ( Val, "0.0%" ),
FORMAT ( Val, "0.0" )
)
每个不同的组都有自己的计算,我们必须使用该FORMAT
函数来强制表格正确格式化百分比函数。
(注意:如果你有切片器或过滤器,你可能想ALLSELECTED
在我ALL
上面使用的地方使用。)
这是我的表的样子(不是完全相同的数据,而是相似的结构)
这是我为此创建的 PBIX 文件:
https://drive.google.com/file/d/1qxc5p53MgmOm-NH3EcivkZLhLeEHpr4R/
推荐阅读
- javascript - 如何自定义 jquery.formset.js django
- reactjs - React Hooks,尝试用更新的值替换对象的一部分
- amazon-web-services - 在地图状态迭代器中使用“ResultPath”字段时出错?“Step Functions 不支持字段‘ResultPath’”
- laravel - 如何在 AWS Elastic Search 中进行批量索引
- python - 通过字典内的元素查询 Firestore 中的文档
- sql - 选择需要条件帮助的案例
- maxima - 我怎样才能给一个最大值的数组变量一个值?
- multithreading - 如何从kotlin中的线程中提取返回值
- python - 如何从 discord API (URL) 获取用户状态
- laravel - 从 svg 图像中删除类,vue js