
- •4. Функции рабочего листа
- •4.1. Функция суммирования
- •4.2. Арифметические функции
- •4.3. Функции округления
- •4.4. Степенные функции
- •4.5. Тригонометрические функции
- •4.6. Текстовые функции
- •4.7. Логические функции
- •4.8. Функции выбора и поиска
- •Условие 1
- •4.9. Сводные функции
- •4.10. Функции обработки дат
- •4.11. Финансовые функции
- •4.12. Информационные функции
- •4.13. Ошибочные значения
- •4.14. Функции анализа ошибок
- •4.15. Работа с массивами
- •4.16. Матричные функции
- •То можно обеспечить правильное сложение данных и при вставках новых строк в любом месте диапазона суммирования. Или конкретно для нашего случая
- •4.17. Функция преобразования мер
- •4.18. Примеры “из жизни”
- •4.19. Задачи для
4.8. Функции выбора и поиска
ВЫБОР(<номер>;<значение1>;<значение2>; ...) – возвращает значение из списка значений с заданным <номером> от 1 до 29.
Примеры:
ВЫБОР(2;"Апрель";"Май";"Июнь")="Май",
ВЫБОР(5;1;4;7;2)=#ЗНАЧ! – ошибка, поскольку искомый номер
5 больше числа элементов в списке (4).
В качестве <номера> и <значений> можно использовать ссылки на ячейки, например ВЫБОР(B8;С3;C4;C5).
ПОИСКПОЗ(<искомое значение>;<область поиска>[;<тип поиска>])
– осуществляет поиск позиции (клетки) в <области поиска>, значение данных в которой близко искомому значению. Результатом является не само найденное значение (оно нам известно), а его номер в <области поиска>. Искомое значение и область могут быть любого возможного типа.
Понятие близости определяется значением параметра <тип поиска>. Он может иметь одно из трех значений:
0 – соответствие должно быть точным (полное совпадение).
1 – ищется наибольшее значение, которое меньше или равно (если есть) искомому. Область поиска должна быть упорядочена по возрастанию. Если параметр не указан, он считается равным 1.
-1 – ищется наименьшее значение, которое больше или равно искомому. Область поиска должна быть упорядочена по убыванию.
Примеры. Положим, анализируемая таблица имеет наполнение, изображенное на рис. 4.8-1.
|
A |
B |
C |
D |
E |
F |
1 |
|
|
|
|
|
|
2 |
|
20 |
5 |
30 |
7 |
15 |
3 |
|
4 |
12 |
30 |
40 |
42 |
4 |
|
60 |
45 |
40 |
12 |
4 |
Рис. 4.8-1
Тогда следующие функции выдадут результаты:
ПОИСКПОЗ(7;B2:F2;0)=4 клетка Е2 (четвертая в области),
ПОИСКПОЗ(10;B2:F2;0)=#Н/Д не найдено,
ПОИСКПОЗ(20;B3:F3;1)=2 клетка С3 (вторая в области),
ПОИСКПОЗ(20;B4:F4;-1)=3 клетка D4 (третья в области).
Найденные клетки выделены жирной рамкой.
ГПР(<искомое значение>;<область поиска>;
<номер строки извлечения> [;<тип поиска>])
– осуществляет поиск <искомого значения> в самой верхней строке <области поиска>. Эту строку будем называть ключевой строкой. Результат извлекается из строки с заданным <номером> относительно ключевой строки из <области поиска>. Номер ключевой строки блока поиска – всегда 1 (этот номер не имеет никакого отношения к фактическим номерам строк в рабочих листах книги).
Таким образом, в несколько схематичной форме функция может быть описана следующим образом
ГПР(<что искать>;<где искать>;<откуда взять>;<как искать>).
Параметр <тип поиска> имеет значение ИСТИНА или ЛОЖЬ. Если ЛОЖЬ, поиск в первой строке будет точным, если ИСТИНА (или параметр не задан) – приблизительным (интервальным). В этом случае найденным считается наибольшее значение, меньшее или равное искомому. Ключевая строка тогда должна быть отсортирована по возрастанию. Если этого не сделать, результаты будут непредсказуемы. Напомним, что логические значения ИСТИНА и ЛОЖЬ внутри формул могут быть заменены на 1 и 0 соответственно.
Примеры (исходные данные берутся из рис. 4.8-1).
ГПР(7;B2:F4;3;ЛОЖЬ)=12
Здесь в верхней строке области B2:F4 ищется значение, в точности равное 7. Если поиск успешен, возвращается значение клетки в строке номер три, отсчитывая от верхней строки области. Иными словами
ГПР(<искомое значение 7>;<область поиска B2:F4>;
<строка, из которой извлекается результат 3>;
<поиск должен быть точным ЛОЖЬ>).
В нашем случае результатом явится значение клетки Е4, содержащей число 12. Совершенно идентичные результаты будут получены формулой ГПР(7;B2:F4;3;0) поскольку 0 заменяет значение ЛОЖЬ.
Функции вида ГПР(7;B2:F4;3;1) и ГПР(7;B2:F4;3) скорее всего, вызовут сообщение об ошибке (#Н/Д), поскольку интервальный поиск при неупорядоченной ключевой строке непредсказуем. Хотя в некоторых случаях результат может оказаться верным, рассчитывать на это не стоит.
ГПР(25;B3:F4;2;ИСТИНА)=45
В верхней строке области B3:F4 ищется значение, близкое к 25. Поскольку точно этого значения в строке В3:F3 нет, поиск завершается при нахождении числа 12 в клетке С3, так как следующее значение было (30) бы уже больше искомого (25). Функция возвращает значение клетки в строке номер два, отсчитывая от верхней. В нашем случае это клетка С4. Аналогичный результат будет получен с помощью формулы ГПР(25;B3:F4;2;1), поскольку 1 заменяет значение ИСТИНА.
A
B
C
1
Ключевой
столбец
Столбец
извлечения
2
3
а
3
5
б
4
6
в
5
9
г
6
11
д
Рис. 4.8-2
<номер столбца извлечения> [;<тип поиска>])
– осуществляет поиск <искомого значения> в самом левом ключевом столбце <области поиска>. Результат извлекается из столбца с заданным <номером> относительно ключевого столбца <области поиска>. Функция является полным вертикальным аналогом функции ГПР().
Примеры (данные из рис. 4.8-2):
ВПР(6;B2:C6;2;0)=ВПР(6;B2:C6;2;1)=в – цифра 6 найдена в ключевом столбце, результат извлечен из второго (относительно ключевого) параллельного столбца C.
ВПР(7;B2:C6;2;1)=в – цифра 7 не найдена, но поскольку поиск интервальный, подходящим считается число 6 и результат (в) берется из столбца C.
ВПР(15;B2:C6;2;1)=д – число 15 не найдено. Берется ближайшее меньшее – 11. Результат поиска – буква д.
ВПР(1;B2:C6;2;0)= #Н/Д, ВПР(7;B2:C6;2;0)= #Н/Д,
ВПР(15;B2:C6;2;0)= #Н/Д, ВПР(1;B2:C6;2;1)= #Н/Д.
Точный поиск чисел 1, 7 и 15 оказался неудачным (в ключевой строке нет этих чисел), что и повлекло сообщение об ошибке (“Нет данных”). Вообще, никакой поиск единицы не будет успешным, поскольку ключевой столбец начинается с цифры 3.
Пример. Функции ВПР()/ГПР() могут использоваться не только при вычислениях, но и при условном форматировании.
Пусть таблица (рис. 4.8-3) содержит данные о рабочих днях сотрудников. Нам нужно создать средство быстрого выделения искомых рабочих дней среди перечня рабочих смен, отработанных сотрудниками учреждения. Искомые даты (до трех) вводятся оператором в область C1:E1.
|
A |
B |
C |
D |
E |
1 |
Искомые даты: |
6.окт |
10.окт |
12.окт | |
2 |
|
|
|
|
|
3 |
Ф.И.О. |
Рабочие смены | |||
4 |
Петр |
10.окт |
11.окт |
12.окт |
13.окт |
5 |
Иван |
6.окт |
9.окт |
10.окт |
11.окт |
6 |
Олег |
9.окт |
11.окт |
12.окт |
13.окт |
Рис. 4.8-3
Установим для клетки В4 условное форматирование вида: