如何计算由另一列分组的同一列的时间差异?

时间:2017-01-27 19:36:59

标签: excel time powerpivot difference powerquery

我有一个excel power查询(也添加到powerpivot数据表),有两个字段:Location和OpenedTime。位置列有许多重复项,例如:

Location     OpenedTime
LOC_1        9/25/2016 1:48:56 AM
LOC_2        9/30/2016 2:01:00 PM
LOC_1        10/10/2016 12:08:00 PM
LOC_3        9/17/2016 9:35:43 PM
LOC_1        10/15/2016 11:14:21 AM
LOC_2        10/16/2016 8:27:34 PM
LOC_3        10/18/2016 11:52:27 AM
LOC_2        10/22/2016 9:09:00 AM

我正在寻找的是计算3个地点的开放时间差异的方法。

因此,对于LOC_1,新列将显示10/10/2016 12:08:00 PM和9/25/2016 1:48:56 AM之间的差异。

由于有多个时间戳来计算差异,我想是否有可能将所有差异平均为每个LOC的一个平均差异

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以采取以下措施来获得所需的结果:

使用此DAX表达式向PowerPivot表添加新列:

Previous Date=
CALCULATE (
    MAX ( [OpenedTime] ),
    FILTER (
        TableName,
        EARLIER ( TableName[OpenedTime] ) > [OpenedTime]
            && EARLIER ( TableName[Location] ) = [Location]
    )
)

这个表达式得到上一个针对你的日期应该计算每一行的差异,请注意,如果没有前一个日期,它就会留下BLANK。

然后将第二个计算列添加到PowerPivot表中以计算Minutes中的差异:

Diff (Min)=DATEDIFF([Previous Date],[OpenedTime],MINUTE)

如果你想计算小时差异,只需用HOUR或DAY或SECONDS等替换MINUTE

它会为您提供一个有差异的列,然后您可以通过创建一个度量来轻松计算平均值:

Avg OpenedTime (Min) := AVERAGE(TablaName[Diff (Min)])

如果有帮助,请告诉我。