База Знаний: Функции Calc. LOOKUP

From Wiki
Revision as of 20:21, 18 February 2012 by Sancho (talk | contribs)
Jump to navigationJump to search



70px right

LOOKUP

Функция возвращает значение из таблицы шириной в одну ячейку, в позиции, определённой поиском по другой таблице.

Синтаксис функции:

=LOOKUP(lookupvalue; searchtable; resulttable)
Рис. 1. Пример функции.

где:

  • 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, если параметр Условия поиска = и <> должны распространяться на всю ячейку выключен.


Documentation caution.png В MS Excel, любые логические значения в searchtable должны появляться после любых текстовых значений. В InfraOffice.pro Calc, логические значения, как предполагается, имеют числовые значения 0 (FALSE) и 1 (TRUE).


Tip.png Гибкость и мощность регулярных выражений и запрещение параметра соответствовать всей ячейке, делают эту функцию намного более сложной. Самый безопасный и самый лёгкий способ использовать эту функцию состоит в том, чтобы запретить регулярные выражения и разрешить соответствие всей ячейке.






InfraOffice.pro 3.1.x









К началу страницы