我正在尝试使用3列和3条件编写嵌套if公式

时间:2015-02-03 01:51:29

标签: excel nested

A   B      C    FORMULA
Y   TBC     N   ?

我希望公式包含所有这3列,每列都有不同的组合

例如,如果a,b,c = Y,则结果应为ABC,如果a& b是Y,结果将是AB并且类似地" AC"," BC"," A"," B"," C"

如果所有三个都是N,那么结果将是N,如果一个是" TBC"和其他2是N,结果是TBC

1 个答案:

答案 0 :(得分:-1)

最简单,最混乱的解决方案是:

=IF(AND(OR(A1="TBC", B1="TBC",C1="TBC"), A1<>"Y", B1<>"Y", C1<>"Y"),"TBC", IF(AND(A1="N",B1="N",C1="N"), "N", IF(A1="Y", "A", "") & IF(B1="Y", "B", "") & IF(C1="Y", "C", "")))

当然,如果你想扩大列数或类似数量,这很快会变得非常混乱,因此有更有效的方法。

长话短说,您在此使用的三个功能是IFORAND

=IF(<Condition>, <What it will return if comparison is true>, <What it will return if comparison isfalse>)
=OR(<Condition>, <Condition>,...) Will be true if one or more of the Conditions are true
=AND(<Condition>, <Condition>,...) Will be true, only if all of the Conditions are true

在我们的第一个IF中,我们想知道我们的任何一个细胞是否至少有一个“TBC”,其余的是“N”。我将其简化为至少一个“TBC”而不是“Y”,如果这不是您想要的,那么还有其他方法(如果您使用的是Excel 2013,则可以替换{{1} } OR只有在其中一个条件为真时才返回true。

要解决此问题,我们使用

XOR

与说法相同,如果A,B和C中的至少一个是“TBC”并且它们都不是“Y”则返回true。如果这是真的,那么它会将单元格设置为“TBC”,否则它将继续询问第二个if语句,该语句使用公式:

AND(OR(A1="TBC", B1="TBC",C1="TBC"), A1<>"Y", B1<>"Y", C1<>"Y")

这更简单。如果所有三个单元格都等于N,它将返回true。如果为真,它将从AND(A1="N",B1="N",C1="N") 语句中的第二个参数给出值“N”,否则它将进入最后一个部分:< / p>

IF

您需要知道的另一件事是使用IF(A1="Y", "A", "") & IF(B1="Y", "B", "") & IF(C1="Y", "C", "") 字符的连接函数。这样做是将周围的字符串连接在一起。

每个&会给我们一个字符(行字母),如果它是真的,或者一个空字符串,如果它不是,所以例如,如果单元格的值为IF那么语句将产生字符串:

Y, Y, N

当它们结合在一起时,就像我们想要的那样给我们AB。