我正在尝试创建一个简单的方法来表示一个国家/地区的销售额占总销售额的百分比。我首先在页面上创建了一个Slicer,以便用户可以过滤到特定的国家。然后,我想将过滤后的国家/地区的销售量用作分子,对于使用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%
答案 0 :(得分:1)
您要将常量(您定义的VAR
放在CALCULATE
中,因此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 )
)