首页 文章

Power BI - 滚动平均值

提问于
浏览
0

我试图参考关于堆栈溢出的论坛和其他问题,但找不到类似于我的那个 .

我使用以下DAX来计算30天移动平均线(我刚刚从快速测量中重新修改了原始时间智能滚动平均值计算) .

30DayQuickMeasureRollingAvg = 
    VAR __LAST_DATE = LASTDATE('DateTable'[Date].[Date])
    RETURN
        AVERAGEX(
            DATESBETWEEN(
                'DateTable'[Date].[Date],
                DATEADD(__LAST_DATE, -30, DAY),
                __LAST_DATE
            ),
            CALCULATE(DISTINCTCOUNT('UserTable'[userID]))
        )

当我使用它时,我的移动平均图显示未来30天以及如下

enter image description here

那么如何排除未来的时间呢?

我甚至从这里尝试过这个@ JTBR2解决方案Power BI Rolling Average

但它也没有用 .

任何帮助深表感谢 .

2 回答

  • 0

    我猜你的日期表中有未来日期 . 您应该能够添加一个条件,以便不显示今天的日期,如下所示:

    30DayQuickMeasureRollingAvg = 
        VAR __LAST_DATE = LASTDATE('DateTable'[Date].[Date])
        VAR RollingAverage = 
            AVERAGEX(
                DATESBETWEEN(
                    'DateTable'[Date].[Date],
                    DATEADD(__LAST_DATE, -30, DAY),
                    __LAST_DATE
                ),
                CALCULATE(DISTINCTCOUNT('UserTable'[userID]))
            )
        RETURN IF(__LAST_DATE > TODAY(), BLANK(), RollingAverage)
    
  • 1

    尝试使用此公式:

    Rolling12MonthsSum = 
      var Ldate = date(max('Year'[Year]) , max('Month'[Monthnumber]),1) 
      //Last date
    
      var Fdate = EDATE(Ldate,-11) //First date
    
      var pm_hrs = sum(Query1[pm_hrs])/sum(Query1[acthrs]) //Calculation
    
      return
    
      if(min('Date'[Date])<fdate,
           blank(),
         if(min('Date'[Date])>Ldate,
                   blank(),
                  pm_hrs))
    

    现在我使用它12个月滚动总和你可以用天和平均替换它 . 只需将-11更改为-1即可给出准确的一个月数据输出 .

    您需要创建一个“日期”表或“日历”表来实现此目的 . 希望这可以帮助 .

相关问题