【问题标题】:Chaining Multiple IF Statements in Excel to Calculate Work Shifts from Times在 Excel 中链接多个 IF 语句以计算工作班次
【发布时间】:2016-10-30 16:51:36
【问题描述】:

我正在尝试根据 Excel 工作表中输入的时间来计算工作班次。班次分配如下:

如果时间 >= 05:30 PM &

如果时间 >= 01:30 AM &

如果时间 >= 09:30 AM &

我正在使用 IF AND 条件,但它仍然显示不正确的结果。下面是我使用的公式。

=IF(AND(D2>=TIMEVALUE("05:30:00 PM"),(D2<=TIMEVALUE("01:30:00 AM"))),"1",
 IF(AND(D2>=TIMEVALUE("01:30:00 AM"),(D2<=TIMEVALUE("09:30:00 AM"))),"2","3"))

知道我做错了什么吗?

【问题讨论】:

    标签: excel if-statement conditional excel-2013


    【解决方案1】:

    第一个问题在于您的班次定义。由于使用了小于或等于运算符,时间1:30 AM 落在所有三个班次中。这些应更改为小于运算符,例如:

    如果时间 >= 5:30 PM &

    如果时间 >= 1:30 AM &

    如果时间 >= 9:30 AM &

    第二个问题在第一个if 语句中:

    IF(AND(D2>=TIMEVALUE("05:30:00 PM"),(D2<=TIMEVALUE("01:30:00 AM"))),"1",...)
    

    时间不能同时大于5:30:00 PM 和小于01:30:00 AM。 Excel 中的时间存储为数字。 TIMEVALUE("1:30 AM") 返回 0.06250TIMEVALUE("5:30 PM") 返回大约 0.72917。因此,if 语句转换为以下内容:

    IF(AND(D2>=0.72917, D2<=0.06250), "1", ...)
    

    D2 不能同时大于或等于0.72917 和小于或等于0.06250。因此,这将始终返回 false。

    尝试如下重写您的代码:

    =IF(D2<TIMEVALUE("1:30 AM"),"1",
        IF(D2<TIMEVALUE("9:30 AM"),"2",
           IF(D2<TIMEVALUE("5:30 PM"),"3","1")))
    

    【讨论】:

    • 你是完美的@Brett。非常感谢。它现在可以工作了。
    猜你喜欢
    • 1970-01-01
    • 2019-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多