获取第一对的价值

时间:2018-09-19 02:04:20

标签: excel excel-formula

我有这个文件

Date      | Time         | Table  |      Checkin Time | Bill Number ..| .. |
7/1/2018   **18:03:48**   **6**         **18:03:48**       **4332**
7/1/2018   18:11:23       **6**         **18:03:48**       **4332**
7/1/2018   18:23:10       **6**         **18:03:48**       **4332**
7/1/2018   19:24:11         8             19:24:11           4333
7/1/2018   19:56:17         8             19:24:11           4333
7/1/2018   20:31:11        *6             20:31:11           4332*


我需要计算签到时间,这是表号和账单号的第一次。
例如,通过18:03:48table number 6看到一个客户签到
他的Bill number4332
因此对于table number 6Bill number 4332 chekin time将是第一time
18:03:48
所以我应用了公式:

=IF(AND(E3=E2,C3=C2,A3=A2),D2,MIN(OFFSET(E3,0,-3,MATCH(0,(E3:E$35470=E3)*(C3:C$35470=C3)*(A3:A$35470=A3),0)-1,1)))

但是值在6th row处改变。
它给20:31:11作为checkin time
它应该是18:03:48,因为6th row table number and bill number与第一个相同。
因此,无论哪一行,我如何才能根据checkin time的{​​{1}}谁拥有相同的1st time来计算bill and table number
这是我已上传到Google云端硬盘的Excel file
这是screenshot

编辑:-@jeeped工作的公式,但是由于日志为30天
数据也不断重复前一天。
可以通过提供一些unique日期值来做到吗?

3 个答案:

答案 0 :(得分:2)

如果没有较新的MINIFS和MAXIFS,请使用AGGREGATE获得相同的结果。

=AGGREGATE(15, 7, ((A$2:A$7)+(B$2:B$7))/((C$2:C$7=C2)*(E$2:E$7=E2)), 1)

以任意方式格式化结果;日期和时间,仅限时间等。

enter image description here

答案 1 :(得分:2)

您可以利用结合了INDEX + MATCH的数组公式来返回最早与您的条件匹配的最早时间值。在单元格D2中,输入以下内容:

=INDEX($B$2:$B$7,MATCH(1,($C$2:$C$7=C2)*($E$2:$E$7=E2),0))

返回时,请确保按CONTROL+SHIFT+ENTER而不是仅按ENTER,以确保公式计算正确。

答案 2 :(得分:1)

@Jeeped的答案是正确的,这是对公式的一种调整,该公式可在具有相同表号和账单号的多天内工作:

=AGGREGATE(15, 7, ((A$2:A$13)+(B$2:B$13))/((C$2:C$13=C2)*(E$2:E$13=E2)*(A$2:A$13=A2)), 1)

我所做的就是添加这个额外的条件参数,该参数检查“日期”是否相同:

*(A$2:A$13=A2)

CheckInTime