EXCEL 公式求助

早上6点10上班超过6点10算迟到,下午16点30下班。低于16点30算早退,
我打的这个公式大家看下有没有什么错指点一下
=IF(I5>TIMEVALUE("6:10:00"),"迟到",IF(I5<TIMEVALUE("16:30:00"),"早退","")) 为什么下显示下午17点也算迟到了呢?

公式有点问题,按这个公式的话,优先运算,如果满足条件在6:10分之后,则输出“早退”,只有在不满足这个条件,才进入下一个IF语句,就是说在6:10之前,则会运算IF(I5<TIMEVALUE("16:30:00"),"早退",""),满足在16:30之前,则输出“早退”,否则,空白
因为最优先运算IF(I5>TIMEVALUE("6:10:00"),"迟到",而下午15:00肯定满足条件,所以就输出“迟到”
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-03-25
因为“下午17点”满足IF语句的第一个条件(“在6点10以后签到”)所以直接触发“迟到”,而不会触发关于是否早退的IF分句

改善的方法是增加分句,使公式对中午12点以前做是否迟到的IF判断而对中午12点以后做是否早退的IF判断

把公式改为如下即可
=IF(AND(I5>TIMEVALUE("6:10:00"),I5<TIMEVALUE("12:00:00")),"迟到",IF(AND(I5>TIMEVALUE("12:00:00"),I5<TIMEVALUE("16:30:00")),"早退",""))

至于你的I列到底写些什么图片里看不到,被隐藏了本回答被提问者采纳
第2个回答  2010-03-25
给你正确的公式吧。
=IF(AND(TIME(HOUR(G3),MINUTE(G3),SECOND(G3))>TIMEVALUE("6:10:00"),TIME(HOUR(G3),MINUTE(G3),SECOND(G3))<TIMEVALUE("16:30:00")),"迟到",IF(AND(TIME(HOUR(G3),MINUTE(G3),SECOND(G3))>TIMEVALUE("6:10:00"),TIME(HOUR(G3),MINUTE(G3),SECOND(G3))<TIMEVALUE("16:30:00")),"早退",""))
第3个回答  2010-03-25
很明显,你的公式表达的意思就是:【大于6:10为迟到,小于6:10为早退】
17点当然也是大于6:10了!呵呵,第一个判断就已经定他的死刑了o(∩_∩)o
第4个回答  2020-02-08