Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методическое пособие Кирвас.doc
Скачиваний:
24
Добавлен:
27.02.2016
Размер:
2.37 Mб
Скачать

2.3. Использование функций категорииСсылки и массивыдля анализа списка.

Для анализа данных в списке могут быть использованы функции категорий Ссылки и массивы, их еще называют функциями ссылки и подстановки. Эти функции используются для различного поиска значений в списках.

Часто востребованной функцией данной категории является функции ПОИСКПОЗ(), возвращающая позициюэлемента диапазона, в наибольшей степени соответствующего искомому значению. Эта функция имеет следующий синтаксис:

ПОИСКПОЗ (искомое_значение; просматриваемый_диапазон; тип_сопоставления)

Аргумент искомое_значение – это исходное искомое значение, которое ищется в диапазоне просматриваемый_массив.

Аргумент тип_сопоставления определяет принцип поиска и может принимать значения –1, 0 или 1. Тип_сопоставления указывает, как Microsoft Excel сопоставляет искомое_значение со значениями просматриваемого диапазона.

Еслитип_сопоставления равен 1 или опущен, функция ПОИСКПОЗ() находит в просматриваемом_диапазоне ближайшее значение, которое меньше искомого или равно искомому. При этом просматриваемый_диапазон должен быть упорядочен по возрастанию: ... –2, –1, 0, 1, 2 ... A–Z, ЛОЖЬ, ИСТИНА (см. рис. 2.2).

Рис. 2.2. Функция ПОИСКПОЗ() определяет ближайший элемент диапазона меньше 24

Если тип_сопоставления равен 0, функция ПОИСКПОЗ() находит первое значение, которое в точности равно аргументу искмое_значение. В этом случае просматриваемый_диапазон может быть не отсортирован.

Еслитип_сопоставления равен –1, то функция ПОИСКПОЗ() находит ближайшее значение, которое больше искомого или равно искомому. При этом просматриваемый_диапазон должен быть упорядочен по убыванию: ИСТИНА, ЛОЖЬ, Z–A ...2, 1, 0, –1, –2... и так далее (см. рис. 2.3).

Рис. 2.3. Функция ПОИСКПОЗ() определяет ближайший элемент диапазона больше 24

При работе с функцией ПОИСКПОЗ() следует обратить внимание на ряд особенностей ее использования:

  • Если функция ПОИСКПОЗ() не находит соответствующего значения, то возвращается значение ошибки #Н/Д («Неопределенные данные»).

  • При использовании функции ПОИСКПОЗ() для определения позиции текстовых строк тип сопоставления обычно задают 0.

  • Если тип_сопоставления равен 0 и искомое_значение текстовое, то оно может содержать символы шаблона (* или ?).

Функция ПРОСМОТР() возвращает значение из строки, из столбца или из массива и две синтаксические формы: вектор и массив.

Обычно используется векторная форма. В своей векторной форме функция ПРОСМОТР() – находит в одной строке или одном столбце наибольшее сравниваемое значение, не превышающее искомого, и возвращает значение из соответствующей позиции другой строки или столбца. При этом значения в диапазоне поиска должны быть отсортированы по возрастанию.

Векторная форма функции имеет следующий синтаксис:

ПРОСМОТР(искомое_значение;просматриваемый_вектор; вектор_результатов).

Аргумент искомое_значение – это значение, которое функция ПРОСМОТР() ищет в просматриваемом_векторе. Искомое_значение может быть числом, текстом, логическим значением, именем или ссылкой.

Аргумент просматриваемый_вектор – это диапазон, содержащий только одну строку или один столбец. Значения в аргументе просматриваемый_вектор могут быть текстами, числами или логическими значениями.

Значения в аргументе просматриваемый_вектор должны быть расположены в порядке возрастания: ... –2, –1, 0, 1, 2 ..., A–Z, ЛОЖЬ, ИСТИНА; в противном случае функция ПРОСМОТР() может вернуть неправильный результат. Тексты в нижнем и верхнем регистре считаются эквивалентными.

Аргумент вектор_результатов – это интервал, содержащий только одну строку или один столбец, из которого будет возвращено значение. Данный диапазон должен иметь столько же элементов, что и просматриваемый_вектор.

При работе с функцией ПРОСМОТР() следует обратить внимание на ряд особенностей ее использования:

  • если функция ПРОСМОТР() не может найти искомое_значение, то найдено будет ближайшее значение, которое меньше искомого в просматриваемый_вектор;

  • если искомое_значение меньше, чем наименьшее значение в аргументе просматриваемый_вектор, то функция ПРОСМОТР() возвращает значение ошибки #Н/Д.

