Логические функции
Просмотр и ссылки
ПСТР(где_ищем; начальная позиция; количество_символов)
ПОИСК(что_ищем; где_ищем; номер_начального_символа)
Текстовые
Информационные
В основном данные функции используются для проверки типа аргумента
Синтаксис | Возвращаемое значение |
ЕЧИСЛО(x) | Возвращает ИСТИНА, если аргумент число |
ЕПУСТО(x) | Возвращает ИСТИНА, если аргумент ссылается на пустую ячейку |
Данные функции служат для работы с данными текстового типа.
Рассмотри несколько функции данной категории.
Функция возвращает номер позиции первого вхождения строки "что_ищем" в тексте "где_ищем", начиная с номера начального символа
(по умолчанию 1). Регистр не различает.
Например, результатом функции ПОИСК("бра";"абракадабра";4) будет число 8, т.к. второе вхождение слова "бра" в слово "абракадабра", начинается с 8-го символа.
Функция возвращает заданное количество символов, начиная с начальной позиции, из текста "где_ищем".
Например, результатом функции ПСТР(“Группа”; 2;3) будет слово "руп".
СЦЕПИТЬ(строка1;строка2;…)
Функция соединяет несколько строк в одну строку (аналогично текстовой операции конкатенации).
Например, результатом функции СЦЕПИТЬ("Конь";"як") будет слово "Коньяк".
В основном используется для поиска в таблице нужных ячеек.
ПРОСМОТР(искомое_значение;вектор1;вектор2)
Функция просматривает "вектор1", , находит в нем позицию "искомого_значения", переходит в ту же позицию "вектора2" и возвращает значение оттуда.
Если в "векторе1" "искомого_значения" не найдено, то выбирается позиция наибольшего из элементов, не превосходящего "искомое_значение".
Перед использованием "вектор1" должен быть отсортирован, то есть его значения должны быть расставлены в порядке возрастания.
Например, результатом формулы =ПРОСМОТР("г";А3:А8;С3:С8) будет число 12 (Рис. 15.).
Рис. 15. Применение функции ПРОСМОТР()
А результатом формулы =ПРОСМОТР(12;С3:С8;А3:А8) будет сообщение об ошибке (Рис. 16.), т.к. "вектор1" (данные в столбце С) не отсортированы.
Рис. 16. Применение функции ПРОСМОТР()
Тем не менее, часто приходится находить значения в данных, которые не отсортированы. Это можно сделать косвенными ссылками с помощью следующих функций.
ПОИСКПОЗ(искомое_значение;вектор;тип_сопоставления)
Возвращает номер позиции того элемента "вектора", который совпадает с "искомым_значением". "Тип_сопоставления" - число -1, 0 или 1. "Тип_сопоставления" указывает, как Microsoft Excel сопоставляет "искомое_значение" со значениями в "векторе".
· Если "тип_сопоставления"равен 1, то функция ПОИСКПОЗ() находит наибольшее значение, которое меньше либо равно, чем "искомое_значение". "Вектор" должен быть упорядочен по возрастанию.
· Если "тип_сопоставления" равен 0, то функция ПОИСКПОЗ() находит первое значение, которое в точности равно аргументу "искомое_значение". "Вектор" может быть не упорядочен.
· Если "тип_сопоставления" равен -1, то функция ПОИСКПОЗ() находит наименьшее значение, которое больше либо равно чем "искомое_значение". "Вектор" должен быть упорядочен по убыванию.
· Если "тип_сопоставления" опущен, то предполагается, что он
равен 1.
Функция ПОИСКПОЗ() используется вместо функций типа ПРОСМОТР(), если нужна позиция элемента, а не сам соответствующий элемент. Если такой элемент не найден, возвращается "#Н/Д".
ИНДЕКС(вектор,номер)
Возвращает значение ячейки с указанным "номером" из "вектора".
Пример. Запишем в ячейку Е2 формулу =ПОИСКПОЗ(12;С3:С8;0)
(Рис. 17.). В результате в ячейке будет число 4, которое соответствует номеру порядковому номеру элемента "12" в данных диапазона С3:С8.
Рис. 17. Применение функции ПОИСКПОЗ()
Теперь в ячейку Е3 запишем формулу =ИНДЕКС(А3:А8;Е2) (Рис. 18.).
Рис. 18. Применение функции ИНДЕКС()
В результате содержимым ячейки Е3 будет буква "г", стоящая
на 4 позиции диапазона А3:А8.
Формула может быть сложной, со вложенными ссылками.
Например, формула может выглядеть так (Рис. 19.):
=ИНДЕКС(A3:A8; ПОИСКПОЗ(12;C3:C8;0))
Рис. 19. Применение сложной функции
Нижеприведенные логические функции играют очень важную роль при создании электронной таблицы, поскольку реализуют алгоритмическую структуру ветвление. Они используются, когда в клетке должно стоять одно из двух значений в зависимости от выполнения какого-либо условия.
Первая из этих функций имеет вид: