Excel如果使用OR的公式,避免#N / A

目前面临一个问题,长话短说:我试图通过使用OR函数将2个公式合并成一个公式,但是如果两个条件之一不存在,它会给我一个#N / A返回。 有三种情况可能发生:“MTI”,“MTI Z”和“MTO”。 我想要的是,该公式search任何组合在“MTI”或“MTI Z”(也可能是两个),并且如果组合存在,则返回1.如果不是(所以只有MTO存在)然后返回一个0(在这种情况下,它将是一个#N / A,但我可以解决与ISNA或IFERROR)。

公式1是:

=IF(CONCATENATE(A2,B2,"MTI")=INDEX(L:L,MATCH(CONCATENATE(A2,B2,"MTI"),L:L,0),0),1,0) 

公式2是

 =IF(CONCATENATE(A2,B2,"MTI Z")=INDEX(L:L,MATCH(CONCATENATE(A2,B2,"MTI Z"),L:L,0),0),1,0) 

两个公式都起作用,当分别有一个“MTI”或“MTI Z”时,返回“1”

然而,当我试图合并它们时,如果列表中不存在2个中的1个,那么即使我使用OR(它将声明是否存在2个中的至less1个,前进)。

 =IF(OR(CONCATENATE(A2,B2,"MTI Z")=INDEX(L:L,MATCH(CONCATENATE(A2,B2,"MTI Z"),L:L,0),0) ,CONCATENATE(A2,B2,"MTI")=INDEX(L:L,MATCH(CONCATENATE(A2,B2,"MTI"),L:L,0),0)),1,0) 

我怎样才能调整我的公式,使其工作?

这更简单一点:

 =SIGN(COUNTIF(L:L,CONCATENATE(A2,B2,"MTI*"))) 

将这些公式中的每一个包装在IFERROR([formula],0)

尝试添加两个IFERROR'包装器',以便在不匹配时返回FALSE,而不是#N / A。

 =IF(OR(IFERROR(CONCATENATE(A2,B2,"MTI Z")=INDEX(L:L, MATCH(CONCATENATE(A2,B2, "MTI Z"), L:L, 0)), FALSE), IFERROR(CONCATENATE(A2,B2,"MTI")=INDEX(L:L, MATCH(CONCATENATE(A2,B2,"MTI"), L:L, 0)), FALSE)), 1, 0) 

你可以重写你的公式

 =IF(OR(ISNUMBER(MATCH(CONCATENATE(A2,B2,"MTI"),L:L,0)), ISNUMBER(MATCH(CONCATENATE(A2,B2,"MTI Z"),L:L,0))),1,0)