Power BI计算前一个工作日的度量值

问题描述 投票:0回答:2

在Power BI中,我需要编写一个度量,该度量返回昨天的销售金额。我可以在星期二至星期五使用PREVIOUSDAY()。但是,对于星期一,我想返回星期五的销售额。我知道我可以使用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

如果没有,您还有其他想法吗?

欢呼声

powerbi ssas dax business-intelligence
2个回答
0
投票

此解决方案对我有用:

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

我相信问题是由日历表返回多个值引起的。通过使用SELECTEDVALUE(),仅返回一个日期,该日期可用于进行所需的比较。


0
投票

我还没有测试过,但这应该可以工作:

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
  )
)
© www.soinside.com 2019 - 2024. All rights reserved.