无法计算功率bi中列总数的百分比

时间:2019-04-17 16:45:05

标签: powerbi dax

我正在尝试创建一个简单的方法来表示一个国家/地区的销售额占总销售额的百分比。我首先在页面上创建了一个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%

1 个答案:

答案 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 )
    )