База Знаний: Функции Calc. HLOOKUP
HLOOKUP
Функция возвращает значение из строки таблицы, в столбце которого в первой строке найдено требуемое значение.
Синтаксис функции:
=HLOOKUP(lookupvalue; datatable; rowindex; mode) |
---|
где:
- 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:
- в ячейке 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