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

From Apache OpenOffice Wiki
< RU‎ | kb
Revision as of 06:05, 30 July 2018 by Sancho (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search



HLOOKUP

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

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

=HLOOKUP(lookupvalue; datatable; rowindex; mode)
Рис. 1. Пример функции.
где:
  • lookupvalue — значение (число, текст или логическое значение), разыскиваемое в первой строке диапазона / массива. Когда значение найдено в первой строке, HLOOKUP возвращает соответствующее значение (в том же самом столбце) в строке rowindex диапазона datatable, где для первой строки rowindex = 1;
  • datatable — ссылка, которая должна включать по крайней мере две строки;
  • rowindex — номер строки в массиве, содержащей значения, которые должны быть возвращены. Первая строка имеет номер 1;
  • mode — необязательный параметр, который указывает, отсортирована ли первая строка в массиве в порядке возрастания. Если mode 0 или FALSE, первая строка не отсортирована в порядке возрастания, и ищется первое точное совпадение (поиск выполняется слева направо). В неотсортированных списках, значение поиска должно быть подобрано точно. Иначе функция возвратит сообщение об ошибке: #N/A. Если mode = 1, TRUE или опущен, первая строка datatable должна быть отсортирована, с числами, в порядке возрастания располагающимися перед текстовыми значениями в алфавитном порядке. Поиск по отсортированным строкам может выполняться намного быстрее, и функция всегда возвращает значение, даже если значение поиска не было точно подобрано, если оно находится между наименьшим и наибольшим значением отсортированного списка. HLOOKUP решает, где в первом ряду появляется lookupvalue. Если есть точное совпадение, оно соответствует найденному столбцу; если есть более чем одно точное совпадение, найденный столбец — не обязательно крайний левый.


Если регулярные выражения разрешены в диалоговом окне Сервис → Параметры → InfraOffice.pro Calc → Вычисления, HLOOKUP находит точное соответствие, рассматривая lookupvalue как регулярное выражение. Это имеет смысл и должно использоваться только если mode имеет значение 0 или FALSE.


Если параметр Условия поиска = и <> должны распространяться на всю ячейку в диалоговом окне Сервис → Параметры → InfraOffice.pro Calc → Вычисления — установлен, lookupvalue должен соответствовать всему тексту в ячейке; в противном случае он может соответствовать только части текста.


Соответствие всегда не зависит от регистра — значение параметра Учитывать регистр в диалоговом окне Сервис → Параметры → InfraOffice.pro Calc → Вычисления, не употребляется.


На рис. 1:

  • в ячейке B4 возвращается A. Ячейка A1 в первой строке соответствует 3. Содержимое соответствующей ячейки во 2-ой строке (то есть, A2) возвращается. Первый ряд может быть отсортирован, но это не является необходимым в режиме 0;
  • в ячейке B6 возвращается значение ошибки #N/A. Нет никакого соответствия для 4;
  • в ячейке B8 возвращается C. Различие между нижним и верхним регистрами игнорируется, таким образом CAT соответствует cat;
  • в ячейке B10 возвращается C, если регулярные выражения разрешены (и #N/A если не разрешены). Точка “.” соответствует «любому одиночному символу» в регулярных выражениях, таким образом c.t соответствует cat;
  • в ячейке B12 возвращается C, если регулярные выражения разрешены. Заданному условию поиска соответствует cat, а так же mat, но всегда находится крайнее левое совпадение в режиме 0;
  • в ячейке B14 возвращается значение ошибки #N/A, если параметр Условия поиска = и <> должны распространяться на всю ячейку — установлен и C в противном случае. Строка at не соответствует никакому целому содержимому ячеек, но оно соответствует части cat;


Рис. 2. HLOOKUP.
На рис. 2:
  • в ячейке B4 возвращается A. Ячейка A1 в первой строке соответствует 3. Верхняя строка должна быть отсортирована в режиме 1, с текстовыми данными, располагающимися после чисел. Текстовая строка matter следует за mat, потому что, хотя первые буквы — одинаковые, matter имеет больше букв;
  • в ячейке B6 возвращается A. 4 располагалось бы между 3 и 5 в верхней строке, таким образом находится левая позиция;
  • в ячейке B8 возвращается значение ошибки #N/A, 1 располагалось бы перед 3 в верхнем ряду, но позиции слева от неё нет в таблице;
  • в ячейке B10 возвращается B. 7 располагалось бы между 5 и cat в верхнем ряду, таким образом находится левая позиция;
  • в ячейке B12 возвращается B. Текстовая строка apple располагалась бы между 5 и cat в верхнем ряду, таким образом находится левая позиция;
  • в ячейке B14 возвращается D. Текстовая строка mate располагалась бы между mat и matter в верхнем ряду, таким образом находится левая позиция;
  • в ячейке B16 возвращается E. Текстовая строка rat располагалась бы после matter в верхнем ряду, таким образом находится левая позиция;
  • в ячейке B18 возвращается B, даже если параметр Условия поиска = и <> должны распространяться на всю ячейку — не установлен. В этом случае соответствие между at и cat игнорируется в пользу рассмотрения at как слова, которое располагается между 5 и cat.






InfraOffice.pro 3.1.x









Personal tools