首页 > 解决方案 > 我的措施在日期过滤器的情况下不起作用

问题描述

在此处输入图像描述我有资产负债表期末余额的每日值。我想要一个计算两个日期之间百分比变化的度量。问题是在工作日这些值是空的。因此,我编写了以下度量,该度量在没有过滤器时有效,但是当我放置日期过滤器时,度量的值变为零。

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

标签: powerbidax

解决方案


de 一个名为 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-Change 之前的增量/减量形式:

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

最终结果:

在此处输入图像描述

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


推荐阅读