Excel, если формула или, избегая #н/д


В настоящее время сталкивается с проблемой, короче говоря: Я пытаюсь объединить 2 формулы в одну, используя функцию OR, но если одно из 2 Условий не существует, это дает мне #N/A назад. Есть 3 условия, которые могут произойти: "MTI", " MTI Z "и"MTO". Мне бы хотелось, чтобы формула искала любую комбинацию в столбце L либо с "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)

Обе формулы работают, возвращая "1", когда есть соответственно " MTI "или" MTI Z "

Однако, когда я пытаюсь объединить их, если 1 из 2 не существует в списке, это дает мне #N/A, даже если я использую OR (что будет означать, если хотя бы 1 из 2 существует, продолжайте).

=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)

Как я могу настроить свою формулу так, чтобы она действовала работа?

4 3

4 ответа:

Это немного более прямолинейно:

=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)