Excel和PowerBI之间的平均时间计算有所不同

时间:2018-08-09 06:43:50

标签: excel powerbi dax

在开始详细介绍之前,这是我正在处理的示例数据。

这是抽签卡数据,其中包含所有用户的进出。

https://1drv.ms/x/s!AhiQ2f7YQHC-gbNYMGJz0l0KU70svg

我正在尝试通过计算每个用户之间的差异来计算每个用户的花费时间

先进先出(MIN)和后进先出(MAX)

我在dax Calculated列下面使用了Min InTime和MaxOutTime。

MinInTIME = CALCULATE(
  MIN('BaseData'[Date-Time]),
      FILTER(ALLEXCEPT('BaseData','BaseData'[EMP_ID],'BaseData'[Begin_Date]),'BaseData'[Type]="IN"))

OutTime

MAXOutTIME = CALCULATE(
  MAX('BaseData'[Date-Time]),
      FILTER(ALLEXCEPT('BaseData','BaseData'[EMP_ID],'BaseData'[Begin_Date]),'BaseData'[Type]="OUT"))

然后我通过使用下面的dax计算了花费的时间。

Spent Hours = SWITCH(TRUE(),
'BaseData'[MAXOutTime]=BLANK() && 'BaseData'[MinInTIME]='BaseData'[MinInTIME],BLANK(),
'BaseData'[MinInTIME]=BLANK() &&  'BaseData'[MAXOutTime]= 'BaseData'[MAXOutTime],BLANK(),
'BaseData'[MAXOutTime] < 'BaseData'[MinInTIME],BLANK(),
'BaseData'[MinInTIME]='BaseData'[MinInTIME] &&  'BaseData'[MAXOutTime]= 'BaseData'[MAXOutTime],FORMAT( 'BaseData'[MAXOutTime]-'BaseData'[MinInTIME],"HH:MM"))

我得到正确的价值观。但是,当我尝试使用低于dax的平均值来计算平均值时,就会出现问题。

AvgSpendHours = FORMAT(AVERAGE('BaseData'[Spent Hours]),"HH:MM")

输出:-

enter image description here

我将其导出到excel中并检查了值

然后它给我的平均值低于与powerbi dax平均值不匹配的平均值

在dax中为13:13,在excel中为11:45

enter image description here

是使用我的DAX或PowerBI还是使用Excel。

请纠正我。

谢谢。

1 个答案:

答案 0 :(得分:0)

他们正在计算不同的事物。在Power BI中,每对平均花费OUT减去IN。在Excel中,您要获取的是每日平均值OUT减去IN的平均值。


仅用两天时间考虑一个简化示例:

 IN        |  OUT        | Spend Hours
-----------|-------------|------------
9AM 1/1/18 |  5PM 1/1/18 | 8
8AM 1/1/18 |  2PM 1/1/18 | 6
9AM 1/2/18 | 10PM 1/2/18 | 13

1/1/18上有两次来回活动,该日的平均时间为7小时。当您将平均7小时与13中的1/2/18小时进行平均时,您每天的Excel平均时间为10小时。但是,如果对每一行取平均值,则每个输入/输出对将获得(8+6+13)/3 = 9小时的Power BI平均值。