-1

I am creating a decision tool where yes/no responses will trigger a follow up question or decision. I created a formula with 13 arguments where each IF has two AND conditions (if no - it is true, if yes - It is false). I am no expert and tried to follow the guidance from several tutorials and help sites. This is my formula:

=IF((AND(J7="Planned - Shift / Vacation Coverage", M7="No")), "Is an E out?", "Schedule LE", 
IF((AND(J7="Planned - Off-shift PMs", M7="No")), "Can the scheduled resources complete work within shift?", "CE reassigns WOs to new shift LE - No OT needed", 
IF((AND(J7="Planned - Customer driven shutdown", M7="No")), "Schedules OT", "CE assigns work to LEs", 
IF((AND(J7="Planned - Training", M7="No")), "Schedules OT", "Does LE need to get trained in OT?", 
IF((AND(J7="Planned - Customer event", M7="No")), "Schedules OT", "CE assigns work to LE", 
IF((AND(J7="Unplanned - Sick call in", M7="No")), "Is an E out?", "Schedules LE", 
IF((AND(J7="Unplanned - Escorting", M7="No")), "Schedule OT", "Move scheduled work to next day/week", 
IF((AND(J7="Unplanned - Emergency response/repair", M7="No")), "Is the request a code 3?", "Can this be handled by scheduled resources?", 
IF((AND(J7="Unplanned - Customer Event", M7="No")), "Schedules OT", "Executes work within shift", 
IF((AND(J7="Unplanned - Call in", M7="No")), "OT will not be paid", "Schedules OT", 
IF((AND(J7="Unplanned - Weather", M7="No")), "Can resources be allocated from the shift in the first instance?", "Can CE or ACE become the additional HC?", 
IF((AND(J7="Planned - Off premises work", M7="No")), "Schedules OT", "LE schedules time off premises within shift", 
IF((AND(J7="Administrative work", M7="No")), "Schedules OT", "Executes within shift")))))))))))))

What did I do wrong??? Please HELP!!!

4

1 回答 1

2

你的 if 语句的问题是你试图做两件事以上。IF 公式包含三个部分

  • 逻辑测试
  • 如果逻辑为真怎么办
  • 如果逻辑为假怎么办

就公式布局而言,它看起来像这样:

=IF(Logical Test, What to do if True, What to do if false)

请注意,在 () 之间只有 3 个事物,每个事物由两个逗号分隔。现在为了嵌套 IF 公式,您需要将后续的 IF 公式放在“如果为真”或“如果为假”该做什么。如果你愿意,你可以在每一个中放一个。每个后续的 IF 公式都将有一个如果真/假部分该怎么办。出于演示目的,我将在 IF 公式中添加 1 和 2,这不是正确的语法:

=IF1(Logical test1, What to do if True1, IF2(Logical test2, What to do if True2, What to do if False2))

检查 IF2 的唯一方法是,如果第一个 if 中的逻辑测试返回 false。

现在,如果我们查看您的第一个 if 语句,请忽略结尾处的右括号方式。我们有:

IF((AND(J7="Planned - Shift / Vacation Coverage", M7="No")), "Is an E out?", "Schedule LE", 

逻辑测试是:

(AND(J7="Planned - Shift / Vacation Coverage", M7="No")

逻辑测试在技术上没有任何问题,但您不需要在 and 语句周围使用 ()。消除它们可能会使事情更容易阅读并保持括号计数。我会使用:

AND(J7="Planned - Shift / Vacation Coverage", M7="No"

我刚刚在您的逻辑测试中注意到的另一件事是,他们每个人都在检查 M7 以查看它是否为“否”。您可以将 M7 检查方式放在 if 公式的前面,然后检查 J7 的每个后续值,无论是真路径还是第一个假路径if 语句:

=IF(M7<>"NO","What to do when M7 is yes",
IF(J7="Planned - Shift / Vacation Coverage",.....

如果真正的部分是你该怎么办:

"Is an E out?"

如果虚假部分是你该怎么办:

"Schedule LE"

这两个结果中的任何一个都没有错。问题就在于如果你把错误的部分放在另一个昏迷中,你该怎么办。IF 公式不知道如何处理除第二个之外的任何内容,错误结果之后的这个逗号是该 if 语句的第三个逗号。

我建议您开始构建一个没有任何嵌套的简单 if 语句,并让它适用于一个案例。当您在一种情况下使用此方法时,请在第二种情况下折腾并嵌套 IF 语句并使其正常工作。一旦你得到它在你的第三种情况下折腾并让它工作。希望在第 3 或第 4 种情况下会出现一种模式。遵循模式,直到您涵盖所有案例。如果您没有看到模式,那么只需一次添加一个案例,直到您涵盖所有内容。

您的 IF 语句面临的一个问题是您需要一种方法来确定当您的逻辑检查为真时是否应该显示语句 1 或语句 2,并假设当您的逻辑检查为假时您想继续下一个IF公式检查。下面我尝试通过添加嵌入式 IF 来检查其他列的值来决定在您的决策中做什么来猜测您的 if 语句的部分过程。我提到了单元格 AA、AB、AC 等,以使它们更容易被发现:

=IF(M7<>"NO","What to do when M7 is yes",
IF(J7="Planned - Shift / Vacation Coverage",IF(AA7="", "Is an E out?", "Schedule LE"),
IF(J7="Planned - Off-shift PMs", IF(AB7="","Can the scheduled resources complete work within shift?", "CE reassigns WOs to new shift LE - No OT needed"),
IF(J7="Planned - Customer driven shutdown",IF(AC7="","Schedules OT", "CE assigns work to LEs"),
IF(J7="Planned - Training", IF(AD7="","Schedules OT", "Does LE need to get trained in OT?"),
IF(J7="Planned - Customer event",IF(AE7="", "Schedules OT", "CE assigns work to LE"),
IF(J7="Unplanned - Sick call in", IF(AF7="","Is an E out?", "Schedules LE"))))))))

如果没有看到您的决策树或电子表格,就很难帮助您完成该过程。我再次建议从一个基本的 IF 语句开始,然后从那里开始构建。

另一件可能对您有所帮助的事情是在纸上画出决策树。第一个问题是你的第一个 if 公式。每个问题只能有两个结果。对或错。所以你画了一条真线,在真线的末端你要么显示文本,要么问另一个问题。对假线做同样的事情。如果您问另一个问题,那就是另一个 IF 公式,然后您从该问题中画出两条线。保持这个过程,直到你没有更多的问题。

二元决策树

搜索二叉决策树以了解有关此主题的更多信息。以下决策树示例不是二元的,因为第一选择有两个以上的可能结果。类似于您正在尝试做的事情。因此,IF 语句不能与顶层的三个或更多选项一起使用。需要修改决策树以使其与 IF 语句一起使用。

非二叉决策树

于 2016-05-15T19:07:02.960 回答