ВПР на разных листах

#vba #excel #excel-formula

#vba #excel #excel-формула

Вопрос:

Я пытаюсь выполнить vlookup на нескольких листах в одной книге:

 =IF(ISNA(VLOOKUP(A2,Regulares!J:L,3,0),ISNA(VLOOKUP('Temp Activos'!G:I,3,0),ISNA(VLOOKUP(A2,'Temp JA'!G:I,3,0),VLOOKUP(A2,'Temp Fit'!G:I,3,0)))))
 

Но я продолжаю получать сообщение об ошибке, что у меня слишком много аргументов???

Я также хотел бы создать макрос, чтобы добавить этот vlookup в ячейку на одном из моих листов (PS) и перенести формулу в последнюю строку (дескриптор заполнения) при нажатии кнопки, но сначала нужно выяснить, почему он не будет работать, прежде чем подключать его к коду…

Комментарии:

1. слишком много аргументов для IF()

2. Итак, я должен удалить IF?

Ответ №1:

ISNA() Функции нужен только один параметр, поэтому ваши круглые скобки не синхронизированы. Если вы используете Excel 2007 или более позднюю версию, вам проще использовать IFERROR() функцию, которая имеет два параметра, второй из которых является значением, возвращаемым в случае ошибки, что будет следующим VLOOKUP в вашем случае.

Комментарии:

1. Попробовал ОШИБКУ IF и получил одно и то же сообщение об ошибке слишком много аргументов: =IFERROR(VLOOKUP(A2,Regulares!J:L,3,0),VLOOKUP(PS!A2,'Temp Activos'!G:I,3,0),IFERROR(VLOOKUP(PS!A2,'Temp JA'!G:I,3,0),VLOOKUP(PS!A2,'Temp Fit'!G:I,3,0)))

2. Структура должна быть IFERROR(VLOOKUP(), IFERROR(VLOOKUP(), ...)) . Попробуйте отредактировать свою формулу с помощью мастера функций (знак fx слева от поля формулы), чтобы разобраться.