0

我对 Power Bi 还很陌生,并且在各种在线帮助论坛中进行了搜索,但未能找到与我相似的论坛。因此在这里发布。不确定这是一个相当简单的还是复杂的(我认为!)

我有 3 列:“事件”、“屏幕”和“时间”(类似于下面)

在此处输入图像描述

我想做一个如下计算:

(2 * Event中“NameSubmitted”出现的次数)-(相应“NameSubmitted”的平均时间(来自Event )* Event中“NameSubmitted”出现的次数)

+

(2 * Event中“AddressAdded”出现的次数)-(相应“AddAddress”的平均时间(来自屏幕)* Event中“AddressAdded”出现的次数)

+

(2 * Event中“OrderCreated”出现的次数)-(“Orders”+“OrderDetail”+“OrderConfirmation”的相应总和的平均时间(来自屏幕)* Event中“OrderCreated”出现的次数)`

我的做法:

我尝试使用以下IF()函数计算创建一个新列,但徒劳无功(如下所示)并且收到以下错误:

Calc = CALCULATE( (2*SUM(IF(Table[Event] = "NameSubmitted",1,BLANK()))) - AVERAGE(IF(Table[Event] = "NameSubmitted") )) .....

错误:SUM 函数只接受列引用作为参数

任何帮助深表感谢。

4

1 回答 1

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()))
于 2018-04-18T06:19:29.547 回答