IF 语句嵌套 3 个 AND 和 3 个 TIMEVALUE

问题描述 投票:0回答:1

Image of Formula

=IF(
    AND(
        I2="Y", 
        O2="Y", 
        G2<=TIMEVALUE("14:00")
    ), 
    "Y", 
    IF(
        AND(
            I2="Y", 
            O2="N", 
            G2<=TIMEVALUE("12:00")
        ), 
        "Y", 
        IF(
            AND(
                I2="N", 
                H2<=TIMEVALUE("6:00")
            ), 
            "Y", 
            "N"
        )
    )
)

我正在尝试为工作流程自动化此审核表格(参见附图)。我希望 Q 列(准时?)根据以下条件填充 Y 或 N:

  1. 如果患者入院过夜(I 栏 = Y),并且在周末(O 栏 = Y),并且下午 2 点之前完成医疗记录(技术)(F 栏 <= 14:00) OR
  2. 如果患者入院是过夜(I 栏 = Y),并且不是周末(O 栏 = N),并且中午之前完成医疗记录(技术)(F 栏 <= 12:00) OR
  3. 如果患者入院不是隔夜(第 I 栏 = N),则可以在任何一天入院,并且在入院时间后 6 小时内完成医疗记录(技术)(第 H 栏 <= 6) THEN The med rec was completed on time (Column Q = Y) // if conditions are not met, then med rec was not completed on time (Column Q = N)

我以为我的答案是正确的,但第一条测试线显示“N”,但我希望它显示“Y”。希望有人能指出我的公式哪里出错了。

excel if-statement excel-formula nested
1个回答
0
投票

这是您可以尝试的动态数组公式(首先在单独的列中):

  • IFS
    TRIM
    (正如 Chronocidal 也建议的那样)
  • 如果结果与预期不符,请将
    ontime
    替换为其他变量并查看
  • 调整
    last_row
    计算以匹配您的数据
  • 假设您有 Excel 2021 或更高版本

准时?

Q2
)的第一个单元格中输入:

=LET(last_row, XMATCH(TRUE, ISNUMBER(A:A), , -1),
    overnight, TRIM(I2:INDEX(I:I, last_row)) = "Y",
    weekend, TRIM(O2:INDEX(O:O, last_row)) = "Y",
    finished_before2pm, G2:INDEX(G:G, last_row) <= TIMEVALUE("14:00"),
    finished_before_noon, G2:INDEX(G:G, last_row) <= TIMEVALUE("12:00"),
    completed_lt_6hrs, H2:INDEX(H:H, last_row) <= TIMEVALUE("6:00"),
    on_time, IFS(
        overnight * weekend * finished_before2pm, "Y",
        overnight * NOT(weekend) * finished_before_noon, "Y",
        NOT(overnight) * completed_lt_6hrs, "Y",
        TRUE,"N"),
    on_time
)

Result

© www.soinside.com 2019 - 2024. All rights reserved.