Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
95
Добавлен:
20.04.2015
Размер:
1.13 Mб
Скачать

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 условное форматирование вида:

Соседние файлы в папке EXCEL (Попов)