簡體   English   中英

Power BI-滾動平均值

[英]Power BI - Rolling average

我試圖參考論壇和有關堆棧溢出的其他問題,但是找不到與我的類似的問題。

我使用以下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天,如下所示

在此處輸入圖片說明

那么,如何排除未來的時間呢?

我什至從這里嘗試了這個@ JTBR2解決方案Power BI滾動平均值

但這也不起作用。

任何幫助深表感謝。

我猜您的日期表中有將來的日期。 您應該可以添加一個條件,使其不顯示今天之后的日期,如下所示:

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)

嘗試使用以下公式:

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,它將提供確切的一個月數據輸出。

您將需要創建“日期”表或“日歷”表來實現此目的。 希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM