Excel:如果给定的时间间隔在特定时间范围内存在,则需要一个函数来计算...忽略给定的日期

时间:2013-06-26 04:16:24

标签: excel excel-formula

我需要一个excel公式来计算这个人是否仍然在一个时间范围内登录。例如:

Person  TimeIn              TimeOut
1       6/22/2013 10:32 AM  6/22/2013 11:35 AM
2       6/22/2013 10:36 AM  6/22/2013 12:52 PM
3       6/23/2013 10:40 AM  6/23/2013 5:15 PM
4       6/25/2013 12:42 PM  6/25/2013 1:25 PM
5       6/25/2013 1:42 PM   6/25/2013 4:53 PM
6       6/26/2013 3:30 PM   6/26/2013 5:00 PM

10:00AM - 12:00PM计数应为3。在这两个时间之间签署了人1 2 3 12:00PM - 2:00PM计数应为4。在这两个时间之间签署了人2 3 4 5 2:00PM - 4:00PM计数应为3。在这两个时间之间签署了人员3 5 6 4:00PM - 6:00PM计数应为3。人员3 5 6在这两次之间签署了

基本上如果这个人没有退出,并且在这两次之间,我需要一个忽略日期的计数。

2 个答案:

答案 0 :(得分:1)

假设B2:C7中有TimeIn / TimeOut数据,那么您可以将特定时间范围放在E2/F2中,例如E2中的上午10:00,F2中的中午12:00,然后在G2中使用此公式计算该时段任何部分的人数

=SUMPRODUCT((MOD(B$2:B$7,1)<F2)*(MOD(C$2:C$7,1)>E2))

参见示例here

MOD函数仅从日期/时间值中提取时间

注意:这不适用于午夜过去的时间段,例如8:00 PM一天5:00 AM到{{1}}下一段时间(尽管我可以调整它)

答案 1 :(得分:0)

假设您的第一个'Time In'记录('2013年6月22日上午10:32')在单元格B2中,请使用以下公式告诉您,尽管是日期,时间是否为:10-12 ,12-2,2-4,4-6,或在这些范围之外,将其放在单元格D2中,将其填满。

=IF(AND(TIMEVALUE(TEXT(B2,"hh:mm"))>=0.41667,TIMEVALUE(TEXT(B2,"hh:mm"))<0.5),"10-12",IF(AND(TIMEVALUE(TEXT(B2,"hh:mm"))>=0.5,TIMEVALUE(TEXT(B2,"hh:mm"))<0.58333),"12-2",IF(AND(TIMEVALUE(TEXT(B2,"hh:mm"))>=0.58333,TIMEVALUE(TEXT(B2,"hh:mm"))<0.66667),"2-4",IF(AND(TIMEVALUE(TEXT(B2,"hh:mm"))>=0.66667,TIMEVALUE(TEXT(B2,"hh:mm"))<0.74999),"4-6","Out of Specified Time Ranges"))))