Я работаю над таблицей продуктов, в которой необходимо сопоставить номера деталей с описаниями. Номера деталей хранятся на двух отдельных листах: «Номера деталей» (формально определенный список номеров) и «Пользовательские компоненты» (детали, которые еще не попали в официальный список).
Я хочу найти первый список, но если ничего не найдено, поискать второй список. Решение довольно очевидно ...
=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, но это, вероятно, замедлило бы работу из-за дополнительных издержек.)