轻羽 发表于 2021-9-24 14:19:00

将D列时间进行分类,确认当前时间在哪个时间段,并显示在J列? ...

人员打卡记录表,同一人在不同时间打卡,想区分4个时间段(7:00-9:00,10:30-13:00,17:00-19:00,23:00-0:30),将D列时间进行分类,确认当前时间在哪个时间段,并显示在J列?麻烦哪位大神帮忙做个小工具!

寂静的天空 发表于 2021-9-27 03:08:58

不好意思,增加了两列辅助列。

使乜春 发表于 2021-10-8 20:57:53

=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),"")

跨日临界点处理不来,笨方法

小竹子 发表于 2021-10-14 12:00:38

我的才是本方法
=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大了。
真不知道如何才能得出正确的结果。

淡网 发表于 2021-10-28 08:28:56

酱紫哈~
=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),"")

你我都在等 发表于 2021-11-15 21:28:58

=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怎么合并,只能分开处理。

火眼烤世界 发表于 2021-12-18 07:53:12

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]
查看完整版本: 将D列时间进行分类,确认当前时间在哪个时间段,并显示在J列? ...