在日期过滤器的情况下,我的测量无效

时间:2019-07-19 06:01:52

标签: powerbi dax

enter image description here我有资产负债表的期末余额的每日值。我想要一种可以计算两个日期之间百分比变化的度量。问题是在工作日中这些值是空的。因此,我编写了以下度量,该度量在没有过滤器的情况下有效,但是当我放置日期过滤器时,该度量的值变为零。

Change_BS %(daily) =
IF (
    SUM ( 'DB Daily_BS'[Value] ) = 0,
    0,
    IF (
        SUM ( 'Date'[Weekday] ) = 1,
        DIVIDE (
            SUM ( 'DB Daily_BS'[Value] )
                - CALCULATE ( SUM ( 'DB Daily_BS'[Value] ), DATEADD ( 'Date'[Date], -3, DAY ) ),
            CALCULATE ( SUM ( 'DB Daily_BS'[Value] ), DATEADD ( 'Date'[Date], -3, DAY ) )
        ),
        DIVIDE (
            SUM ( 'DB Daily_BS'[Value] )
                - CALCULATE ( SUM ( 'DB Daily_BS'[Value] ), PREVIOUSDAY ( 'Date'[Date] ) ),
            CALCULATE ( SUM ( 'DB Daily_BS'[Value] ), PREVIOUSDAY ( 'Date'[Date] ) )
        )
    )
)

1 个答案:

答案 0 :(得分:0)

定义了一个名为BS_Value的新列,该列填补了周末的空白。

BS_Value = 
var wday = MOD(WEEKDAY(Balance[Date]);7)
var daysBack = IF(wday < 2; wday + 1)
return CALCULATE(SUM(Balance[Value]);Balance[Date]  = EARLIER(Balance[Date]) - daysBack)

在此列的基础上,我进行了BS更改,以前的递增/递减形式是什么:

BS_Change = Balance[BS_Value] - CALCULATE(SUM(Balance[BS_Value]);Balance[Date] = EARLIER(Balance[Date]) - 1)

最终结果:

enter image description here

您现在可以根据这些值进行度量或其他列。我需要说一个更动态的解决方案是可行的,我们将查找最后一个不为零的值。我之所以没有这样做,是因为我可以想象余额为零,然后会跳过这些值。