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)