我有以下Excel电子表格
A B C D
1 Product ID Time of Event
2 27152 01.04.2017 08:45:00 27152 70 Min.
3 27152 01.04.2017 09:00:00 29297 108 Min.
4 27152 01.04.2017 09:55:00 28802 28 Min.
5 29297 02.04.2017 11:02:00
6 29297 02.04.2017 12:50:00
7 28802 18.04.2017 11:48:00
8 28802 18.04.2017 12:00:00
9 28802 18.04.2017 12:13:00
10 28802 18.04.2017 12:16:00
在 A列中,您可以找到不同的产品ID。 在 B列中,产品ID中发生事件的时间。 每个事件都列在表中;因此,可以出现ProductID 在A栏中多次。
在 D栏中,我想现在显示两分钟之间的差异 产品ID中发生的第一次和最后一次事件。
D2 = 9:55:00 - 8:45:00 = 70 Min.
D3 = 12:50:00 - 11:02:00 = 108 Min.
D4 = 12:16:00 - 11:48:00 = 28 Min.
因此,我需要像 DIFFERENCE-IF-Formula 这样的东西。 到目前为止,我的一个想法是通过LARGE和SMALL功能。
=LARGE(B2:B4;1)-SMALL(B2:B4;1)
然而,这样我必须分别找到每个阵列(B2:B4,B5:B6,B7:B10);因此,我更倾向于将productID作为公式中的标准。
总结 您是否知道我如何计算列表中某个ProdcutID的最后和第一个事件之间的分钟差异?
我宁愿避免使用任何类型的数组公式。
答案 0 :(得分:0)
在某些条件下, 1.假设您将B列转换为2列 2.次是按升序排列
A B C
Product ID Time of Event TIMES
27152 01.04.2017 8:45:00
27152 01.04.2017 9:00:00
27152 01.04.2017 9:55:00
29297 02.04.2017 11:02:00
29297 02.04.2017 12:50:00
28802 18.04.2017 11:48:00
28802 18.04.2017 12:00:00
28802 18.04.2017 12:13:00
28802 18.04.2017 12:16:00
这将不使用数组
=(INDEX($C$2:$C$10,SUMPRODUCT(MAX(ROW($A$2:$A$10)*(D2=$A$2:$A$10))-1))-INDEX($C$2:$C$10,MATCH(D2,$A$2:$A$10,0)))*1440
将时间转换为分钟
=(time*1440)
寻找第一个匹配值
=INDEX($C$2:$C$10,MATCH(D2,$A$2:$A$10,0))
寻找最后一个匹配值
=INDEX($C$2:$C$10,SUMPRODUCT(MAX(ROW($A$2:$A$10)*(D2=$A$2:$A$10))-1)
注意如果最后一个值是SMALLER然后是第一个值,则会收到错误。
答案 1 :(得分:0)
=ROUND(MMULT(AGGREGATE({14,15},6,B$2:B$10/(A$2:A$10=C2),1),{1;-1})*1440,1)&" Min"
并复制下来。
我觉得德语版Excel中水平和垂直数组的分隔符分别是句点(。)和分号(;),所以我相信你需要:
=RUNDEN(MMULT(AGGREGAT({14.15};6;B$2:B$10/(A$2:A$10=C2);1);{1;-1})*1440;1)&" Min"
虽然如果没有提供所需的结果,请告诉我。
此致