需要正确的总计,Power BI表

时间:2020-11-02 06:48:22

标签: powerbi dax

我有一种措施,我将合同月份总数除以月份总数。我得到正确的结果,但底部的总数不正确。

第一列是唯一的ID,第三列和第四列是分子和分母,第二列是除法的结果,我要计算这些ID,除法在0.75和1.00之间

这是我的计算

Var Check = DIVIDE([订婚月],[L30合同月]) 返回 IF(HASONEVALUE('Fact-TABLE'[ID]),IF(Check> = 0.75 && Check <= 1.00,DISTINCTCOUNT(ID),0),SUMX('Fact-TABLE',IF(Check> = 0.75 && Check <= 1.00,DISTINCTCOUNT(ID),0)))

请让我知道如何解决此问题。

2 个答案:

答案 0 :(得分:0)

对于Total,您应该将IF的第3个参数更改为:

CALCULATE (
    SUMX (
        CALCULATETABLE (
            tab,
            FILTER (
                ALL ( tab ),
                VAR __Check =
                    DIVIDE ( 'Tab'[Month of Engagement], Tab[Months In Contract L30] )
                RETURN
                    __Check < 1
                    && __Check > 0.75
            )
        ),
        1
    )
)

在我的测试示例下面(仅用于测试,我在第一个IF中放入了检查变量 IF(Check> = 0.75 && Check <= 1.00,Check,0)以查看支票计算是否正确):

enter image description here

Measure = 
VAR Check =
    DIVIDE (
        SUM ( 'Tab'[Month of Engagement] ),
        SUM ( Tab[Months In Contract L30] )
    )
RETURN
    IF (
        HASONEVALUE ( 'Tab'[ID] ),
        IF ( Check >= 0.75 && Check <= 1.00, Check, 0 ),
        CALCULATE (
            SUMX (
                CALCULATETABLE (
                    tab,
                    FILTER (
                        ALL ( tab ),
                        VAR __Check =
                            DIVIDE ( 'Tab'[Month of Engagement], Tab[Months In Contract L30] )
                        RETURN
                            __Check < 1
                            && __Check > 0.75
                    )
                ),
                1
            )
        )
    )

答案 1 :(得分:0)

度量= VAR检查= 除( [订婚月], [L30合同中的月份] ) 返回 如果 HASONEVALUE('Tab'[ID]), IF(Check> = 0.75 && Check <= 1.00,Check,0), 计算 ( SUMX( 可计算( '标签', 过滤器( 全部('Tab'), VAR __Check = 除法([订婚月],[合同L30个月]) 返回 __检查> = 0.75 && __检查<= 1.00 ) ), 1个 ) ) )

以下是简要定义

参与度:= CALCULATE(COUNTROWS( SUMMARIZE('table','table'[MONTH_OF_ENGAGEMENT],“ Count”,DISTINCT('table'[MONTH_OF_ENGAGEMENT]))),'table'[FREQUENCY_FLAG] =“ Y”)+ 0

MONTH_OF_ENGAGEMENT是从日期中提取的值,即YYYYMM

合同L30的月数:= Var DBRefreshDate30 = [数据库刷新日期] -30 返回 DATEDIFF(DBRefreshDate30,[数据库刷新日期],MONTH)+1

现在将订婚月数与合同L30中的月数相除,我得出一个百分比,并检查该百分比是否介于0.75和1.00之间