我正在尝试将多列嵌套到同时使用 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替换部分来使其更简单(是的,代数在逻辑中也起作用)