簡體   English   中英

Power Query 中的滾動平均值

[英]Rolling Average in Power Query

我是 Power BI 的新手

我正在嘗試在 Power BI 的 Power Query 編輯器中重現這種類型的計算。

屏幕截圖來自 Excel,在 C 列中它使用 AVERAGE($B$2: B2),下一行是 AVERAGE($B$2: B3) 等等。

C2 = ((168 + 313) / 2) = 241

C3 = (((168 + 313) + 301) / 3) = 261

等等

有沒有辦法在 Power Query 中進行這種類型的計算?

在此處輸入圖片說明

在 Power Query M 語言中,您可以做類似的事情。 過濾直到並包括當前行日期的行,然后平均CallsPresent列。

= List.Average(
      Table.SelectRows(
          #"[Previous Step Name Here]",
          (C) => C[FullDate] <= [FullDate]
      )[CallsPresent]
  )

#"[Previous Step Name Here]"位只是您要在其上進行選擇的表。 查詢編輯器中的查詢通常是您一次執行一個轉換的步驟列表。 因此,您的新步驟是根據上一步創建自定義列。

(C) =>語法有點棘手,但基本上,它用於讓我比較我們正在操作的表中的FullDate ( #"[Previous Step Name Here]" ) 與當前的FullDate步。 查看此博客文章以獲取更多與此相關的信息。

我是Power BI的完全新手

我試圖在Power BI的Power Query Editor中重現這種類型的計算。

屏幕截圖來自Excel,在C列中使用AVERAGE($ B $ 2:B2),下一行是AVERAGE($ B $ 2:B3),依此類推。

C2 =((168 + 313)/ 2)= 241

C3 =((((168 + 313)+ 301)/ 3)= 261

等等

有沒有辦法在Power Query中進行這種類型的計算?

在此處輸入圖片說明

您可以對截至當前日期的日期使用平均函數。

作為計算列,它看起來像這樣:

AvgPresented = 
CALCULATE(
    AVERAGE(
        Table1[CallsPresent]),
        ALL(Table1),
        Table1[FullDate] <= EARLIER(Table1[FullDate]
    )
)

或這個:

AvgPresented:
AVERAGEX(
    FILTER(
        Table1,
        Table1[FullDate] <= EARLIER(Table1[FullDate])
    ),
    Table1[CallsPresent]
)

注意: EARLIER函數指的是較早的行上下文(即當前行中的值),與時間或日期無關。

暫無
暫無

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

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