Лабораторная работа № 3 Автоматизация работы в таблицах

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

Задание 1. Создание выпадающего списка

1.  Откройте файл Ex03_1.xlsx.

2.  На листе Прайс находится таблица товаров с ценами.

3.  Задайте имена диапазонам с названием товара (Товар) и таблице с прайсом (Таблица) (рисунок 1). Имена диапазонов задаются для дальнейшего их использования в формулах и облегчения работы с диапазонами. Имя диапазона можно задать через поле имени ячейки или же в контекстном меню выбрать команду Присвоить имя (разумеется в том или ином случае диапазон ячеек должен быть предварительно выделен, как показано на рисунке 1).

Рисунок 1

4.  На листе продажи в столбце Наименование товара создайте выпадающий список и заполните его данными.

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

Рисунок 2

На первой вкладке Параметры из выпадающего списка Тип данных выбрать вариант Список и ввести в строчку Источник знак равно и имя диапазона с требуемыми данными (т. е. =Товар) (рисунок 3). Нажмите ОК.

Результат создания выпадающего списка представлен на рисунке 4.

Если набор значений в источнике может изменяться, лучше вставлять или удалять данные в середине списка.

НЕ нашли? Не то? Что вы ищете?

Рисунок 3

Рисунок 4

Знакомство с функциями ПОИСКПОЗ и ИНДЕКС

Функции ПОИСКПОЗ и ИНДЕКС в основном применяются для автоматической подстановки данных в таблицу из заданного диапазона.

Синтаксис функций

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

Массив — это блок, состоящий из одного столбца или од­ной строки.

Тип_сопоставления —это число -1, 0 или 1.

Если тип_сопоставления равен 1, то функция ПОИСКПОЗ находит наибольшее значение, которое меньше, чем искомое_значение или равно ему. Просматриваемый массив дол­жен быть упорядочен по возрастанию.

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

Если тип_сопоставления равен -1, то функция ПОИСКПОЗ находит наименьшее значение, которое больше, чем искомое_значение, или равно ему. Просматривае­мый_массив должен быть упорядочен по убыванию.

Если тип_сопоставления опущен, то предполагается, что он равен 1.

Функция ПОИСКПОЗ возвращает позицию искомого значения в массиве, а не само значение.

Функция ИНДЕКС имеет две формы. Мы рассмотрим только од­ну.

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

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

Давайте рассмотрим работу этих функций на конкретных примерах.

Задание 2. Знакомство с функцией ПОИСКПОЗ

С помощью функции ПОИСКПОЗ() определите позицию товара с наименованием «Иогурт» в диапазоне Товар. Для этого:

1.  в электронной книге Ex03_1.xlsx перейдите на лист Прайс и установите курсор листа в любую свободную ячейку;

2.  введите в эту ячейку формулу =ПОИСКПОЗ("Йогурт";Товар;0), т. е. мы указываем с помощью данной функции что нам необходимо найти элемент «Йогурт» (текстовое значение в функциях всегда указывается в кавычках) в диапазоне Товар, тип сопоставления 0 – точное совпадение;

3.  нажмите Enter. В результате вы должны получить число 7 (рисунок 5).

Рисунок 5

Действительно, если посмотреть на диапазон Товар, то позиция йогурта соответствует этой цифре. При этом стоит помнить, что позиция значения в массиве, т. е. в заданном диапазоне, отсчитывается от начала диапазона. Получается, что если мы добавим в начале таблицы с данными новую строку, то значение «Йогурт» сместится на строку с номером 8, но диапазон Товар начинается со значения «Молоко», поэтому с начала диапазона позиция йогурта будет в любом случае соответствовать цифре 7 (рисунок 6).

Рисунок 6

Обратите внимание на то, что в качестве значения для функции ПОИСКПОЗ() можно указывать как само значение, так и имя ячейки, в которой находится это значение. Например, запись =ПОИСКПОЗ(A7;Товар;0) позволит получить аналогичный результат как и при использовании записи =ПОИСКПОЗ("Йогурт";Товар;0).

Задание 3. Знакомство с функцией ИНДЕКС

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

С помощью функции ИНДЕКС() найдите в диапазоне Товар элемент расположенный на пятой позиции. Для этого:

1.  в электронной книге Ex03_1.xlsx на листе Прайс установите курсор листа в любую свободную ячейку;

