功率查询中的滚动平均值

时间:2018-10-30 19:10:03

标签: powerbi

我是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中是否可以进行这种类型的计算?

enter image description here

3 个答案:

答案 0 :(得分:0)

您可以对当前日期使用平均函数。

作为计算列,它看起来像这样:

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

或者这个:

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

注意:EARLIER函数引用的是较早的行上下文(即当前行中的值),与时间或日期无关。

答案 1 :(得分:0)

在Power Query M语言中,您可以执行类似的操作。过滤直到并包括当前行日期的行,然后平均func HTMLImageCorrector(HTMLString: String) -> String { var HTMLToBeReturned = HTMLString while HTMLToBeReturned.range(of: "(?<=width=\")[^\" height]+", options: .regularExpression) != nil{ if let match = HTMLToBeReturned.range(of:"(?<=width=\")[^\" height]+", options: .regularExpression) { HTMLToBeReturned.removeSubrange(match) if let match2 = HTMLToBeReturned.range(of:"(?<=height=\")[^\"]+", options: .regularExpression) { HTMLToBeReturned.removeSubrange(match2) let string2del = "width=\"\" height=\"\"" HTMLToBeReturned = HTMLToBeReturned.replacingOccurrences(of:string2del, with: "") } } } return HTMLToBeReturned } 列。

CallsPresent

= List.Average( Table.SelectRows( #"[Previous Step Name Here]", (C) => C[FullDate] <= [FullDate] )[CallsPresent] ) 位只是您要进行选择的表。查询编辑器中的查询通常是您一次执行一次转换的步骤列表。因此,您的新步骤是根据上一步创建自定义列。

#"[Previous Step Name Here]"语法有点棘手,但基本上,它是用来让我将正在操作的((C) =>)表中的FullDate与{ {1}}在当前步骤中。请查看this blog post,以获取与此相关的更多信息。

答案 2 :(得分:0)

该视频为我提供了帮助:https://youtu.be/rI0lxNmCtnc enter image description here 它在excel中,但是Power Query部分实际上与Power BI工具相同。

(迟到将近2年,但这也许会对其他人有所帮助。)

相关问题