Power BI - 滚动平均值

时间:2018-05-02 09:15:45

标签: powerbi

我试图参考有关堆栈溢出的论坛和其他问题,但无法找到与我类似的问题。

我使用以下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

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

我甚至从这里Power BI Rolling Average

尝试了这个@ JTBR2解决方案

但它也没有用。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

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

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 :(得分:0)

尝试使用此公式:

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即可给出完整的一个月数据输出。

您需要创建一个&#39;日期&#39;表格或&#39;日历&#39;表格能够实现这个目标。 希望这可以帮助。

相关问题