2.  введите в эту ячейку следующую функцию =ИНДЕКС(Товар;5). Нажмите Enter. Результат представлен на рисунке 7.

Рисунок 7

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

В новой ячейке введите формулу = ИНДЕКС(Таблица;8;2). В результате вы найдете стоимость ветчины (рисунок 8).

Рисунок 8

Автоматическая подстановка данных

При работе с выпадающим списком можно автоматизировать ввод данных в таблице. Например, имеется прайс лист, содержащий названия товаров и их цену. Можно организовать выбор названия товара из списка и автоматическую подстановку цены товара в итоговую таблицу.

Автоматическая подстановка данных из справочной таблицы основывается на комбинированном использовании функций ИНДЕКС и ПОИСКПОЗ.

Задание 4. Комбинирование функций ПОИСКПОЗ и ИНДЕКС

В электронной книге Ex03_1.xlsx на листе Продажи в колонке Цена, используя функции MS Excel, обеспечьте автоматическую подстановку стоимости товара с листа Прайс, в зависимости от выбранного из выпадающего списка значения на листе Продажи.

1.  Установите курсор листа в ячейку С2 и введите в нее следующую формулу:

=ИНДЕКС(Таблица; ПОИСКПОЗ(B2; Товар; 0); 2)

2.  Нажмите Enter. В результате вы получите в ячейке С2 стоимость того товара, наименование которого указано в соседней колонке (рисунок 9). При выборе из выпадающего списка другого наименования товара значение цены будет изменяться соответствующим образом.

Рисунок 9

3.  С помощью маркера автозаполнения продублируйте данную формулу до конца таблицы (рисунок 10).

Рисунок 10

Расшифруем данную формулу. Эта формула начинает работать с функции ПОИСКПОЗ, которая позволяет нам найти позицию значения из ячейки B2 на листе Продажи в диапазоне Товар с листа Прайс, и типом точности 0. Например, если воспользоваться списком товаров, который представлен на рисунке 10, то функция ПОИСКПОЗ ищет позицию хлеба, название которого указано в ячейке В2 из колонки Наименование товара в диапазоне Товар на листе Прайс. Эта позиция будет равна 3. Следовательно, в памяти компьютера введенная нами формула

=ИНДЕКС(Таблица; ПОИСКПОЗ(B2; Товар; 0); 2)

примет вид

=ИНДЕКС(Таблица;3; 2)

Параметр «3» – это результат работы функции ПОИСКПОЗ.

Далее вступает в работу функция ИНДЕКС, которая будет искать в диапазоне Таблица на листе Прайс значение, находящееся на пересечении третьей строки и второго столбца. (Напоминаем, что диапазон Таблица состоит из двух столбцов). Этим значением будет стоимость товара, в данном случае хлеба = 27.

Задание 5. Оформление итоговой таблицы

На листе Продажи в колонке Количество введите произвольные значения. Вычислите значения в колонке Итого.

Задание 6. Самостоятельное задание

Откройте файл Кадры.xls. Требуется автоматизировать изменение окладов на листе Кадры.

Например, требуется кого-то из менеджеров перевести и старшие менеджеры или консультанта перевести в грузчики. Требуется проделать эту операцию для четырех сотрудников. Вместе с должностью должен изменяться и оклад.

Создайте новый лист и назовите его Штат.

Скопируйте на лист Штат столбцы Должность и Оклад.

Удалите повторяющихся сотрудников. Для этого:

1.  Выделите столбцы должность и оклад.

2.  На вкладке Данные щелкните по кнопке Удалить дубликаты.

3.  Удалите галочку из столбца Оклад.

4.  Щелкните по кнопке Ok.

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

Методические указания

1. Выделите на листе Штат диапазон должностей. Присвойте выделенному диапазону имя должность.

2. Выделите на листе Штат диапазон окладов. Присвойте выделенному диапазону имя оклад.

3. На листе Сотрудники в столбце Оклад введите формулу, которая бы искала на листе Штат в диапазоне должность позицию соответствующую должности сотрудника, а затем из диапазона оклад листа Штат вставляла оклад, соответствующий найденной позиции.

4. После ввода формулы убедитесь, что полученный оклад действительно соответствует окладу должности сотрудника с листа Штат.

5. Измените оклад у гл. бухгалтера на листе Штат. Проверьте произошло ли изменение соответствующего оклада на листе Сотрудники.