首页 > 解决方案 > 无法计算 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%

标签: powerbidax

解决方案


您将一个常量(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 )
    )

推荐阅读