在Excel中对文本string使用if和AND的组合

我有3列: 标签/边界/组合 。 前2列的值为“正确”,“不正确”和“未定义”。 现在基于前两列值的组合,我想为第三列Combo自动生成一个值。 例如,如果我有正确/正确,我将在Combo栏中看到CC。 或者如果我不正确/正确,我会在Combo栏中看到NC。 这是我使用的公式,但它不起作用。 我看到的Combo栏的唯一值是False,我是否错过了任何东西?

=IF(AND(A2="Correct",B2="Correct"),"CC", IF(AND(A2="Correct",B2="Not Correct"),"CN", IF(AND(A2="Not Correct",B2="Correct"),"NC", IF(AND(A2="Not Correct",B2="Not Correct"),"NN", IF(AND(A2="Not Defined",B2="Not Defined"),"MM"))))) 

谢谢,

你没有在这里说明每一个可能的情况。 既然你有两列,每列有三个值,那么就给你3 ^ 2 = 9不同的组合,你应该在你的“IF”语句中嵌套(如果你想这样做的话)。

你包括在你的问题中的公式绝对不包括他们全部,如图所示:

涵盖的案例

您看到的“FALSE”值可能是您的公式未涵盖的“ 标签/边界”组合。 考虑到所有9例,这个公式看起来是这样的:

 =IF(AND(A2="Correct", B2="Correct"),"CC", IF(AND(A2="Correct", B2="Not Correct"),"CN", IF(AND(A2="Correct", B2="Not Defined"),"CM", IF(AND(A2="Not Correct", B2="Correct"),"NC", IF(AND(A2="Not Correct", B2="Not Correct"),"NN", IF(AND(A2="Not Correct", B2="Not Defined"),"NM", IF(AND(A2="Not Defined", B2="Correct"),"MC", IF(AND(A2="Not Defined", B2="Not Correct"),"MN", IF(AND(A2="Not Defined", B2="Not Defined"),"MM"))))))))) 

在这种情况下,我强烈build议不要嵌套“IF”语句,因为这可能很难维护并且容易出错。 我build议你使用这个公式来代替它,它自己计算每个单元格,并返回两个单元格结果的连接。

 CONCATENATE( IF(A2="Correct","C",IF(A2="Not Correct","N",IF(A2="Not Defined","M",""))), IF(B2="Correct","C",IF(B2="Not Correct","N",IF(B2="Not Defined","M",""))) ) 

您应该能够通过几个连续的硬编码查找来简化公式。

 =LOOKUP(A2, {"Correct","Not Correct","Not Defined"}, {"C","N","M"})& LOOKUP(B2, {"Correct","Not Correct","Not Defined"}, {"C","N","M"}) 

备用,

 =CHAR(CODE(A2)-ISNUMBER(SEARCH("defined", A2)))& CHAR(CODE(B2)-ISNUMBER(SEARCH("defined", B2))) 

在这里输入图像描述

你所拥有的就是好的。 如果在前两列中有一组数据不符合您编码的任何场景,则会看到错误。 如果在A或B中没有定义,或者在另一列中有正确或不正确,您还没有告诉它该做什么。

 =IF(AND(A2="Correct",B2="Correct"),"CC", IF(AND(A2="Correct",B2="Not Correct"),"CN", IF(AND(A2="Not Correct",B2="Correct"),"NC", IF(AND(A2="Not Correct",B2="Not Correct"),"NN", IF(AND(A2="Not Defined",B2="Not Defined"),"MM", IF(AND(A2="Not Defined",B2="Correct"),"MC", IF(AND(A2="Not Defined",B2="Not Correct"),"MN", IF(AND(A2="Correct",B2="Not Defined"),"CM", IF(AND(A2="Not Correct",B2="Not Defined"),"NM", "not found"))))))))) 

如果A和B中的值没有组合,则上面的内容将足以解决其他问题,而不是“FALSE”将表示“未find”。