База Знаний: Функции Calc. LOOKUP
LOOKUP
Функция возвращает значение из таблицы шириной в одну ячейку, в позиции, определённой поиском по другой таблице.
Синтаксис функции:
=LOOKUP(lookupvalue; searchtable; resulttable) |
---|
где:
- lookupvalue — значение (число, текст или логическое значение), которое ищется в searchtable;
- searchtable — однострочный или одностолбцовый диапазон / массив, должен быть отсортирован, с числами, в порядке возрастания появляющимися перед текстовыми значениями в алфавитном порядке;
- resulttable — диапазон / массив из которого возвращается значение, того же размера, что и searchtable.
Функция LOOKUP возвращает значение из resulttable в позиции, где было найдено соответствие в searchtable. LOOKUP решает, где в searchtable появляется lookupvalue. Если есть точное соответствие, оно является найденной позицией; если есть больше чем одно точное соответствие, найденная позиция — не обязательно крайняя левая / самая верхняя. Если нет точного соответствия, находится позиция как раз перед тем местом, где lookupvalue появился бы; возвращается ошибка #N/A, если это положение находится не в searchtable.
Соответствие всегда нечувствительно к регистру — значение параметра Учитывать регистр в диалоговом окне Сервис → Параметры → InfraOffice.pro Calc → Вычисления не применяется.
Если регулярные выражения разрешены в диалоговом окне Сервис → Параметры → InfraOffice.pro Calc → Вычисления, LOOKUP найдёт точные соответствие, рассматривая lookupvalue как регулярное выражение. Это имеет смысл и должно использоваться только если ожидается уникальное точное соответствие.
Если параметр Условия поиска = и <> должны распространяться на всю ячейку в диалоговом окне Сервис → Параметры → InfraOffice.pro Calc → Вычисления установлен, lookupvalue должен соответствовать всему тексту в ячейке; в противном случае он может соответствовать только части текста.
На рис. 1:
- в ячейке B5 возвращается A. Ячейка A1 соответствует 3. Возвращается содержимое соответствующей ячейки из диапазона A3:E3;
- в ячейке B7 возвращается B. 7 появилось бы между 5 и cat, таким образом находится левая позиция;
- в ячейке B9 возвращается #N/A. 1 появилось бы перед 3 в верхней строке, однако нет позиции слева от неё в таблице;
- в ячейке B11 возвращается C. Различие между нижним и верхним регистрами игнорируется, таким образом CAT соответствует cat;
- в ячейке B13 возвращается D. Текстовое значение mate появилось бы между mat и matter, таким образом находится левая позиция;
- в ячейке B15 возвращается C, если регулярные выражения разрешены (и B если не разрешены). Точка '.' поддерживает 'любой одиночный символ' в регулярном выражении, таким образом c.t соответствует cat;
- в ячейке B17 регулярное выражение “.at” соответствует и cat и mat, если регулярные выражения разрешены. Оно также соответствует matter, если параметр Условия поиска = и <> должны распространяться на всю ячейку выключен.
InfraOffice.pro 3.1.x