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] ) )
)
)
)
答案 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)
最终结果:
您现在可以根据这些值进行度量或其他列。我需要说一个更动态的解决方案是可行的,我们将查找最后一个不为零的值。我之所以没有这样做,是因为我可以想象余额为零,然后会跳过这些值。