Power BI DAX中窗口总数的百分比

问题描述 投票:1回答:1

我有这两个表:

数据表......

ImaginaryData = 
DATATABLE (
    "Fruit", STRING,
    "Colour", STRING, 
    "Amount", INTEGER, 
    { 
        { "Apple", "Red", 10 }, 
        { "Apple", "Green", 5 },
        { "Pear", "Pink", 100 },
        { "Pear", "Blue", 65 },
        { "Orange", "Black", 12 },
        { "Orange", "White", 8 }
    } )

查找表...

ImaginaryLookup = 
DATATABLE (
    "Fruit", STRING, 
    { 
        { "Apple" }, 
        { "Pear" },
        { "Orange" }
    } )

然后我创建了这个简单的1对多关系:

enter image description here

现在我想创建一个Percent of Total度量来添加到表中 - 但我希望总数的百分比基于在ImaginaryLookup的切片器中选择的果实总数:

这是我尝试过的:

 %Total = 
DIVIDE(
    sum( ImaginaryData[Amount] ),
    CALCULATE(
        sum( ImaginaryData[Amount] ),
        ALL(ImaginaryData)
    )
)

如果在切片机中选择了所有水果,那么它可以正常工作,如我所料:

enter image description here

但如果我选择说“橙色”,那么结果就不是我想要的,因为我希望12和8是20的百分比:

enter image description here

这也没有给我我想要的东西:

%Total = 
DIVIDE(
    sum( ImaginaryData[Amount] ),
    CALCULATE(
        sum( ImaginaryData[Amount] ),
        ALLEXCEPT(ImaginaryData, ImaginaryData[Fruit])
    )
)

因为现在如果我选择说Pears和Oranges然后它给我百分比作为每个水果总数的百分比,而不是185的百分比:

enter image description here


给亚历克西斯留言

如果我试试这个:

%Total = 
DIVIDE(
    sum( ImaginaryData[Amount] ),
    CALCULATE(
        sum( ImaginaryData[Amount] ),
        ALLSELECTED( ImaginaryData[Fruit])
    )
)

我明白了:

enter image description here

powerbi dax
1个回答
2
投票

ALL函数删除所有过滤器上下文。请尝试使用ALLSELECTED。这将保留切片器选择,同时删除表格可视化的过滤器上下文。

如果你使用它(注意我没有指定一列):

%Total = 
    DIVIDE(
        SUM( ImaginaryData[Amount] ),
        CALCULATE(
            SUM( ImaginaryData[Amount] ),
            ALLSELECTED( ImaginaryData )
        )
    )

然后你应该得到这个结果:

% Total Measure

如果你做ALLSELECTED(ImaginaryData[Fruit])它不起作用的原因是Colour过滤器上下文仍然存在,所以你不要拿起其他水果,因为它们的颜色都不同于你正在评估的行。

© www.soinside.com 2019 - 2024. All rights reserved.