我有这个文件
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:48
在table number 6
看到一个客户签到
他的Bill number
是4332
。
因此对于table number 6
和Bill 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
日期值来做到吗?
答案 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)
以任意方式格式化结果;日期和时间,仅限时间等。
答案 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)