Power BI 计算前一个工作日的度量值
Power BI calculate Measure for previous working day
在 Power BI 中,我需要写一个度量,returns 昨天的销售额。我可以在周二到周五使用 PREVIOUSDAY()。但是,对于星期一,我想 return 星期五的销售额。我知道我可以使用 DATEADD(Calendar[Dates], -3, DAX).
我的问题是我似乎无法同时满足这两个条件。甚至可以通过测量来做这样的事情吗?:
Yesterdays Sales =
Var TueToFri = CALCULATE([Sales Amount], PREVIOUSDAY(Calendar[Date])
Var Mon = CALCULATE([Sales Amount], DATEADD(Calendar[Date], -3, DAY)
IF WEEKDAY(Calendar[Date]) = 1
Return Mon,
Return TueToFri
如果没有,您还有其他想法吗?
干杯
我还没有测试过,但这应该可以工作:
Yesterday Sales =
VAR Mon = CALCULATE([Sales Amount], DATEADD(Calendar[Date], -3, DAY)
VAR TueToFri = CALCULATE([Sales Amount], PREVIOUSDAY(Calendar[Date])
VAR SatSun = BLANK()
RETURN
IF(
WEEKDAY(SELECTEDVALUE(Calendar[Date]), 2) = 1;
Mon;
IF(
WEEKDAY(SELECTEDVALUE(Calendar[Date]), 2) >= 6;
SatSun;
TueToFri
)
)
这个解决方案适合我:
Sales Amount PD =
IF (
WEEKDAY ( SELECTEDVALUE ( Calendar[Date] ) ) = 2;
//Monday
CALCULATE (
[Sales Amount];
DATEADD ( Calendar[Date]; -3; DAY )
);
IF (
WEEKDAY ( SELECTEDVALUE ( Calendar[Date] ) ) = 1;
//Sunday;
BLANK ();
IF (
WEEKDAY ( SELECTEDVALUE ( Calendar[Date] ) ) = 7;
//Saturday;
BLANK ();
CALCULATE (
[Sales Amount];
PREVIOUSDAY ( Calendar[Date] )
)
)
)
)
我认为问题是由日历 table 返回多个值引起的。通过使用 SELECTEDVALUE() 仅返回一个日期,可用于进行所需的比较。
在 Power BI 中,我需要写一个度量,returns 昨天的销售额。我可以在周二到周五使用 PREVIOUSDAY()。但是,对于星期一,我想 return 星期五的销售额。我知道我可以使用 DATEADD(Calendar[Dates], -3, DAX).
我的问题是我似乎无法同时满足这两个条件。甚至可以通过测量来做这样的事情吗?:
Yesterdays Sales =
Var TueToFri = CALCULATE([Sales Amount], PREVIOUSDAY(Calendar[Date])
Var Mon = CALCULATE([Sales Amount], DATEADD(Calendar[Date], -3, DAY)
IF WEEKDAY(Calendar[Date]) = 1
Return Mon,
Return TueToFri
如果没有,您还有其他想法吗?
干杯
我还没有测试过,但这应该可以工作:
Yesterday Sales =
VAR Mon = CALCULATE([Sales Amount], DATEADD(Calendar[Date], -3, DAY)
VAR TueToFri = CALCULATE([Sales Amount], PREVIOUSDAY(Calendar[Date])
VAR SatSun = BLANK()
RETURN
IF(
WEEKDAY(SELECTEDVALUE(Calendar[Date]), 2) = 1;
Mon;
IF(
WEEKDAY(SELECTEDVALUE(Calendar[Date]), 2) >= 6;
SatSun;
TueToFri
)
)
这个解决方案适合我:
Sales Amount PD =
IF (
WEEKDAY ( SELECTEDVALUE ( Calendar[Date] ) ) = 2;
//Monday
CALCULATE (
[Sales Amount];
DATEADD ( Calendar[Date]; -3; DAY )
);
IF (
WEEKDAY ( SELECTEDVALUE ( Calendar[Date] ) ) = 1;
//Sunday;
BLANK ();
IF (
WEEKDAY ( SELECTEDVALUE ( Calendar[Date] ) ) = 7;
//Saturday;
BLANK ();
CALCULATE (
[Sales Amount];
PREVIOUSDAY ( Calendar[Date] )
)
)
)
)
我认为问题是由日历 table 返回多个值引起的。通过使用 SELECTEDVALUE() 仅返回一个日期,可用于进行所需的比较。