[an error occurred while processing this directive] | |
1-й час. Знакомство с Visual Basic for Applications 3-й час. Работа с элементами управления 4-й час. Переменные и константы 6-й час. Логика условных операторов 7-й час. Циклические вычисления 9-й час. Основные объекты Excel 11-й час. Редактор Visual Basic 15-й час. Автоматизация экранных форм 20-й час. Получение внешних данных |
19-й час. Сводные таблицыБольшие таблицы данных, состоящие из сотен строк и десятков столбцов, требуют специальных средств анализа таких массивов данных. Одним из эффективных средств Excel, позволяющих просматривать и анализировать большие таблицы данных, являются сводные таблицы. В этом часе будут рассмотрены следующие вопросы.
Работа со сводной таблицейВероятно, сводные таблицы - одно из наиболее интересных средств анализа данных в Excel. Сводные таблицы используются для обобщения больших массивов данных, представляя данные в трехмерном формате. Такой формат позволяет фильтровать данные, отображая различные уровни детализации. На рис. 19.1 показана таблица данных (список), а на рис. 19.2 - сводная таблица, построенная на основе этих данных. Сводные таблицы обладают свойствами, эффективными при анализе данных.
Рис. 19.1. Таблица данных, на основе которых построена сводная таблица
Рис. 19.2. Сводная таблица, используемая для просмотра и анализа данных о продажах Основы сводных таблицСводная таблица состоит из нескольких областей (на рис. 19.3 показан макет сводной таблицы из диалогового окна мастера сводных таблиц), в которые надо поместить поля (столбцы) списка данных (см. рис. 19.1). Вот описание этих областей.
Рис. 19.3. Макет сводной таблицы, представленный в окне мастера сводных таблиц Вернемся к таблице данных, показанной на рис. 19.1. Любое из полей Год, Район или Категория товара можно поместить в любую из областей Страница, Строка или Столбец. Поле Объем продаж следует поместить в область Данные, так как в данной таблице это единственное поле с числовыми данными. (Можно поместить в область Данные и поле с нечисловыми данными, но тогда над данными можно проводить только очень ограниченный круг вычислений, например подсчитать количество определенных элементов.) При разных вариантах размещения полей списка по областям сводной таблицы данные будут группироваться по-разному, и можно получить уровни детализации по различным критериям. Сводная таблица, у которой поле Район помешено в область Страница, а поле Год - в область Строка, показана на рис. 19.4. Можно помещать по несколько полей во все облети сводной таблицы. В этом случае получится иерархическая структура уровней группирования данных, а сводная таблица станет мощным средством просмотра данных с различных точек зрения.
Рис. 19.4. Измененная сводная таблица Запись макроса для создания сводной таблицыВ прошлом часе мы записали макрос (строящий диаграмму), код которого послужил основой для созданной затем процедуры. Такой же подход используется и в этом часе. Сейчас мы запишем макрос, код которого исследуем и используем для создания процедуры, строящей сводные таблицы. Прежде всего создайте таблицу данных, похожую на представленную на рис. 19.1. Пусть эта таблица имеет заголовки Год, Район, Категория товара и Объем продаж. Если вы хотите, чтобы таблица данных на рабочем листе воспринималась Excel как список, позаботьтесь о том, чтобы заголовки столбцов были выделены шрифтом, отличным оттого, каким набраны строки сданными. Выделите таблицу данных и начните запись макроса. Выполните команду Данные > Сводная таблица. В первом диалоговом окне мастера сводных таблиц установите переключатели в списке или базе данных Microsoft Excel и сводная таблица. Щелкните на кнопке Далее. В следующем диалоговом окне удостоверьтесь, что выбран весь диапазон таблицы данных, и щелкните на кнопке Далее. В третьем диалоговом окне мастера сводных таблиц установите переключатель новый лист и щелкните на кнопке Готово. В рабочую книгу будет добавлен новый лист, содержащий пустую сводную таблицу (рис. 19.5).
Рис. 19.5. После завершения работы мастера сводных таблиц на новом рабочем листе отобразится пустой макет сводной таблицы
Рис. 19.6. Законченная сводная таблица Перетащите из панели Сводные таблицы поле Год в область сводной таблицы, помеченную словами Перетащите сюда поля страниц. Перетащите поле Район в область, помеченную словами Перетащите сюда поля строк. Далее перетащите в область столбцов сводной таблицы поле Категория товара, а в область данных - поле Объем продаж. Законченная сводная таблица показана на рис. 19.6. Остановите запись макроса. Прежде чем исследовать код макроса, поэкспериментируйте со сводной таблицей. В поле списка рядом с полем Год щелкните на кнопке со стрелкой, направленной вниз, в открывшемся списке выберите 1997 и щелкните на кнопке ОК. В сводной таблице отобразится информация, относящаяся только к 1997 году. Щелкните в поле Категория товара на кнопке со стрелкой, направленной вниз, и снимите флажки Бытовая электротехника и Средства автоматизации. Щелкните на кнопке ОК, теперь в сводной таблице будут представлены только данные по средствам связи. Проделав описанные операции в обратном порядке, восстановите первоначальный вид сводной таблицы. Исследование кода макросаПерейдите в редактор Visual Basic и в окне проектов найдите текущую книгу. Откройте папку Modules и затем Module1 - вы увидите код макроса в виде процедуры МояСводнаяТаблица (если такое имя вы дали своему макросу). Полный код этой процедуры приведен в листинге 19.1. Листинг 19.1. Процедура МояСводнаяТаблица
Первый оператор в этой процедуре выполняет метод Add (Добавить) применительно к коллекции PivotCaches (Основные кэши). На самом деле в этом операторе выполняются два метода. В дополнение к метолу Add, создающему элемент коллекции PivotCaches, исполняется еще метод CreatePivotTable (Создать сводную таблицу), название которого говорит само за себя:
Обратите внимание, что в методе CreatePivotTable аргумент TableDestination принимает значение пустой строки - для Excel это является указанием создать сводную таблицу на новом рабочем листе. После создания нового рабочего листа и сводной таблицы задается ряд свойств:
Остальные операторы процедуры назначают областям сводной таблицы соответствующие поля данных.
Если сейчас вы попытаетесь выполнить макрос еще раз, то получите сообщение об ошибке, так как сводная таблица с тем именем, которое указано в аргументе TableName (Имя таблицы), уже создана. Чтобы сделать процедуру более гибкой, внесите в ее код изменения, показанные в листинге 19.2 (измененные и новые операторы выделены полужирным шрифтом). Листинг 19.2. Измененная процедура МояСводнаяТаблица
Теперь можно не беспокоиться об имени создаваемой сводной таблицы. Процедура будет выполняться столько раз, сколько необходимо. РезюмеВ этом часе вы познакомились со сводными таблицами, предназначенными для работы с большими массивами данных. Продолжая изучение языка VBA, мы сначала записали макрос, создающий сводные таблицы, а затем модифицировали его код. Вопросы и ответыВопрос. Будут ли сводные таблицы автоматически обновлять данные, если изменить информацию в исходной таблице данных? Ответ. Нет, для обновления сводной таблицы надо щелкнуть на кнопке Обновить данные панели Сводные таблицы или выполнить метод RefreshTable (Обновить таблицу). Вопрос. Можно ли применить метод Add к коллекции PivotTables для создания сводной таблицы и не использовать метод CreatePivotTable в связке с методом Add, применяемым к коллекции PivotCaches? Ответ. Да, можно. Сначала примените метод Add к коллекции PivotCaches, а затем полученный объект используйте как значение аргумента PivotCacheв методе Add, применяемом к коллекции PivotTables. ПрактикумС помощью тестов и упражнений вы проверите, насколько хорошо усвоили изложенный материал. Ответы на вопросы смотрите в Приложении. Тесты
УпражнениеВ таблицу данных, показанную на рис. 19.1, добавьте еще одно поле Изделия, где будут представлены изделия, составляющие категорию товара (рис. 19.7). Начните запись макроса, который на основе этой таблицы данных будет создавать сводную таблицу. При создании сводной таблицы руководствуйтесь рис. 19.8. Остановите запись макроса. Измените код макроса так, чтобы из рабочей книги были удалены все рабочие листы, кроме листа Данные, и сводной таблице задавалось имя Анализ_продаж.
Рис. 19.7. Расширенная таблица данных
Рис. 19.8. Сводная таблица Анализ_продаж |
[an error occurred while processing this directive] |