将D列时间进行分类,确认当前时间在哪个时间段,并显示在J列? ...
人员打卡记录表,同一人在不同时间打卡,想区分4个时间段(7:00-9:00,10:30-13:00,17:00-19:00,23:00-0:30),将D列时间进行分类,确认当前时间在哪个时间段,并显示在J列?麻烦哪位大神帮忙做个小工具!不好意思,增加了两列辅助列。
=IFNA(LOOKUP(1,0/ISERR(FIND("-",IMSUB((MOD(D2,1)-1/48)&-(MOD(D2,1)-1/48)&"i",IMSUB($M$2:$M$5&"i","0:30-0:30i")))),$M$2:$M$5),"")
跨日临界点处理不来,笨方法 我的才是本方法
=IFNA(INDEX(M:M,LOOKUP(1,0/(MOD(D2,1)>={0,7,10.5,17,23}/24)/(MOD(D2,1)
<={0.5,9,13,19,24}/24),{5,2,3,4,5})),"")
不过都会有浮点误差,比如刚好0:30或者23:00的你那个会返回空
7点的用MOD得出的结果是小于7/24的,假如加上不到1秒即十万分之一那么9点这种没有浮点误差的又会比0.375大了。
真不知道如何才能得出正确的结果。 酱紫哈~
=IFNA(LOOKUP(1,0/(TEXT(MOD(D2-1/4,1),"H:MM:SS")<=TEXT(MOD(MID(M$2:M$5,FIND("-",M$2:M$5)+1,9)-1/4,1),"H:MM:SS"))/(TEXT(MOD(D2-1/4,1),"H:MM:SS")>=TEXT(LEFT(M$2:M$5,FIND("-",M$2:M$5)-1)-1/4,"H:MM:SS")),M$2:M$5),"") =IFNA(LOOKUP(1,0/ISERR(FIND("-",IMSUB((MOD(D2,1)-1/48)&-(MOD(D2,1)-1/48)&"i",IMSUB($M$2:$M$5&"i","0:30:01-0:29:59i")))),$M$2:$M$5),"")
我的意思是处理不来两段IMSUB怎么合并,只能分开处理。 IF+AND+MOD普通公式,简单粗暴直观,只是公式偏长了点,笨笨的见笑了:
J2=IF(AND(MOD(D2,1)>=7/24,MOD(D2,1)<=9/24),"7:00-9:00",IF(AND(MOD(D2,1)>=10.5/24,MOD(D2,1)<=13/24),"10:30-13:00",IF(AND(MOD(D2,1)>=17/24,MOD(D2,1)<=19/24),"17:00-19:00",IF(AND(MOD(D2,1)>=23/24,MOD(D2,1)<=0.5/24),"23:00-0:30",""))))
页:
[1]