使用多个切片器选择更新百分比度量

Update a Percent Measure with Multiple Slicer Selections

我有一个 table,我想在其中更新每个过滤器的“百分比值”度量值(用户可以 select slicer/s 中的一个或多个值]).在可视化一年的所有标记中,月份需要添加到 1.0 有或没有切片器 selections。

在@Phil Leh () 的帮助下,度量适用于年、月,并且度量给出了正确的值:

但是我不确定我能做些什么来使用多个 select 离子更新 % 值。例如,这里的百分比值没有计算为 1.0 对于 Race 和 Year,每个 Year,Month 的月份:

我更改了现有的 DAX(根据年、月给出正确的值),以便它也可以捕获 Race。但是结果是错误的。

Percent Values = 
VAR num =
   CALCULATE( SUM ( question[Count Values] ))

-- this one filters month and year
VAR fmy =
    FILTER (
        -- clear all filter from our table
        ALL ( question ),
        -- and keep only the values matching the
        -- filter context's current month and year
        question[Date].[Month]
            = MAX ( question[Date].[Month] )
            && question[Date].[Year]
                = MAX ( question[Date].[Year] )
            --|| question[Race]
            --    = MAX ( question[Race] )
            --|| question[Gender]
            --    = MAX( question[Gender] ) 
            --|| question[visa_country]
            --    = MAX( question[visa_country] ) 
    )

VAR fr =
    FILTER (
        -- clear all filter from our table
        ALL ( question ),
        -- and keep only the values matching the
        -- filter context's current month and year
         question[Race]
                = MAX ( question[Race] )
    )

VAR denom =
    IF (
        -- checking if Month is in current filter context
        ISINSCOPE ( question[Date].[Month] ), --|| ISINSCOPE ( question[Race] ) || ISINSCOPE ( question[Gender] ) || ISINSCOPE (question[visa_country] ),
           
        -- if yes, use the filter fmy (calculate denom for this quarter
        CALCULATE (
            SUM ( question[Count Values] ),
            ALLSELECTED (),
            fmy
        ),
        --IF (
        --        ISINSCOPE ( question[Race] ),
        --        CALCULATE (
        --            SUM ( question[Count Values] ),
        --            ALLSELECTED (),
        --           fr
        --        ),
            -- else, calculate the denom for all values
            -- this could also be BLANK() or some other calculation
        --    CALCULATE (
        --        SUM ( question[Count Values] ),
        --        ALLSELECTED ()
        --    )
        --)
        CALCULATE (
                SUM ( question[Count Values] ),
                ALLSELECTED ()
            )
    )

RETURN
    DIVIDE (
        num,
        denom
    )

在上面的照片中,没有重新计算 % 值。

这里是 .csv 格式的数据:

Race,Gender,visa_type,Count Values,visa_country,Processing Type,Date
White,Female,C,1,Canada,Custodial,2/14/2014 0:00
Other,Male,M,5,Mexico,Express,1/20/2015 0:00
Hispanic,Male,R,6,Russia,Refugee,2/18/2014 0:00
White,Female,B,4,Brazil,Asylum,3/7/2014 0:00
Hispanic,Male,C,1,Canada,Refugee,4/11/2015 0:00
White,Female,R,7,Russia,Custodial,4/23/2014 0:00
White,Male,M,9,Mexico,Express,4/1/2014 0:00
Hispanic,Male,B,3,Brazil,Refugee,4/13/2014 0:00
White,Female,R,1,Russia,Express,7/31/2014 0:00
White,Male,C,7,Canada,Asylum,9/6/2015 0:00
White,Female,M,2,Mexico,Express,7/22/2014 0:00
Black,Female,B,5,Brazil,Custodial,8/13/2014 0:00
White,Male,R,1,Russia,Asylum,12/9/2014 0:00
White,Female,M,4,Mexico,Asylum,12/6/2014 0:00
Black,Female,B,6,Brazil,Express,12/13/2015 0:00
White,Male,C,7,Canada,Refugee,10/26/2014 0:00
Hispanic,Female,R,5,Brazil,Refugee,9/6/2015 0:00
White,Male,B,9,Mexico,Asylum,9/6/2015 0:00

.xlsx 文件在这里:https://github.com/TestingGround00/powerbi_question/blob/main/input_data_table.xlsx

我制作了另一个 DAX,现在在整个子集中提供 100%,但它确实需要为每年添加 100%,没有切片器 and/or 的月份。

Sum Value = SUM ( Table[Count Values] ) 

% Value = 
DIVIDE ( 
    [Sum Value],
    CALCULATE ( [Sum Value], ALLSELECTED ( ) )
)

我需要的输出是这样的:

我看过这些问题,但它们有些无关紧要:

  1. Power BI - Dynamic measure based on slicer selection

没有 Slicer selections 我需要这个输出-

但是,使用 Smpa01 的 post 无切片器数据更改的度量 -

如果我对问题的理解正确,您希望采取措施 return 以下

您可以通过这样一个非常简单的措施来实现

Measure =
VAR _numerator =
    CALCULATE ( SUM ( question[Count Values] ) )
VAR _denominator =
    CALCULATE ( SUM ( question[Count Values] ), ALLSELECTED () )
RETURN
    DIVIDE ( _numerator, _denominator )

在 DAX 中处理日期时,需要记住一些事情。 一种。使用 Calendar Table 并从 table 中引入年、月名称切片器。 b.除非绝对需要,否则不要使用事实 table 中的日期层次结构。

Edit

这是没有任何选择的样子

感谢@smpa01 的帮助。如果我在任何地方传达错误,我深表歉意。但这成功了,这就是我要找的东西:

创建 Sum 度量:

Sum Value = SUM ( question[Count Values] )

然后创建一个 % 值度量,您可以在其中计算值:

% Value = 
DIVIDE (
    [Sum Value],
    CALCULATE (
        [Sum Value],
        ALLSELECTED (),
        VALUES ( question[Date].[Year] ),
        VALUES (  question[Date].[Month] )
    )
)