嵌套 If 和 Or 语句

嵌套 If 和 Or 语句

我正在尝试将多列嵌套到同时使用 And 和 Or 函数的 If 语句中。到目前为止,我还没能想出一个可行的函数。

规则:

  • 如果实际会议年数或实际会议月数 > 0,则输出“Confinement”
  • 如果 Act Prob years 或 Act Prob Months > 0 则输出“Probation”
  • 如果 (实际会议年数或实际会议月数 > 0) AND (实际概率年数或实际概率月数 >0),则输出“两者”

我想到的公式是:

IF(OR(D3>0,E3>0),"Confinement",IF(OR(G3>0,H3>0),"Probation",IF(OR(D3>0,E3>0,AND(G3>0,H3>0),"Both"))

但是,这不管用。我知道问题出在“试用”之后的部分。但我不确定如何正确堆叠 OR 和 AND 函数。

或者,可以通过 Power Query、Power Pivot 或其他附加组件来实现这一点吗?

答案1

如果您的数据中不可能出现“既不监禁也不缓刑”的情况,您可以使用更简单的公式。

=IF(D3+E3>0,IF(G3+H3>0,"Both","Confinement"),"Probation")

如果记录可能既没有显示监禁也没有显示缓刑,则可以使用以下公式:

=IF(D3+E3>0,IF(G3+H3>0,"Both","Confinement"),IF(G3+H3>0,"Probation","Neither"))

答案2

您的第三个条件(“Both”)包含两个 OR 语句(和一个 AND)。您的公式未包含第二个 OR。

你要AND( OR (), OR() )

前:

IF(OR(D3>0,E3>0),"Confinement",
IF(OR(G3>0,H3>0),"Probation",
IF(OR(D3>0,E3>0,AND(G3>0,H3>0),"Both"))

后:

IF(OR(D3>0,E3>0),"Confinement",
IF(OR(G3>0,H3>0),"Probation",
IF(AND(OR(D3>0,E3>0),OR(G3>0,H3>0)),"Both")))

答案3

替代版本,不带 AND

IF(OR(D3>0, E3>0), IF(OR(G3>0, H3>0), "Both", "Confinement"),
   IF(OR(G3>0, H3>0), "Probation", ))

逻辑是:

  • 如果是 Conf,(如果是 Prob (too),那么就是“Both”,否则就是“Confinement”),
  • 如果 Prob,则“Probation”,(选修的: 否则“无”)

其中 Conf 为 (实际 Conf 年数 > 0 或实际 Conf 月数 > 0),Prob 为 (实际 概率 年数 > 0 或实际 概率 月数 > 0)

OR您可以通过用临时变量 Conf 和 Prob替换部分来使其更简单(是的,代数在逻辑中也起作用)

相关内容