我是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中进行这种类型的计算?
在Power Query M语言中,您可以执行类似的操作 . 过滤行直到并包括当前行的日期,然后平均 CallsPresent 列 .
CallsPresent
= List.Average( Table.SelectRows( #"[Previous Step Name Here]", (C) => C[FullDate] <= [FullDate] )[CallsPresent] )
#"[Previous Step Name Here]" 位只是您正在进行选择的表 . 查询编辑器中的查询通常是一次执行一次转换的步骤列表 . 因此,您的新步骤是根据上一步创建自定义列 .
#"[Previous Step Name Here]"
(C) => 语法有点棘手,但基本上,它用于允许我将我们正在操作的表中的 FullDate ( #"[Previous Step Name Here]" )与当前步骤中的 FullDate 进行比较 . 查看this blog post了解更多与此相关的信息 .
(C) =>
FullDate
您可以使用截至当前日期的日期函数 .
作为计算列,它看起来像这样:
AvgPresented = CALCULATE( AVERAGE( Table1[CallsPresent]), ALL(Table1), Table1[FullDate] <= EARLIER(Table1[FullDate] ) )
或这个:
AvgPresented: AVERAGEX( FILTER( Table1, Table1[FullDate] <= EARLIER(Table1[FullDate]) ), Table1[CallsPresent] )
注意: EARLIER 函数指的是较早的行上下文(即当前行中的值),与时间或日期无关 .
EARLIER
2 回答
在Power Query M语言中,您可以执行类似的操作 . 过滤行直到并包括当前行的日期,然后平均
CallsPresent
列 .#"[Previous Step Name Here]"
位只是您正在进行选择的表 . 查询编辑器中的查询通常是一次执行一次转换的步骤列表 . 因此,您的新步骤是根据上一步创建自定义列 .(C) =>
语法有点棘手,但基本上,它用于允许我将我们正在操作的表中的FullDate
(#"[Previous Step Name Here]"
)与当前步骤中的FullDate
进行比较 . 查看this blog post了解更多与此相关的信息 .您可以使用截至当前日期的日期函数 .
作为计算列,它看起来像这样:
或这个:
注意:
EARLIER
函数指的是较早的行上下文(即当前行中的值),与时间或日期无关 .