我对Power Bi来说相当新,并且已经在各种在线帮助论坛中进行了搜索,但未找到与我类似的版本。因此在这里张贴。不确定这是一个相当简单的还是复杂的(我认为!)
我有3列:'事件','屏幕'和'时间'(类似于下面)
我想做一个如下计算:
(事件中2次“NameSubmitted”次数) - (相应的“NameSubmitted”的AVG 时间(来自事件)* 事件)
中“NameSubmitted”次数的计数+
(事件中2次“AddressAdded”次数) - (相应“AddAddress”的AVG 时间(来自屏幕)* 事件)
中“AddressAdded”次数的计数+
(事件中2次“OrderCreated”次数) - (“订单”+“订单详情”+“订单确认”的相应总和的AVG 时间(来自屏幕)* 事件)中“OrderCreated”次数的计数`
我的方法:
我尝试使用以下IF()
函数计算创建一个新列但是徒劳(如下所示)并且收到以下错误:
Calc =
CALCULATE(
(2*SUM(IF(Table[Event] = "NameSubmitted",1,BLANK())))
- AVERAGE(IF(Table[Event] = "NameSubmitted")
)) .....
错误:SUM函数仅接受列引用作为参数
非常感谢任何帮助。
答案 0 :(得分:0)
我不会给出完整的答案,但最后一段应该是这样的:
= 2 * COUNTROWS(FILTER(Table1, Table1[Event] = "OrderCreated"))
- CALCULATE(AVERAGE(Table1[Time]),
Table1[Screen] IN {"Orders", "OrderDetail", "OrderConfirmation"})
* COUNTROWS(FILTER(Table1, Table1[Event] = "OrderCreated"))
注意:如果您将COUNTROWS()
:
= COUNTROWS(FILTER(Table1, Table1[Event] = "OrderCreated")) *
(2 - CALCULATE(AVERAGE(Table1[Time]),
Table1[Screen] IN {"Orders", "OrderDetail", "OrderConfirmation"}))
你应该可以从那里得到其余的。
有多种方法可以计算事件数,而不是使用COUNTROWS()
。最接近你的尝试可能是这样的:
= SUMX(Table1, IF(Table1[Event]="NameSubmitted", 1, BLANK()))