Функция для выбора первого действительного значения из списка? - PullRequest
0 голосов
/ 16 мая 2019

Я работаю над таблицей продуктов, в которой необходимо сопоставить номера деталей с описаниями. Номера деталей хранятся на двух отдельных листах: «Номера деталей» (формально определенный список номеров) и «Пользовательские компоненты» (детали, которые еще не попали в официальный список).

Я хочу найти первый список, но если ничего не найдено, поискать второй список. Решение довольно очевидно ...

=if(isna(vlookup(A3,'Part Numbers'!A:C,2,false)),vlookup(A3,'Custom Components'!A:E,2,false),vlookup(A3,'Part Numbers'!A:C,2,false))

... за исключением того факта, что это обычно запускает функцию vlookup дважды в очень длинном списке "Номера деталей" (17k + элементов).

То, что я хочу, - это функция, которая говорит: «Вот список выражений; верните первое, которое возвращает допустимое значение». Таким образом, vlookup нужно будет запускать только один раз в списке «Номера деталей». Это будет выглядеть примерно так:

=firstValid(vlookup(A3,'Part Numbers'!A:C,2,false)),vlookup(A3,'Custom Components'!A:E,2,false))

Есть ли такое животное? (Очевидно, я мог бы определить пользовательскую функцию JavaScript, но это, вероятно, замедлило бы работу из-за дополнительных издержек.)

1 Ответ

0 голосов
/ 16 мая 2019

Мне нужна функция iferror():

IFERROR Возвращает первый аргумент, если это не значение ошибки, в противном случае возвращает второй аргумент, если он присутствует, или пустое значение, если второй аргумент отсутствует.

Итак, функция должна быть:

=iferror(vlookup(A3,'Part Numbers'!A:C,2,false)),vlookup(A3,'Custom Components'!A:E,2,false))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...