Лабораторная работа № 8. Сортировка, фильтрация, промежуточные итоги
Приложение Microsoft Excel позволяет использовать книгу Excel как аналог базы данных – производить сортировку данных, отбирать данные по заданному критерию, считать итоги не только по всей таблицы с данными, но и по разделам этой таблице. Рассмотрим подробно эти возможности.
-
Сортировка
-
Запустите приложение Microsoft Excel сохраните файл Книга1 в своей рабочей папке под именем Сортировка и фильтрация.xlsm.
-
Переименуйте Лист1 в Исходные данные.
-
Создайте на этом листе таблицу с данными о сотрудниках (см. рис. 1). Для столбца G не забудьте установить денежный формат.
|
Рис. 1. Исходные данные |
-
Скопируйте лист с исходными данными. Назовите новый лист Сортировка.
-
Выделите всю таблицу с данными, включая заголовки, и нажмите кнопку Сортировка, которая находится в группе Сортировка и фильтр на вкладке Данные.
-
В появившемся диалоговом окне в поле Столбец выберите Пол, а в поле Порядок – От Я до А. Нажмите кнопку ОК. Мы видим, что теперь таблица содержит сначала список мужчин, а потом женщин. Внутри каждой части сохранилась сортировка по алфавиту.
-
Сортировку можно проводить не только по одному столбцу, но и по нескольким. Снова выделите таблицу с данными и нажмите кнопку Сортировка, которая находится в группе Сортировка и фильтр на вкладке Данные. Нажмите кнопку Добавить уровень. В новой строке в поле Столбец выберите Образование. Снова нажмите кнопку Добавить уровень и в появившейся строке в поле Столбец выберите Стаж (см. рис. 2). Обратите внимание на то, что для числового поля Стаж предлагается порядок По возрастанию, а не От А до Я. Нажмите кнопку ОК. Посмотрите, как изменился порядок строк в таблице с данными.
|
Рис. 2. Диалоговое окно «Сортировка» |
-
Фильтрация
-
Скопируйте лист Исходные данные в конец книги. Переименуйте его в Фильтры.
-
Поставьте курсор в любую ячейку с данными и нажмите кнопку Фильтр, которая находится в группе Сортировка и фильтр на вкладке Данные. В ячейках первой строки появились кнопки со стрелочкой, с помощью которых можно производить фильтрацию, т.е. отбор данных по какому-либо критерию.
-
Отберем сотрудников с высшим образованием. Для этого нажмите кнопку в ячейке E1 и снимите флажки со значений «среднее» и «среднее спец.». Нажмите кнопку ОК.
-
Теперь вы видите данные сотрудников только с высшим образованием. Обратите внимание на то, что кнопка в ячейке E1 изменила вид, показывая, что была произведена фильтрация. Кроме того, номера строк выделены синим цветом и идут не подряд – это означает, что остальные данные никуда не делись, а лишь были скрыты. Их можно увидеть вновь, сняв фильтр. Для снятия фильтра нажмите кнопку в ячейке E1 и выберите Снять фильтр с «Образование» или нажмите кнопку Очистить, которая находится в группе Сортировка и фильтр на вкладке Данные.
-
Создадим более сложный фильтр. Нажмите кнопку фильтрации в ячейке G1 и из выпадающего списка Числовые фильтры выберите Больше… В появившемся диалоговом окне введите значение 200 и нажмите кнопку ОК. Теперь должны отображаться только сотрудники, чей оклад больше $200.
-
Можно вывести список сотрудников, чей оклад ниже среднего. Снимите предыдущий фильтр, нажмите кнопку фильтрации в ячейке G1 и из выпадающего списка Числовые фильтры выберите Ниже среднего.
-
Ещё один интересный фильтр – Первые 10… Он позволяет найти заданное количество минимальных или максимальных значений в столбце. Снимите предыдущий фильтр, нажмите кнопку фильтрации в ячейке C1 и из выпадающего списка Числовые фильтры выберите Первые 10… Задайте нужное количество отображаемых элементов списка (например, 3) и нажмите кнопку ОК. Теперь видны данные только о 4 сотрудниках – т.к. двое из них имеют одинаковый год рождения, то в списке отображаются оба.
-
Найдем в списке сотрудников самого старого инженера. Снимите предыдущий фильтр, нажмите кнопку фильтрации в ячейке B1 и снимите галочки со всех должностей, кроме инженера. Нажмите кнопку ОК. Нажмите кнопку фильтрации в ячейке C1. Теперь в поле с годами рождения вы можете видеть годы рождения не всех сотрудников, а только тех, которые были отобраны на предыдущем шаге фильтрации. Несложно выбрать минимальный из них и снять флажки со всех остальных. Нажмите кнопку ОК. Теперь в списке остался только один, самый старый, инженер.
-
Однако иногда бывают ситуации, когда нельзя обойтись стандартными фильтрами. Например, мы ходим отобрать сотрудников пенсионного возраста. Ими будут мужчины старше 60 и лет и женщины старше 55 лет. Получается достаточно сложно условие. Но и его можно задать, используя так называемый расширенный фильтр.
-
Скопируйте лист Исходные данные в конец книги. Переименуйте его в Пенсионный возраст.
-
Вставьте в начало листа четыре пустых строки. В первую строку скопируйте заголовки таблицы с данными. Остальные строки будут использоваться для задания условий фильтрации. Между условиями и заголовками таблицы с данными должна оставаться, по крайней мере, одна пустая строка!
-
В пустые строки надо записать условия фильтрации. При этом условия в ячейках одной строки объединяются логической операцией И, а условия в разных строках объединяются логической операцией ИЛИ.
-
В ячейку C2 введите формулу ="<1948". В строке формул можно будет видеть именно такой текст, а в самой ячейке будет отображаться <1948. Для фильтрации это условие означает, что значения ячеек в столбце C должны быть меньше 1948.
-
В ячейку D2 введите формулу ="=м".
-
В ячейки C3 и D3 введите формулы ="<1953" и ="=ж" соответственно. Теперь формулы в диапазоне C2:D3 задают необходимое условие.
-
Поставьте курсор в одну из ячеек таблицы с данными и нажмите кнопку Дополнительно, которая находится в группе Сортировка и фильтр на вкладке Данные. Появится диалоговое окно Расширенный фильтр (см. рис. 3). В поле Исходный диапазон: должна автоматически появиться ссылка на диапазон с исходными данными $A$5:$G$27. Если этого не произошло, вставьте ссылку на этот диапазон самостоятельно. В поле Диапазон условий: вставьте ссылку на диапазон $A$1:$G$3. Будьте внимательны – диапазон условий не должен включать пустых строк! В этом случае фильтрация работать не будет. Нажмите кнопку ОК. Если вы всё сделали правильно, в списке должны отображаться только пять человек, удовлетворяющих условию.
-
Данный способ плох тем, что в условиях явным образом заданы годы рождения сотрудников пенсионного возраста. В следующем году эти значения изменятся, и придется менять их вручную. Для того чтобы избежать этого, необходимо использовать функцию, вычисляющую текущий год.
-
Скопируйте лист Пенсионный возраст. Для снятия фильтра нажмите кнопку Очистить, которая находится в группе Сортировка и фильтр на вкладке Данные.
|
Рис. 3. Диалоговое окно «Расширенный фильтр» |
-
В ячейку H1 введите название условия «Пенсионный возраст».
-
В ячейку H2 введите формулу =И(C6<ГОД(СЕГОДНЯ())-60;D6="м"). В формуле использованы относительные ссылки на ячейки C6 и D6, которые являются первыми ячейками с данными в таблице фильтруемых данных. Функции ГОД и СЕГОДНЯ вычисляют год (из некоторой даты) и сегодняшнюю дату соответственно. Эти функции не имеют аргументов. Если необходимо использовать функции с аргументами, например, для вычисления среднего значения, аргументы должны задаваться абсолютными ссылками.
-
В ячейку H3 введите формулу =И(C6<ГОД(СЕГОДНЯ())-55;D6="ж"). Обратите внимание на то, что формулы, используемые для фильтрации, должны возвращать логические значения.
-
Поставьте курсор в одну из ячеек таблицы с данными и нажмите кнопку Дополнительно, которая находится в группе Сортировка и фильтр на вкладке Данные. В появившемся диалоговом окне Расширенный фильтр в поле Исходный диапазон: введите ссылку на диапазон с исходными данными $A$5:$G$27. В поле Диапазон условий: вставьте ссылку на диапазон $A$1:$H$3. Нажмите кнопку ОК. Если вы всё сделали правильно, результат должен быть таким же, как и результат, полученный предыдущим способом, но второй способ является более универсальным.