代码之家  ›  专栏  ›  技术社区  ›  whytheq

功率为bi dax时总窗口的百分比

  •  1
  • whytheq  · 技术社区  · 6 年前

    我有这两张桌子:

    数据表…

    想象数据= 数据表 “水果”,细绳, “颜色”,字符串, “amount”,整数, { “苹果”,“红色”,10, “苹果”,“绿色”,5, “梨”,“粉红”,100, “梨”,“蓝”,65, “橙色”,“黑色”,12, “橙色”、“白色”、8_ }) < /代码>

    查阅表格…

    想象查找= 数据表 “水果”,细绳, { {“苹果”}, {“梨”}, {橙色} }) < /代码>

    然后我创建了一对多的简单关系:

    现在,我正试图创建要添加到表中的总度量值的百分比-但我希望总度量值的百分比基于在图像切片器中选择的水果总数查找:

    这就是我所尝试的:

    总计= 分 SUM(想象数据[金额]) 计算( SUM(想象数据[金额]) 全部(想象数据) ) ) < /代码>

    如果所有的水果都是在切片机中选出来的,那么它会像我预期的那样工作得很好:

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

    这也不能满足我的需要:

    总计= 分 SUM(想象数据[金额]) 计算( SUM(想象数据[金额]) allexcept(想象数据,想象数据[水果]) ) ) < /代码>

    因为现在如果我选择说梨和橙子,那么它会给我每个水果的百分比,而不是185的百分比:


    亚历克西斯的笔记

    如果我试试这个:

    总计= 分 SUM(想象数据[金额]) 计算( SUM(想象数据[金额]) 全部选定(想象数据[水果]) ) ) < /代码>

    我明白了:

    =

    查阅表格…

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

    然后我创建了一对多的简单关系:

    enter image description here

    现在,我正在尝试创建要添加到表中的总度量值的百分比-但我希望总度量值的百分比基于在图像切片器中选择的水果总数查找:

    这就是我所尝试的:

     %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])
        )
    )
    

    因为现在如果我选择说梨和橙子,那么它会给我每个水果总数的百分比,而不是185的百分比:

    enter image description here


    亚历克西斯笔记

    如果我尝试这个:

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

    我明白这一点:

    1 回复  |  直到 6 年前
        1
  •  1
  •   Alexis Olson    6 年前

    all 函数删除所有过滤器上下文。尝试使用 allselected 这将在删除表Visual的筛选器上下文时保留切片器选择。

    如果您使用这个(注意,我没有指定列):。

    总计= 分 SUM(想象数据[金额]) 计算( SUM(想象数据[金额]) 全部选定(想象数据) ) ) < /代码>

    那么你应该得到这个结果:

    如果您执行 allselected(imaginarydata[fruit])则不起作用的原因是 colour filter context仍然存在,因此您不会拾取其他水果,因为这些都是不同于您正在评估的行的颜色。

    删除表Visual的筛选器上下文时的操作。

    如果使用此选项(注意,我没有指定列):

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

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

    % Total Measure

    如果你这样做,它就不起作用了 ALLSELECTED(ImaginaryData[Fruit]) 那是 Colour 过滤上下文仍然存在,因此您不必提取其他水果,因为这些水果的颜色都不同于您要评估的行。