|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
我要做一个判断:现在有3个人进行倒班,4天换一个班,也就是说,A上4天夜班后,改为4天白班,然后4天中班,如此循环,同样,B上4天白班、4天中班、4天夜班。。。我用了一个MOD函数,和DATEDIF来获取当天谁上夜班、白班和中班。
设置个起始日期,比如昨天,然后用DATEDIF来获取当天和起始日期的天数差,然后用MOD得到天数差和12的余数,因为12天一个循环。余数为0,1,2,3时为A上夜班,4、5、6、7时A上白班,8,9,10,11时A上中班。
我的公式是:C4是起始日期。
- =IFS(OR(MOD(DATEDIF(C4,TODAY(),"D"),12)=0,MOD(DATEDIF(C4,TODAY(),"D"),12)=1,MOD(DATEDIF(C4,TODAY(),"D"),12)=2,MOD(DATEDIF(C4,TODAY(),"D"),12)=3),"A",OR(MOD(DATEDIF(C4,TODAY(),"D"),12)=4,MOD(DATEDIF(C4,TODAY(),"D"),12)=5,MOD(DATEDIF(C4,TODAY(),"D"),12)=6,MOD(DATEDIF(C4,TODAY(),"D"),12)=7),"B",OR(MOD(DATEDIF(C4,TODAY(),"D"),12)=8,MOD(DATEDIF(C4,TODAY(),"D"),12)=9,MOD(DATEDIF(C4,TODAY(),"D"),12)=10,MOD(DATEDIF(C4,TODAY(),"D"),12)=0),"C")
复制代码 可以看到,用OR非常麻烦,需要将判断的MOD函数写4遍,现在想问,怎么能简化一下?百度得到用花括号,如下,但结果不对。
- =IFS(MOD(DATEDIF(C4,TODAY(),"D"),12)={0,1,2,3},"A",MOD(DATEDIF(C4,TODAY(),"D"),12)={4,5,6,7},"B",MOD(DATEDIF(C4,TODAY(),"D"),12)={8,9,10,11},"C")
复制代码 求助大神。。。
|
|