【发布时间】:2010-09-24 20:08:23
【问题描述】:
我有一个电子表格,其中包含许多事务的数据集,每个事务都由子步骤组成,每个子步骤都有其发生的时间。步骤的数量和顺序可以是可变的。
我想知道每笔交易的持续时间。如果我可以在 Excel 中做到这一点,那就太好了,因为它已经是那种格式了。如果在 Excel 中没有直接的方法来执行此操作,我会将其加载到数据库中并使用 SQL 进行分析。如果有一个 Excel 方法,它会节省几个小时的设置虽然:)
我的数据的简化示例如下:
TransID、子步、时间
1、步骤A,15:00:00
1,步骤B,15:01:00
1、步骤C,15:02:00
2、步骤B,15:03:00
2、步骤C,15:04:00
2,步骤E,15:05:00
2、步骤F,15:06:00
3、步骤C,15:07:00
3、步骤D,15:08:00
等等
我想生成如下结果集:
TransID,持续时间
1, 00:02:00
2, 00:03:00
3, 00:01:00
等等
我最初的尝试是使用一个额外的列,其中包含一个从开始时间减去结束时间的公式,但没有重复的步骤数,或者没有相同的开始和结束步骤,我很难看出这个公式是如何工作的。
我还尝试基于此数据创建一个数据透视表,其中 ID 作为行,时间作为数据。我可以更改时间数据的字段设置以返回分组值,例如计数或最大值,但我很难看到如何设置它以显示每个 ID 的 max(time) - min(time),因此我为什么正在考虑使用 SQL。如果有人能指出我遗漏的任何明显内容,我将不胜感激。
按照 Hobbo 的建议,我现在使用了一个数据透视表,其中 TransID 作为行,并两次添加了 Time 作为数据。在第一个的 Time to Max 和第二个的 Min 设置字段设置后,可以在数据透视表之外添加一个公式来计算差异。我在这里忽略的一件事是,可以多次将相同的值添加到数据部分!
一个后续问题是我添加的公式是 =GETPIVOTDATA("Max of Time",$A$4,"ID",1)-GETPIVOTDATA("Min of Time",$A$4, "ID",1),复制和粘贴时不会增加。解决方案是使用数据透视表工具栏关闭 GETPIVOTDATA 公式,或者在选择公式中的单元格时不单击数据透视表,而是键入单元格引用(例如 =H4-G4)
【问题讨论】:
标签: excel pivot-table