powerbi - 无法计算 power bi 中列总数的百分比
问题描述
我正在尝试创建一个简单的度量来表示一个国家/地区的销售额占总销售额的百分比。我首先在页面上创建了一个切片器,以便用户可以过滤到特定国家/地区。然后,我想使用过滤后的国家/地区的销售额作为分子,对于使用 ALL 函数的分母,删除所有过滤器,以便将总和相加。我的想法是,然后我将表示每个商店(行)的数据,以查看该商店的表现
但是,当我这样做时,我看到的只是运行报告时每一行的 100%。
在进行计算时,如何确保分子和分母正确理解上下文/过滤器。
Test Performance Variance =
VAR __BASELINE_VALUE = SUM('Test'[Sales])
VAR __VALUE_TO_COMPARE = SUM('Test'[Sales])
RETURN
IF(
NOT ISBLANK(__VALUE_TO_COMPARE),
DIVIDE(__VALUE_TO_COMPARE,
CALCULATE( __BASELINE_VALUE,ALL(Test[Country])))
)
期望的结果是这样的:
Store | Sales | Performance
ABC | 15 | 15%
DEF | 65 | 65%
GHI | 20 | 20%
但相反,我看到:
Store | Sales | Performance
ABC | 15 | 100%
DEF | 65 | 100%
GHI | 20 | 100%
解决方案
您将一个常量(VAR
您定义的)放在 aCALCULATE
中,因此ALL
不会做任何事情,因为常量是固定的并且不会随过滤器上下文而改变。
尝试像这样重写度量:
Test Performance Variance =
VAR __BASELINE_VALUE = CALCULATE ( SUM ( 'Test'[Sales] ), ALL ( Test[Country] ) )
VAR __VALUE_TO_COMPARE = SUM ( 'Test'[Sales] )
RETURN
IF (
NOT ISBLANK ( __VALUE_TO_COMPARE ),
DIVIDE ( __VALUE_TO_COMPARE, __BASELINE_VALUE )
)
推荐阅读
- android - MediaPlayer 未在 RecyclerView 中停止
- delphi - 如何在新的 Delphi TEdgeBrowser 中设置用户代理?
- python - 我可以创建一个只到达 px.scatter 中最低点的条形轨迹吗?
- javascript - 如何定位getBoundingClientRect,所以它不返回null?
- pandas - Pandas multiindex unstack fillna 不工作
- dataset - 当我尝试在 for 循环中进行子集化时,为什么我的代码会返回所有记录 - R?
- laravel - Laravel Slack 通知响应
- sql - SQL:是否可以在 varchar 列中选择最后一个分隔符之后的子字符串
- python - 我应该如何在我的 tkinter 应用程序中添加分隔符,或者我应该如何使用 pack() 函数使项目形成垂直列
- excel - VBA 或 Excel 公式循环使用多个条件的多个值