Вторая синтаксическая форма функции ПРОСМОТР() предназначена для работы с массивами, она имеет следующий синтаксис:

ПРОСМОТР(искомое_значение;массив).

Эта форма функции ПРОСМОТР() просматривает первую строку или первый столбец массива, находит указанное значение и возвращает значение из аналогичной позиции последней строки или столбца массива. Для определения расположения сравниваемых значений (в столбце или в строке) функция использует размерности таблицы.

Эта форма функции ПРОСМОТР предназначена для совместимости с другими системами электронных таблиц. В случае необходимости осуществления такого рода поиска лучше вместо формы функции ПРОСМОТР(), предназначенной для работы с массивами, использовать более предсказуемые функции ГПР() или ВПР().

Функция ВПР() ищет значение в крайнем левом столбце таблицы и возвращает значение в той же строке из указанного столбца таблицы (см. рис. 2.4). Функция имеет следующий синтаксис:

ВПР(искомое_значение;диапазон_списка;номер_столбца; интервальный_просмотр)

Рис. 2.4. Использование функции ВПР() для поиска должности Бортниковой

Аргумент искомое_значение – это значение, которое должно быть найдено в первом столбце таблицы. Искомое_значение может быть числом, ссылкой на ячейку или текстовой строкой, заключенной в двойные кавычки.

Аргумент диапазон_списка – это список, в котором осуществляется выбор данных.

Аргумент номер_столбца – это номер столбца в диапазоне списка, в котором должно быть найдено соответствующее значение. Если номер_столбца равен 1, то возвращается значение из первого столбца аргумента диапазон_списка; если номер_столбца равен 2, то возвращается значение из второго столбца. В нашем примере (см. рис. 2.4) этот аргумент равен 6, номер столбца Должность.

Аргумент интервальный_просмотр – это логическое значение, которое определяет тип соответствия: точное или приблизительное.

  • Если аргумент интервальный_просмотр имеет значение ЛОЖЬ, то функция ВПР() ищет в первом столбце таблице точное соответствие искомому_значению. Если таковое не найдено, то возвращается значение ошибки#Н/Д.Диапазон_списка не обязано должен быть отсортирован.

  • Если аргумент интервальный_просмотр имеет значение ИСТИНА или опущен, то в случае отсутствия точного совпадения, возвращается ближайшее значение меньше, чем искомое_значение. Значения в первом столбце аргумента интервальный_просмотр должны быть расположены в возрастающем порядке, в противном случае функция ВПР может выдать неправильный результат.

Функция ГПР() идентична функции ВПР() за исключением того, что работает с вертикальными таблицами, используется в том случае, если данные расположены не в столбцах, а в строчках (см. рис. 2.5).

Рис. 2.5. Использование функции ГПР() для поиска оплаты Бортниковой, произведенной в апреле

Функция имеет следующий синтаксис:

ГПР(искомое_значение;инфо_таблица;номер_строки; интервальный_просмотр).

ГПР() ищет значение в верхней строке таблицы и возвращает значение в том же столбце из заданной строки таблицы или массива. Функция ГПР() используется тогда, когда сравниваемые значения расположены в верхней строке таблицы данных, а возвращаемые значения расположены на несколько срок ниже. По умолчанию, перед использованием функции ГПР() список должен быть отсортирован.

Еще одной функцией, представляющей интерес для анализа данных в списках, является функция ИНДЕКС(). Функция ИНДЕКС() подобно функции ПРОСМОТР() имеет две формы.

Первая форма функции ИНДЕКС(), имеющая следующий синтаксис:

ИНДЕКС(список; номер_строки; номер_столбца),

возвращает значение элемента списка, заданного номером строки и номером столбца. Например, используя пример рисунка 2.4, для поиска значения из шестого столбца четвертой строки будет использована формула:

=ИНДЕКС(A2:H7;4;6),

которая вернет значение «Преподаватель».

Для поиска значения в списке можно использовать две функции одновременно: ПОИСКПОЗ(), которая определяет номер (возможно номер столбца) элемента в спискеи ИНДЕКС(), которая возвращает значение элемента на пересечении заданных столбца и строки.

Вторая синтаксическая форма функции ИНДЕКС() возвращает адрес ячейки. Она полезна в тех случаях, когда нужно выполнить операции с ячейками (например, изменить ширину ячейки), а не с ее значениями. Если она используется как вложенная, то внешняя функция может использовать определенный данной функцией адрес. Кроме того, ссылочная форма функции ИНДЕКС() не отображает свой результат как адрес, а выводит значение (значения), находящиеся по данному адресу. Важно запомнить, что результатом функции ИНДЕКС является именно адрес, даже если этот результат выглядит иначе.