1

У меня есть список сообщений об ошибках, и я хочу объединить их в "удобное для пользователя" сообщение:

      error        | friendly_error

failed with error1 | =VLOOKUP(A1, error_table, 1, false)
failed with error2 |
something else error3 |
error 4 failed with error5 |
failed with error1 |

И таблица с дружественными значениями на ее основе, содержащая какое-то ключевое слово

contains | friendly_error
error1   | Message for error1
error2   | Message for error 2
etc...

Есть команда, которая может сделать это? Или мне нужна куча комментариев if/else в менее организованном порядке?

Vlookup будет искать меньшее значение в большем значении, но я хочу найти большее значение, чтобы увидеть, содержит ли оно меньшее значение.

Прямо сейчас я делаю это, но оно растет, когда я добавляю больше возможных значений:

=IF(ISNUMBER(SEARCH(G3,A1)),
    H3,
    IF(ISNUMBER(SEARCH(G4,A1)),
        H4, 
        IF (ISNUMBER(SEARCH(G5,A1)),
            H5,
            A1
        )
    )
)

2 ответа2

2

Предполагая, что типы ошибок являются фактическими типами ошибок Excel, вы можете использовать Error.Type():

=VLOOKUP(ERROR.TYPE(A2),$E$1:$F$9,2,FALSE)

Где A2 - формула, возвращающая ошибку #N/A , #REF! , так далее.

Изменить: Или, если я полностью не понял, просто замените ваш VLOOKUP() на:

=VLOOKUP(SUBSTITUTE(A1,"failed with ",""), error_table, 1, false)

Предполагая, что A1 не failed with error1 в нем.

1

Вы можете использовать это, что повторяет ошибки и проверяет, является ли оно подстрокой ошибок в A. Затем возвращает номер строки в INDEX, который возвращает правильную Friendly Error.

=IFERROR(INDEX(H:H,AGGREGATE(15,6,ROW($G$1:$G$3)/(ISNUMBER(SEARCH($G$1:$G$3,A2))),1)),"")

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .