Бизнес-аналитика. Сводные таблицы. Часть 1

Учебное пособие

Валентин Юльевич Арьков

© Валентин Юльевич Арьков, 2020

ISBN 978-5-4498-1987-1

Создано в интеллектуальной издательской системе Ridero

Введение

Сводные таблицы (Pivot Tables) — это средство оперативного анализа данных с помощью статистических методов сводки и группировки. Обобщенные итоговые показатели подсчитываются автоматически в виде сумм, средних значений и т. п. Современные электронные таблицы позволяют создавать сводные таблицы в диалоговом режиме [1—3].

Сводные таблицы предоставляют конечному пользователю диалоговый интерфейс к многомерным OLAP-кубам — основному инструменту бизнес-аналитики. В качестве исходных данных можно использовать обычную таблицу Excel. Кроме того, сводные таблицы могут получать исходные данные для анализа, обращаясь к серверу базы данных с помощью SQL-запросов.

Задание. Прочитайте в Википедии статью «Сводная таблица» на русском и английском языках и выясните, как связаны сводные таблицы и OLAP.

Исходные данные, подготовленные для анализа, должны располагаться в одной «плоской» таблице по столбцам. При этом в первой строке должны находиться заголовки столбцов. Пример: первая колонка — дата, вторая колонка — время, третья колонка — сумма в чеке. Чтобы описание таблицы стало более реальным, нужно будет сделать зарисовку. А потом вставить её в отчёт. Как вставлять фотографии в отчёт, мы обсуждали в первой работе [4]. И использовали в последующих работах [5, 6]. Если нужно, всегда можно этот материал освежить в памяти. Далее в нашей работе мы будем все зарисовки вставлять в отчёт — даже если не сказано «и вставьте её в отчёт». Не забывайте это делать. Это наши действия по умолчанию.

Задание. Сделайте зарисовку описанного примера таблицы с исходными данными для анализа и вставьте в отчёт.

1. Цель и задачи работы

Целью работы является общее знакомство с технологиями анализа данных с помощью сводных таблиц. Мы познакомимся с этим инструментом в рамках программного пакета типа электронных таблиц. Однако все рассмотренные методы и технологии реализованы и в специализированных программных пакетах статистического анализа и бизнес-аналитики.

Для достижения поставленной цели мы решим следующие задачи.

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

2. Затем мы построим сводные таблицы с помощью стандартных средств Excel. Здесь мы используем только диалог и визуальное конструирование. То есть обойдёмся без программирования и даже без вызова функций электронных таблиц.

7. После этого мы познакомимся с иерархией, которую можно сворачивать и разворачивать. Примеры: «Город — Магазин» или «Категория — Товар». В каждом городе может быть несколько магазинов, а нас интересуют данные по каждому городу в целом. В следующий момент мы захотим увидеть более подробную картину и развернём таблицу до сведений по каждому магазину в отдельности. Так пользователь управляет степенью детализации своего отчёта.

3. Далее мы поработаем с шаблонами (макетами) сводных таблиц. Это готовые рекомендации, которые могут немного ускорить работу по созданию сводных таблиц.

4. Следующим шагом станет построение сводных графиков. По сути, это сводная таблица плюс график, построенный по данным этой таблицы.

5. Мы также рассмотрим выборку из сводной таблицы по различным параметрам. Для этого мы используем такие инструменты, как фильтры, срезы и шкалу времени (Timeline).

6. Кроме искусственно смоделированных случайных чисел, мы поработаем с реальными данными и посмотрим, что с ними можно сделать с помощью сводных таблиц.

Задание. Прочитайте в Википедии статью «Business Intelligence» на русском и английском языках и выясните, что является источником данных для систем бизнес-аналитики.

2. Отчёт

Отчёт по лабораторной работе оформляется в виде одной рабочей книги пакета Excel. То есть одним файлом *.XLSX. Технологию оформления отчёта мы подробно рассматривали в рамках первой лабораторной работы — см. первое учебное пособие данной серии [4].

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

Задание: Создайте новую рабочую книгу Excel и сохраните в файле с коротким информативным названием.

Каждый раздел отчёта размещаем на новом листе. Отчёт начинаем с титульного листа. На титульном листе нужно разместить следующую информацию: название министерства, университета, кафедры, вид документа, тему работы, номер варианта, номер группы, фамилии и инициалы студентов и преподавателя, название города, год.

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

Задание. Заполните титульный лист всей необходимой информацией.

Второй лист отчёта — оглавление документа. Все подробности создания оглавления — в первой работе [4]. Когда в отчёте больше 5—6 страниц, оглавление поможет легко ориентироваться в материале — и автору, и читателям. А в нашем отчёте может быть достаточно много страниц.

Задание. Создайте оглавление документа на втором листе отчёта.

3. Варианты заданий

Каждый студент работает по своему варианту задания. Номер варианта — последняя цифра номера зачётки. Если это цифра ноль — нужно взять вариант 10. Нулевой вариант мы будем использовать для демонстрации технологии выполнения работы.

Задание. Выберите свой вариант задания и укажите номер варианта на обложке отчёта.

В таблице 1 приводятся параметры заданий. Эти числа означают следующее.

Мы будем генерировать данные с нужным количеством товаров в каждой категории. Вариант задания указывает, сколько разных категорий товаров нужно сформировать. Например, в нулевом варианте мы сформируем 3 категории разных товаров по 2 товара в каждой категории. Всего получим 3*2=6 товаров.

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

Аналогично с городами и магазинами. В нулевом варианте мы сформируем списки из трёх городов по три магазина в каждом городе. Итого получим в общей сложности 3*3=9 магазинов.

Период — это продолжительность записи смоделированных данных — в годах. Начало моделирования — 1 января 2015 года. Окончание периода — 31 декабря. Соответственно, в нулевом варианте мы смоделируем данные за четыре года. То есть за период с 01.01.2015 по 31.12.2018. Мы будем моделировать только дату и не будем учитывать время.

В нашей «базе данных» будет 10000 строк (записей). Это будет 10000 покупок отдельных товаров разными покупателями. Мы выбираем не слишком большое и не слишком маленькое количество данных, чтобы познакомиться с работой системы. Это количество данных уже невозможно оперативно обрабатывать с приемлемой скоростью. С другой стороны, слишком большие объёмы данных не сможет обработать сам пакет Excel. Такой эксперимент мы проделаем чуть позже, чтобы увидеть явное замедление работы программы.

Кроме того, для упрощения будем считать, что в каждой покупке участвовал только один-единственный товар. Все эти «упрощения» нужны для того, чтобы познакомиться с ключевыми, главными шагами анализа. Более сложный, продвинутый вариант работы мы предлагаем магистрантам.

Задание. На новой странице отчёта опишите параметры своего задания.

4. Надстройка «Анализ данных»

При выполнении работы для имитационного моделирования используется генератор случайных чисел, который нам предлагает статистическая надстройка «Анализ данных». Чтобы активировать надстройку, необходимо вызвать в верхнем меню

File — Options.

В диалоговом окне Excel Options выбираем вкладку Add-ins. Затем в выпадающем списке Manage выбираем Excel Add-ins и нажимаем кнопку Go (рис. 4.1).

Рис. 4.1. Управление надстройками

В диалоговом окне Add-ins выбираем «Пакет анализа»: Analysis ToolPak (см. рис. 4.2). Нажимаем OK.

Рис. 4.2. Включение надстройки

Убедимся, что надстройка активирована. В верхнем меню выбираем Data и в разделе Analysis находим кнопку Data Analysis (рис. 4.3). Это и есть кнопка вызова нашей статистической надстройки.

Рис. 4.3. Надстройка в меню

Задание. Включите надстройку «Анализ данных» и убедитесь, что в разделе Analysis появилась кнопка вызова надстройки.

5. Имитационное моделирование

Мы смоделируем исходные данные для анализа с помощью генератора случайных чисел.

Исходными данными будет «учётная» база данных транзакций, то есть сделок. В нашей работе мы сформируем таблицу транзакций, в которой будут фиксироваться основные сведения о каждой покупке в каждом магазине нашей торговой сети. По каждой сделке будем учитывать дату, категорию и наименование товара, город и название магазина, цену, вес и общую стоимость товара.

Задание. Сделайте зарисовку таблицы транзакций в соответствии с описанием — оформите шапку таблицы и заполните произвольными данными пару строк.

Перечисленные сведения можно найти на любом кассовом чеке. Они хранятся в реляционной базе данных в виде нескольких таблиц, связанных по ключевым полям. В нашей работе мы создадим «игрушечную» базу данных с помощью электронной таблицы. Здесь тоже будут справочники и связи между таблицами.

Задание. Возьмите любой кассовый чек и сделайте зарисовку логической модели данных (структуры базы данных).

5.1. Даты

Приступим к созданию таблицы транзакций. Первая строка содержит заголовки столбцов. Первый столбец — Дата. Данные будут расположены по столбцам.

Напомним, что дата выглядит для пользователя как три целых числа: год, месяц и день. Но в электронной таблице дата хранится просто как порядковый номер дня. Причём день номер 1 — это вовсе не начало нашей эры. Поэтому нам предстоит выяснить порядковые номера дней, а затем сгенерировать случайные числа в нужном диапазоне.

Выясним, какая дата будет первым днём по версии создателей электронной таблицы. Введём число 1 в ячейку таблицы. Щёлкнем правой кнопкой по этой ячейке и вызовем контекстное меню. Установим формат вывода — дата (рис. 5.1):

Format Cells — Number — Category — Date — Locale — Russian.

Type — 14-мар-2012.

При этом в разделе Sample можно увидеть соответствующую дату «Дня Первого»:

1-янв-1900.

Рис. 5.1. «День Первый»

Нажимаем ОК и видим отображение даты в выбранном формате. При этом в строке формул выводится дата в американском стиле: месяц/день/год (рис. 5.2).

Рис. 5.2. Формат даты

Задание. Проверьте, какая дата соответствует числу 1.

Нам предстоит сгенерировать колонку целых чисел и превратить их в случайные даты в выбранном диапазоне. Вначале напомним, что в нулевом варианте мы работаем с данными за период с 01.01.2015 по 31.12.2018. Введём две указанные даты таким образом:

2015-1-1

2018-12-31

Excel распознал, что это даты и переключил формат отображения (рис. 5.3). При необходимости установите формат даты, принятый в нашей стране.

Рис. 5.3. Ввод даты

Выделим ячейки с датами в первом столбце и скопируем в буфер обмена:

Ctrl + C.

Выбираем ячейку B2 и вставляем данные из буфера/ Для этого нажимаем правую кнопку мыши и выбираем в контекстном меню:

Paste Options — Values.

В этом случае вставляются только значения (рис. 5.4).

Рис. 5.4. Вставка значений

Задание. Определите номера дней для начала и конца своего периода времени.

Можно поступить по-другому и использовать ссылки на ячейки. Введём во второй колонке ссылки на соседние ячейки, чтобы продемонстрировать номер соответствующего дня. Например, ячейка B2 ссылается на ячейку A2 (рис. 5.5). Копируем формулу в остальные ячейки второй колонки.

Выделяем второй столбец. Устанавливаем общий формат вывода на экран:

Format Cells — Number — Category — General.

После настройки формата вывода выясняем, что начало нашего периода — это день номер 42005, а окончание — 43465.

Рис. 5.5. Номер дня

Задание. Используйте ссылки на ячейки и выясните номера дней, соответствующие началу и концу моделирования.

Вызываем генератор случайных чисел с помощью надстройки:

Data — Analysis — Data Analysis — Random Number Generation.

Появляется диалоговое окно настройки генератора Random Number Generation (рис. 5.6).

Указываем число переменных, то есть количество столбцов случайных чисел. Нам пока что понадобится один столбец. Поэтому вводим число 1:

Number of Variables = 1.

Далее указываем заданное количество случайных чисел:

Number of Random Numbers = 10000.

Выбираем из выпадающего списка равномерное распределение:

Distribution — Uniform.

Указываем пределы изменения случайной величины — это номера первого и последнего дня нашего диапазона дат:

Parameters — Between 42005 and 43465.

Затем устанавливаем начальное состояние генератора случайных чисел. Этот параметр разработчики программы назвали Random Seed (Случайное рассеивание). Вводим любые четыре цифры:

Random Seed — 1234.

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

Выбираем начало диапазона для вывода случайных чисел:

Output options — Output Range.

Нажимаем ОК и получаем столбец чисел.

Рис. 5.6. Генератор случайных чисел

Задание. Сгенерируйте столбец случайных чисел в соответствии со своим вариантом задания.

Мы получили столбец случайных чисел. И эти числа дробные. Нам нужно их округлить, чтобы получить просто номера дней. Для этого используем функцию округления:

ROUND (number, num_digits).

Первый аргумент number — это ссылка на ячейку с числом, которое предстоит округлить.

Второй аргумент num_digits — это количество знаков после запятой. В нашей случае это ноль. Нам интересуют целые числа.

Вводим формулу в первую ячейку второго столбца и нажимаем Enter.

Заполняем весь столбец — двойным щелчком по маркеру автозаполнения (рис. 5.7). Столбец заполняется целыми числами.

Рис. 5.7. Округление чисел

Задание. Округлите случайные числа до целых значений.

Пришло время создать даты.

Выделяем столбец ячеек с целыми случайными числами. То есть с порядковыми номерами дней. Для этого щёлкаем по первой ячейке столбца, где имеется число. В нашем случае это ячейка С2. Нажимаем «секретную» комбинацию клавиш:

Ctrl + Shift + Down.

Некоторые пользователи пытаются нажать эти три клавиши одновременно. И это не всегда получается.

Гораздо проще поступить так. Нажимаем Ctrl и продолжаем держать эту клавишу нажатой. Нажимаем Shift и продолжаем держать эти две клавиши нажатыми. Щёлкаем по клавише Down (Стрелка вниз) и отпускаем всё, что было нажато. Мы выделили все ячейки столбца, которые были заполнены.

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

Итак, мы выделили диапазон ячеек. Копируем выделенный фрагмент в буфер. Затем вставляем в новый столбец из буфера КАК ЗНАЧЕНИЯ (см. пример выше). Получаем третий столбец — номера дней, из которых мы создадим даты (рис. 5.8).

Рис. 5.8. Вставка значений

Задание. Скопируйте округлённые значения и вставьте их в третий столбец.

Зачем нужны были эти «хитрые» манипуляции со вставкой значений? На самом деле мы просто хотим оставить нужные столбцы и удалить вспомогательные. А нужный столбец может зависеть от вспомогательного. Например, округлённые значения во втором столбце ссылаются на случайные числа в первом столбце. Если удалить первый столбец, то все вычисления пострадают.

Вот теперь мы возьмём и удалим первый столбец. Выделяем ВЕСЬ первый столбец. Для этого щёлкаем по заголовку столбца А правой кнопкой мыши (рис. 5.9). В контекстном меню выбираем пункт Delete.

Рис. 5.9. Удаление столбца

Столбец А действительно исчезает. Теперь можно увидеть последствия. Каждая ячейка в столбце с округлением через функцию ROUND сообщает, что ссылка не работает. Слово REFERENCE здесь означает «ссылка на другую ячейку». Итак, после удаления столбца наша формула ссылается на несуществующую ячейку. А вот столбец, куда мы вставили значения вместо формул, ни от кого не зависит. Удаляем «неправильный» столбец с формулами и неработающими ссылками.

Рис. 5.10. Неработающая ссылка

Задание. Удалите столбец случайных чисел. Обратите внимание на сообщения об ошибках. Удалите столбец с формулами.

У нас остался столбец дат. Пока что в виде порядковых номеров дней. Пора вывести на экран человеческие даты. Выделяем столбец (секретная комбинация клавиш описана выше) и зададим формат даты (рис. 5.11):

Format Cells — Number — Category — Date.

Привычный формат вывода даты на русском языке устанавливается в разделе:

Locale (location) — Russian

Type — 14-мар-2012.

Нажимаем ОК.

Рис. 5.11. Формат даты

Теперь даты стали видны невооружённым глазом. Наведём красоту и расставим даты в порядке возрастания. Выделяем диапазон дат и выбираем в верхнем меню:

Data — Sort & Filter — A-Z (Sort Oldest to Newest).

Это сортировка от A до Z. Или от А до Я. В порядке возрастания. От меньшего к большему.

Получаем даты по возрастанию, причём некоторые повторяются (рис. 5.12). Это значит, что наши магазины за один день посетили несколько клиентов, а не один. На самом деле, в реальной базе данных появляются сотни или даже тысячи записей каждый день. Но мы рассматриваем простой «игрушечный» пример, чтобы увидеть, как организована обработка данных.

Рис. 5.12. Сортировка по возрастанию

Задание. Отсортируйте даты по возрастанию.

5.2. Справочники

В базах данных многие сведения можно считать постоянными, неизменными — в течение некоторого времени. Это сведения о магазинах и о товарах. «Условно постоянные» сведения можно вынести в отдельную таблицу-справочник. А потом на неё только ссылаться. Так и получается связь между таблицами в базах данных.

Задание. Сделайте зарисовку справочника магазинов с полями «Город», «Название магазина», «Адрес магазина», «ФИО директора магазина», «Телефон магазина». Заполните три строки таблицы.

Базы данных, в которых данные хранят в таблицах, связанных между собой, называют РЕЛЯЦИОННЫМИ.

Это слово иностранного происхождения. Английское слово, написанное русскими буквами. Так обычно поступают программисты, ведь им «некогда» думать и искать подходящий перевод. Берут слово RELATIONAL и пишут РЕЛЯЦИОННЫЕ.

Задание. Прочитайте в Википедии статью «Реляционная модель данных» и выясните, на что в базе данных указывает слово RELATION, то есть что здесь означает слово «отношение», — ответ совсем неочевидный.

Создадим справочник магазинов в соответствии с нулевым вариантом. У нас будет три города, а в каждом городе по три магазина. Справочник разместим на новом листе рабочей книги Excel. Вкладку озаглавим «Маг». Названия на вкладках сделаем покороче. А вот заголовок на странице сделаем поподробнее и попонятнее: «Справочник магазинов».

Рис. 5.13. Магазины

Задание. Создайте справочник магазинов в соответствии с вариантом задания и заполните его.

Первое поле таблицы мы назвали ИД_магазина. Это идентификатор. Целое число, по которому мы будем различать магазины между собой. Слово ИДЕНТИФИКАТОР тоже очень иностранное. Означает оно «признак, по которому можно что-то или кого-то идентифицировать». В нашем случае это число, по которому можно определить, о каком магазине идёт речь. Все наши числа-идентификаторы в справочнике должны быть разными, иначе начнётся путаница.

Слово ИДЕНТИФИКАТОР часто сокращают до двух букв: ИД или ID. Однако это не просто сокращение. Здесь скрывается игра слов — любимое занятие программистов. Дело в том, что в английском языке сокращение ID имеет особый смысл. ID может означать Identity Document. То есть документ, удостоверяющий личность. По которому можно установить личность человека. То есть идентифицировать человека. Например, за границей могут попросить «предъявить ID».

Задание. Прочитайте в английской версии Википедии статью Identity document. Выясните, что можно использовать в качестве ID.

Наконец-то мы заполнили справочник и разобрались, что такое ИД. Но пока что перед нами только ячейки на листе. Сделаем из этого отдельный объект — «Таблицу Excel», к которой можно будет обращаться по названию. Выделяем всю таблицу на листе, включая заголовки столбцов. Выбираем в верхнем меню вставку таблицы (рис. 5.14):

Insert — Tables —Table.

Рис. 5.14. Вставка таблицы

Появляется диалоговое окно Create Table (рис. 5.15). Убеждаемся, что указанный диапазон адресов соответствует нашему выбору. Мы делаем таблицу с заголовками, и они у нас уже есть. Поэтому выбираем пункт:

My table has headers.

Нажимаем ОК.

Рис. 5.15. Выбор данных для таблицы

Оформление таблицы изменилось (рис. 5.16). Теперь наш справочник превратился в самостоятельный объект. Этот набор ячеек представляет собой единое целое. Дело здесь не только в оформлении. И мы в этом скоро убедимся.

Рис. 5.16. Оформление таблицы

Задание. Преобразуйте справочник магазинов в таблицу.

Рядом с каждым заголовком столбца появилась серая кнопочка с символом стрелки вниз (рис. 5.17). Нажимаем эту кнопочку и обнаруживаем выпадающее меню. Здесь есть возможность выбора города и варианта сортировки. Сортировка данных в одном столбце изменяет всю таблицу. С этими функциями нам предстоит познакомиться и поиграть.

Рис. 5.17. Выпадающее меню

Задание. Проведите сортировку по названию города.

Задание. Снимите выбор одного из городов.

Задание. Выберите все города через пункт Select All.

Задание. Отсортируйте таблицу по идентификатору магазина.

В дальнейшей работе мы будем обращаться к нашему справочнику по его названию. Или, как говорят программисты, «по имени». Назначим нашему объекту короткое, понятное название.

Щёлкнем по любой ячейке таблицы. Выбираем в верхнем меню пункт Table Tools — Design. Этот раздел появляется только при работе с таблицами. Если щёлкнуть по любой ячейке вне объекта «Таблица», из меню исчезает раздел Table Tools и соответствующий пункт Design.

В разделе Properties имеется возможность назначить выбранной таблице имя: Table Name. Вводим название справочника: Магазины (рис. 5.18).

Рис. 5.18. Имя таблицы

Задание. Задайте имя справочника магазинов.

Переходим к созданию второго справочника. Нам понадобятся сведения о товарах. Создаём новый лист. Указываем на закладке короткое название «Тов».

Заполняем справочник в соответствии с вариантом задания. В нулевом варианте нам потребуется три категории по два товара каждого вида. Пусть это будут овощи, фрукты и крупы. Заполним справочник реалистичными названиями и ценами (рис. 5.19).

Рис. 5.19. Товары

Задание. Создайте и заполните справочник товаров в соответствии с вариантом задания.

Теперь определим нашу таблицу как «Таблицу с большой буквы». Сделаем это другим способом. Не так, как мы поступили с предыдущей таблицей. Выделяем таблицу с заголовками столбцов. В верхнем меню выбираем следующий пункт (рис. 5.20):

Home — Styles — Format as Table.

Рис. 5.20. Форматирование таблицы

После выбора варианта оформления появляется знакомое меню. Теперь под названием Format As Table (рис. 5.21). Убеждаемся, что диапазон ячеек указан правильно. Выбираем пункт My data has headers. Нажимаем кнопку ОК.

Рис. 5.21. Параметры таблицы

Задание. Проведите форматирование таблицы товаров.

Назначим нашему справочнику соответствующее название (рис. 5.22).

Рис. 5.22. Имя таблицы

Задание. Укажите имя таблицы товаров.

5.3. Транзакции

Наши исходные данные по покупкам товаров связаны с понятием ТРАНЗАКЦИИ. В экономике это слово означает сделку купли-продажи.

Задание. Прочитайте в английской версии Википедии первый абзац статьи «Financial transaction». Выясните, что входит в понятие транзакции в экономике.

В базах данных транзакция — это «пакет» операций с данными, причём транзакция либо выполняется полностью, либо не выполняется вообще.

Задание. Прочитайте в Википедии первый абзац статьи «Транзакция (информатика)». Выясните, как использование транзакций связано с обеспечением целостности данных.

Слово ТРАНЗАКЦИЯ имеет свою историю. Нетрудно понять, что экономика вообще и торговля в частности существуют гораздо дольше, чем современные компьютеры. Поэтому некоторые компьютерные термины пришли из экономики — названия были взяты по аналогии. Это гораздо проще, чем придумывать совершенно новые слова.

Задание. Прочитайте статью «транзакция» в ВикиСловаре по адресу https://ru.wiktionary.org. Выясните значение и происхождение слова ТРАНЗАКЦИЯ.

Транзакции в экономике и транзакции в базах данных связаны не только историей происхождения термина. Есть более интересная взаимосвязь. Чтобы в этом вопросе разобраться, выполним следующее упражнение.

Задание. Прочитайте в английской версии Википедии первый абзац статьи «Online transaction processing». Выясните, как связаны между собой два типа транзакций — транзакции в экономике и транзакции в базах данных.

Учётная база данных в бизнес-аналитике называется OLTP — OnLine Transaction Processing. Перевод названия: обработка транзакций в реальном времени или оперативная обработка транзакций. По сути, в такой базе данных просто учитываются, фиксируются определённые события, ведутся текущие записи. Это требует особого подхода к построению системы. Результатом являются определённые плюсы и минусы. С этими моментами нам нужно ознакомиться.

Задание. Прочитайте в Википедии статью «OLTP». Выясните, для каких задач предназначены системы OLTP и какие запросы являются слишком сложными для OLTP.

Возвращаемся к первой таблице, в которой мы заполнили столбец дат. Это и будет наша «таблица транзакций». Некое подобие учётной базы данных.

Назовём вкладку «Транз». А над таблицей дадим полное название. Чтобы освободить место для заголовка таблицы, вставим строки. Щёлкаем правой кнопкой по заголовку первой строки (рис. 5.23). Выбираем в контекстном меню пункт Insert.

Рис. 5.23. Вставка строки

Задание. Вставьте две пустые строки и введите заголовок страницы.

Создадим в нашей таблице следующие столбцы:

ИД магазина

Название магазина

Город

ИД товара

Название товара

Колич товара кг

Цена товара руб/кг

Стоим товара руб

Для начала просто оформим заголовки указанных столбцов.

Задание. Создайте перечисленные столбцы.

Наша таблица занимает определённый диапазон ячеек. Но об этом знаем только мы. Для программы это просто диапазон ячеек. Оформим нашу таблицу как объект типа «Таблица Excel». Выделим первый столбец, нажав знакомую комбинацию клавиш:

Ctrl + Shift + Down.

Столбец выделен. Теперь нажимаем комбинацию

Ctrl + Shift + Right.

Теперь у нас выделена вся таблица — включая пока ещё не заполненные столбцы. У этих столбцов пока есть только заголовки.

Задание. Выделите столбец количества товара в таблице транзакций и обратите внимание на показатели в строке состояния.

Форматируем таблицу. Указываем название: «Транзакции» (рис. 5.24).

Рис. 5.24. Форматирование таблицы транзакций

Задание. Проведите форматирование таблицы транзакций и дайте ей название.

Мы создали три таблицы и дали им осмысленные названия. Список объектов Excel и их названия можно вывести на экран. Выбираем в верхнем меню следующий пункт (рис. 5.25):

Formulas — Defined Names — Name Manager.

В колонке Name указано присвоенное нами название таблицы. В колонке Value можно видеть первые несколько значений. В колонке Refers To даются ссылки на диапазон ячеек каждой таблицы, а также имя закладки (рабочего листа).

Рис. 5.25. Имена объектов

Задание. Выведите список объектов и убедитесь, что в нём присутствуют имена всех трёх таблиц.

Сгенерируем ИД магазинов. В нулевом варианте это должны быть целые числа от 1 до 9. Чтобы получить случайные числа, придётся вызвать генератор случайных чисел, а потом ещё и округлить полученные значения. Поэтому слева от стобца «ИД магазина» добавим два новых вспомогательных столбца: «Сл числа» и «Округл».

Вызываем генератор случайных чисел (рис. 5.26). Указываем диапазон случайных чисел от 1 до 9. И не забываем ввести новое начальное состояние генератора Random Seed. Выходной диапазон — второй столбец таблицы.

Рис. 5.26. Настройки генератора

Задание. Сгенерируйте случайные числа для идентификатора магазина.

Форматирование таблицы облегчает нам дальнейшее её заполнение. Если ввести формулу в одну ячейку такой таблицы, то автоматически будет заполнен весь столбец. Поэтому такой объект иногда даже называют «умной таблицей».

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

=ROUND ([@ [Сл числа]],0).

Теперь в качестве аргумента вместо ссылки на конкретную ячейку указано имя столбца.

Нажимаем Enter — и весь столбец заполняется автоматически.

Выделяем столбец, копируем в буфер и вставляем в колонку ИД магазина КАК ЗНАЧЕНИЯ (рис. 5.27). В строке формул можно видеть значения, а не формулы с округлением.

Рис. 5.27. Вставка значений

Задание. Заполните столбец ИД магазина и убедитесь, что были вставлены значения, а не формулы.

Теперь можно безбоязненно удалить два вспомогательных столбца. Они нам больше не понадобятся. Выделяем два заголовка столбцов рабочего листа Excel и выбираем Delete в контекстном меню. Столбец «ИД магазина» не пострадал, потому что здесь только числа и нет ссылок на другие ячейки (рис. 5.28).

Рис. 5.28. Вид таблицы после удаления вспомогательных столбцов

Задание. Удалите вспомогательные столбцы и убедитесь, что после этого важные данные не пострадали.

Мы сгенерировали столбец идентификаторов «ИД магазина» как целые случайные числа. А ещё у нас уже есть справочник, чтобы найти по этому идентификатору сведения о каждом магазине. Нам нужно связать две таблицы, чтобы вставить данные о магазине в основную таблицу транзакций. Для этого будем использовать функцию подстановки значений VLOOKUP. Русский вариант названия ВПР.

Название функции — это сокращение от VERTICAL LOOKUP. Английское слово LOOKUP означает «поиск информации в справочнике». Получается, что это «вертикальный поиск» или «поиск по вертикали». То есть поиск производится внутри столбца. Русское название ВПР скорее всего означает «вертикальный поиск решения», хотя на странице фирменного описания функции об этом скромно умолчали.

Щёлкаем по ячейке С4 и начинаем вводить формулу. Пишем =vl. При этом Excel предлагает нам список функций, название которых начинается на эти буквы (рис. 5.29). В нашем случае это всего один вариант VLOOKUP. Справа от названия функции выводится её краткое описание.

Рис. 5.29. Ввод функции

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

Рис. 5.30. Аргументы функции

Задание. Введите название функции VLOOKUP или ВПР, перейдите по ссылке и прочитайте описание.

Упрощённый формат вызова функции:

VLOOKUP (lookup_value, table_array, col_index_num).

Первый аргумент lookup_value — это искомое значение. Мы будем искать идентификатор магазина. Поэтому выбираем соседнюю ячейку в колонке «ИД магазина» (рис. 5.31).

Рис. 5.31. Первый аргумент — искомое значение

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

В строке формул ставим запятую. Это разделитель аргументов в английской версии Excel. В русском варианте программы аргументы разделяет другой символ — точка с запятой.

Наш справочник магазинов находится на другом листе рабочей книги. Зато у него есть своё название. Переходим на вкладку со справочником магазинов «Маг». Выделяем всю таблицу. В строке формул в качестве второго аргумента появляется название таблицы (рис. 5.32).

Рис. 5.32. Второй аргумент — справочник

Третий аргумент col_index_num — номер столбца, из которого нужно взять данные для подстановки. В нашем случае название магазина находится во втором столбце. Нажимаем запятую и пишем 2 (рис. 5.33).

Рис. 5.33. Третий аргумент — номер столбца

Вот мы и сформировали вызов функции поиска и подстановки. Закрываем круглую скобку и нажимаем клавишу Enter. Мы вернулись на страницу с таблицей транзакций. Таблица автоматически заполнила всю колонку названиями магазинов. В формуле используются названия столбца и справочника, а не адреса конкретной ячейки и диапазона ячеек (рис. 5.34). Это довольно удобно.

Рис. 5.34. Подстановка из справочника

Задание. Сформируйте вызов функции VLOOKUP и заполните колонку названий магазинов в таблице транзакций.

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

Щёлкаем по ячейке в колонке «Город» и нажимаем кнопку вызова Мастера функций Insert Function слева от строки формул (рис.5.35).

Рис. 5.35. Вставка функции

Появляется диалоговое окно Insert Function.

Для начала попробуем найти функцию по названию. Вводим название LOOKUP в строке поиска Search for a function (рис. 5.36). Выясняется, что у нас есть большой выбор. Целых четыре функции для поиска чего-нибудь разными способами. В том числе и горизонтальный поиск, то есть поиск в строке.

Рис. 5.36. Поиск функции по названию

Задание. Вызовите Мастера функций и ознакомьтесь с функциями поиска значений.

Теперь представим себе, что мы не помним название функции, а только очень смутно представляем её предназначение. Открываем выпадающий список Or select a category. Выбираем в выпадающем списке раздел Lookup & Reference (рис. 5.37). Листаем полученный список функций в этой категории и находим VLOOKUP. Щёлкаем по названию функции и читаем краткое описание в нижней части окна. Это она — та самая функция, которую мы так долго искали.

Здесь же нам предлагают получить справку — подробное описание функции. Нажимаем ссылку Help on this function в нижней части окна. В браузере открывается страничка службы поддержки. Здесь есть что почитать и есть что посмотреть.

Рис. 5.37. Выбор функции

Задание. Найдите функцию VLOOKUP в списке функций, вызовите справку и просмотрите видеоролик, демонстрирующий работу с данной функцией.

Мы ознакомились с описанием функции и нас оно устраивает. Нажимаем ОК. Появляется диалоговое окно выбора аргументов функции Function Arguments (рис. 5.38). Курсор уже указывает на первый аргумент и предлагает нам его указать. Щёлкаем по ячейке в колонке «ИД магазина». В окне выбора аргументов и в строке формул появляется ссылка на выбранный столбец.

Рис. 5.38. Выбор первого аргумента функции

Переходим к выбору второго аргумента. Щёлкаем по строке Table_array, переходим на вкладку со справочником магазинов и выделяем всю таблицу. Мастер функций указывает в качестве второго аргумента название таблицы «Магазины» (рис. 5.39).

Рис. 5.39. Выбор второго аргумента

Третий аргумент вводим вручную. Щёлкаем по третьей строчке Мастера функций Col_index_num. Названия городов у нас находятся в третьем столбце справочника магазинов. Вводим число 3 (рис. 5.40).

Кстати, при выборе аргумента внизу окна Мастера функций выводится краткая справка для каждого аргумента.

Рис. 5.40. Ввод третьего аргумента

Мы выбрали минимальный набор аргументов. Нажимаем ОК. Столбец названий городов заполнен (рис. 5.41). В строке формул видим наш вызов функции с указанием названий столбца и справочника. Смотрим на таблицу транзакций. Мы действительно выбрали города для вставки. Пока всё работает правильно.

Рис. 5.41. Названия городов

Задание. Вызовите функцию VLOOKUP с помощью Мастера функций и заполните столбец названий городов.

Точно таким же способом мы сгенерируем случайные целые числа для колонки «ИД товара». Вставляем пару вспомогательных столбцов после колонки «Город». Смотрим справочник товаров — их в нулевом варианте шесть штук. Вызываем генератор из надстройки «Анализ данных». Указываем диапазон от 1 до 6. Не забываем установить новое начальное состояние — чтобы оно было не такое же, как в предыдущем вызове генератора. Округляем, копируем, вставляем как значения. Удаляем вспомогательные столбцы. Получаем заполненную колонку «ИД товара» (рис. 5.42). Убеждаемся, что здесь в ячейках таблицы появились числа, а не ссылки.

Рис. 5.42. Заполняем колонку «ИД товара»

Задание. Заполните колонку «ИД товара» случайными целыми числами.

Теперь заполняем колонки «Название товара» и «Цена товара руб/кг». Снова обращаемся к функции VLOOKUP и используем справочник товаров. Смотрим на справочник товаров и обнаруживаем, что мы оставили за кадром категорию товара. Вставляем столбец вида товара в таблицу транзакций. Теперь все сведения на месте (рис. 5.43).

Рис. 5.43. Сведения из справочника товаров

Задание. Заполните таблицу транзакций сведениями из справочника товаров.

Далее сгенерируем количество товара в килограммах. Пусть это будут случайные числа от 200 г до 5,5 кг. И пусть весы работают с точностью до 1 грамма. Такое уже встречается в наших магазинах. Стало быть, округлять будем до 3 знаков после запятой. Создаём пару вспомогательных столбцов. Генерируем случайные числа с НОВЫМ начальным состоянием, округляем, копируем и вставляем как значения. Удаляем вспомогательные столбцы. Устанавливаем формат вывода — число, 3 знака после запятой:

Format Cells — Number — Category — Number — Decimal places — 3.

Количество товара заполнено, осталось посчитать стоимость.

Умножаем цену на количество (рис. 5.44).

Таблица транзакций почти готова.

Рис. 5.44. Количество и стоимость товара

Задание. Сгенерируйте количество товара и вычислите его стоимость.

В некоторых колонках ещё остались формулы. Постоянный пересчёт формул может замедлять работу программы. Поэтому выделим всю таблицу Ctrl+Shift+End и вставим её как значения. Убеждаемся, что вместо формул у нас в таблице транзакций остались только значения (рис. 5.45).

Рис. 5.45. Вставка значений

Задание. Вставьте таблицу транзакций как значения и убедитесь, что формул в таблице не осталось.

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

В нижней части окна Excel находится так называемая строка состояния (рис. 5.46). После выделения столбца чисел нам сразу же подсчитали следующие показатели:

— Average — Среднее значение;

— Count — Количество заполненных (непустых) ячеек;

— Sum — Сумма значений.

Рис. 5.46. Итоговые показатели в строке состояния

Задание. Выделите столбец количества товара в таблице транзакций и обратите внимание на показатели в строке состояния.

Нужные показатели в строке состояния можно выбрать из довольно большого списка Customize Status Bar. Для этого щёлкнем по строке состояния правой кнопкой мыши. В длинном списке имеется раздел сводных показателей (рис. 5.47). Для уже упомянутых трёх показателей здесь даны их числовые значения. Кроме того, здесь есть

— Numerical Count — Количество ячеек с числовыми значениями;

— Minimum — Минимальное значение;

— Maximum — Максимальное значение.

Рис. 5.47. Настройка строки состояния

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

6. Создание сводной таблицы

Сводные таблицы (английское название Pivot Tables) — это инструмент электронных таблиц для сводки и группировки данных. В сводной таблице выводятся обобщенные показатели. Такая таблица гораздо меньше, чем исходная. Это всего лишь десятки или сотни строк, а не миллионы или миллиарды — как в учётной базе данных.

Имеется более десяти способов обобщения (агрегирования) данных. Это, прежде всего, сумма. Наверное, самый частый вопрос звучит так: «Сколько всего…?» Сколько всего рублей составила наша выручка за 2018 год? Сколько всего килограммов овощей продано за февраль 2017 года?

Можно считать, что сводная таблица — это экранное представление многомерного OLAP-куба. Название OLAP — OnLine Analytical Processing можно перевести как «оперативный анализ данных» или «интерактивная аналитическая обработка».

Задание. Прочитайте в Википедии статью «OLAP». Выясните, почему технологию OLAP используют для анализа данных.

Можно сказать, что сводная таблица — это интерфейс к многомерному кубу, который хранится на сервере. Такой сервер называют ХРАНИЛИЩЕ ДАННЫХ. Английское название — Data Warehouse. Это особый вид базы данных, в которой хранятся только обработанные, обобщённые, агрегированные данные в форме многомерных таблиц (кубов) OLAP. Ещё там могут хранить данные, загруженные и подготовленные для многомерного анализа. Сводная таблица может обращаться к такому серверу с помощью SQL-запросов и получать из хранилища готовые OLAP-кубы.

Задание. Прочитайте в Википедии начало статьи «Хранилище данных» и выясните предназначение хранилища данных.

6.1. Первая сводная таблица

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

Создадим новый рабочий лист. Озаглавим вкладку «Сводка». Сделаем заголовок «Сводная таблица».

Вначале выбираем ячейку, которая станет левым верхним углом сводной таблицы.

В верхнем меню выбираем следующий пункт:

Insert — Tables — Pivot Table (рис. 6.1).

Рис. 6.1. Вставка сводной таблицы

Появляется диалоговое окно Create PivotTable. Далее нам нужно выбрать источник данных — таблицу транзакций:

Choose the data that you want to analyze — Select a table or range — Table/Range.

Переходим на вкладку «Транз» и выделяем всю таблицу. Появляется ссылка на таблицу, а не на диапазон адресов (рис. 6.2).

Рис. 6.2. Выбор таблицы транзакций

Следующий шаг — указать расположение сводной таблицы:

Choose where you want the PivotTable report to be placed — Existing Worksheet — Location.

По умолчанию это ячейка, на которую мы указали перед началом вставки сводной таблицы.

Нажимаем ОК.

Появляется макет будущей сводной таблицы — начиная с указанной ячейки. Кроме того, в правой части окна выводится меню настройки полей сводной таблицы PivotTable Fields (рис. 6.3).

В верхней части этого меню имеется список полей таблицы транзакций:

Choose fields to add to report.

Ниже можно обнаружить четыре области для размещения полей при настройке сводной таблицы:

Drag fields between areas below.

Настройка сводной таблицы делается в основном путём перетаскивания полей из списка в эти четыре области.

Рис. 6.3. Настройка сводной таблицы

Задание. Вставьте сводную таблицу и ознакомьтесь с меню настройки полей сводной таблицы.

Начинаем настраивать сводную таблицу. Делается это визуально — перетаскиванием полей в четыре раздела меню. При настройке сводной таблицы можно будет сразу видеть все изменения на экране.

Перетаскиваем поле «Город» в раздел Columns. Теперь города — это заголовки столбцов (рис. 6.4).

Рис. 6.4. Города по столбцам

Далее перетаскиваем поле «Категория товара» в раздел Rows. В сводной таблице появились соответствующие заголовки строк (рис. 6.5). Пока что у нас есть только заголовки, а никаких показателей не появилось.

Рис. 6.5. Категории товаров по строкам

Наконец, перетаскиваем поле «Колич товара кг» в раздел Values. Теперь во всех ячейках сводной таблицы подсчитаны значения суммы — общего количества каждого вида товара по каждому городу за все годы. В общем заголовке сводной таблицы указано, что здесь находятся суммы значений поля «Количество товара кг»:

Sum of Колич товара кг.

Сумма — это самый простой и самый популярный метод сводки. Поэтому в заголовке раздела Values изображён значок суммы — заглавная греческая буква сигма (рис. 6.6).

Рис. 6.6. Сумма значений

Задание. Настройте поля сводной таблицы.

6.2. Измерения и меры

Мы построили первую сводную таблицу. Можно сказать, что это плоское изображение многомерного OLAP куба. Здесь имеется два измерения и одна мера.

ИЗМЕРЕНИЕ — это поле, по которому сгруппированы данные. В нашем примере измерения — это «Город» и «Категория товара». Ещё можно сравнить измерение с одной из осей координат на графике. Только в нашей сводной таблице по каждой оси будут не числовые значения, а текстовые метки. Сколько осей — столько измерений.

Английское название измерения — DIMENSION. К примеру, еслиразговор идёт про объёмное изображение на экране кинотеатра, то его называют трёхмерным или 3D. То есть 3-dimensional. Здесь с точки зрения посетителя кинозала ощущаются три оси координат: ширина, высота и глубина.

МЕРА — это значения, которые мы подсчитываем и записываем в каждую клетку сводной таблицы. В нашем примере это сумма по полю «Количество товара в килограммах». Это обобщённые итоговые показатели. Можно сказать, что меры — это значения каких-то функций в каждой «точке» многоиерного пространства с определёнными координатами по осям.

Английское название меры — MEASURE. В разных случаях их могут называть и другими словами, например, индикаторы, метрики и т. п. Всё зависит от фантазии, грамотности и образования «специалиста».

Измерения придают смысл нашим мерам. Возьмём первую ячейку сводной таблицы на рис. 6.6. Что такое 3147,367 кг? Это суммарный вес всех видов крупы, проданных за всё время наблюдения в наших магазинах в городе Владивосток. Каждое число в таблице — это суммарный вес проданных товаров. Но только зная измерения, можно понять смысл каждого числа.

Задание. Выберите три любых ячейки в своей сводной таблице и опишите в отчёте, что эти числа нам сообщают. Каждая фраза должна звучать, как законченное осмысленное предложение.

Сводные таблицы — как и OLAP-кубы — могут иметь много измерений и мер. Однако, если пытаться вывести на экран всё и одновременно, таблица становится громоздкой и плохо воспринимается. Слишком мало информации — тоже не очень оптимально. Поэкспериментируем с количеством измерений и мер.

Задание. Сделайте зарисовки следующих вариантов сводных таблиц:

— одна мера и ни одного измерения;

— одна мера и одно измерение;

— две меры и одно измерение;

— две меры и два измерения;

— две меры и три измерения.

Задание. Создайте описанные выше варианты сводных таблиц — каждый на новом листе. Укажите варианты, которые легко воспринимаются глазом.

6.3. Агрегирование данных

По умолчанию при формировании сводной таблицы вычисляется СУММА значений поля, которое мы перетащили в раздел Values. Здесь это условно называли словом «Значения» в настройках сводной таблицы. Напомним, что специалисты по OLAP это обычно называют «мерой». По-английски — MEASURE.

Меры, то есть обобщенные показатели, то есть результаты сводки и группировки данных, могут вычисляться разными способами. Вычисление мер (показателей) в технологиях OLAP называют АГРЕГИРОВАНИЕМ. Это слово происходит от латинского aggregare — «присоединять».

Агрегирование (агрегация) — это объединение множества данных и получение обобщённых показателей. Результат агрегирования называют АГРЕГАТАМИ. По существу, это статистические показатели. Сама идея вычисления показателей сформировалась задолго до появления программных средств бизнес-аналитики.

Слово ПОКАЗАТЕЛЬ означает «обобщённая характеристика случайного явления». Показатели используют для принятия решений, то есть для управления предприятием. И руководителю предприятия нужно понять, как идут дела. То есть в каком состоянии находится компания. А буквально слово ПОКАЗАТЕЛЬ означает «число, которое ПОКАЗЫВАЕТ, как идут дела».

Точно такое же значение у соответствующего английского названия INDICATOR. Слово ИНДИКАТОР толковый словарь определяет следующим образом:

INDICATOR: one that indicates.

В переводе это звучит так:

ПОКАЗАТЕЛЬ — это то, что показывает.

В качестве показателей часто используют суммы или средние значения. В статистике было разработано больше десяти способов вычисления среднего — в зависимости от ситуации. Конечно, авторы программы об этом даже не догадывались. Зачем программисту изучать статистику?

Задание. Изучите главу «Статистические показатели» в учебнике по статистике [7] и выясните следующее:

— для чего используют средние показатели;

— какие виды средних величин существуют;

— почему используют не один показатель, а систему статистических показателей.

Инструмент бизнес-аналитики под названием СВОДНЫЕ ТАБЛИЦЫ использует методы статистической сводки и группировки данных. И здесь тоже ничего особенно нового не появилось. Конечно, есть мелкие подробности насчёт того, какие числа можно складывать, а какие нельзя. Например, килограммы можно складывать с килограммами, и получится общее количество фруктов. А вот номера магазинов лучше не складывать друг с другом — просто нет никакого смысла.

Тема сводки и группировки данных у нас уже рассматривалась в предыдущей работе [4]. Сейчас пришло время немного освежить материал в памяти. А может и узнать что-то новое. Причём с новым пониманием.

Задание. Изучите главу «Статистическая сводка и группировка» в учебнике [7] и выясните следующее:

— что такое сводка и группировка;

— какие виды группировок различают в зависимости от цели исследования;

— что такое ряды распределения.

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

Обратим внимание на раздел ∑ Values (Значения) в окне настройки Pivot Table Fields (Поля сводной таблицы). Мы перетащили сюда поле «Количество товара кг». Нажимаем кнопку с треугольным значком (стрелкой вниз) справа от названия поля, чтобы вызвать выпадающее меню (рис. 6.7). Выбираем пункт Value Field Settings (Настройки поля значений). Кстати, здесь используется слово ЗНАЧЕНИЯ. Видимо, разработчики решили не пугать конечного пользователя словами МЕРА и ИЗМЕРЕНИЕ.

Рис. 6.7. Настройка меры

На экран выводится диалоговое окно Value Field Settings (рис. 6.8). Посмотрим, что здесь есть интересного.

Source Name — это название поля, которое мы сюда перетащили. По этим значениям и производится расчёт показателей. В нашем примере это поле называется «Колич товара кг».

Custom Name — это название для нашего показателя. По умолчанию здесь написано, каким способом вычисляется мера. В английской версии это звучит так:

Sum of Колич товара кг.

То есть это сумма всех значений по полю под названием «Колич товара кг».

Если это сумма, то вроде бы и так понятно. А если это будет среднее значение по тому же самому полю?

Напишем так:

Всего кг.

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

Каждый раз нужно посмотреть на своё произведение глазами читателя, который про нашу работу ничего знает. Будет ли такому читателю понятно или нет? Или не всё и не очень понятно?

Рис. 6.8. Настройка раздела «Значения»

Задание. Установите короткое и понятное название для сводного показателя.

Оформим нашу таблицу, чтобы всё стало совсем понятно. Что нас интересует?

Общий заголовок «Сводная таблица» мало что сообщает читателю.

Остальные названия ещё лучше:

— Column Labels;

— Row Labels;

— Grand Total.

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

Обычно в таких случаях говорят: «Всего» или «Итого». А знаете ли вы, в чём разница между всего и итого? Если нет, пора позвать на помощь Яндекса или Гугла. Пусть поищут. Не мы первые такой вопрос задаём.

Задание. Выясните, в чём разница между ВСЕГО и ИТОГО.

Итак, заголовки. Мы как авторы знаем, где что лежит. А для читателя это сказать открытым текстом, без намёков и действий по умолчанию. Совсем не факт, что он «сам догадается».

Так что лучше прямо и честно сказать, где у нас города и где у нас товары (рис.6.9).

Рис. 6.9. Оформление таблицы

Задание. Сделайте короткие и понятные заголовки для своей таблицы.

Далее в том же диалоговом окне мы видим закладку

Summarize Values By

Вычислять итоги с помощью.

Под ней имеется раздел

Summarize value field by.

Здесь мы можем выбрать метод вычисления итоговых показателей. Обобщённых показателей. То есть способы агрегирования. То есть меры.

Перед нами более десятка вариантов:

— Sum (Сумма числовых значений);

— Count (Количество заполненных ячеек);

— Average (Среднее значение);

— Max (Максимальное значение);

— Min (Минимальное значение);

— Product (Произведение значений);

— Count numbers (Количество ячеек, в которых записаны числа);

— StdDev (Выборочное стандартное отклонение);

— StdDevp (Генеральное стандартное отклонение);

— Var (Выборочная дисперсия);

— Varp (Генеральная дисперсия).

Задание. Рассмотрите список способов вычисления итогов и сравните с учебником по теории статистики. Выясните, какие статистические показатели не включили сюда разработчики.

В списке показателей третьим пунктом идёт «Среднее значение». Скорее всего, это то, что в статистике называется «средняя арифметическая простая». Вряд ли программисты знают остальные ДЕСЯТЬ способов расчёта среднего. Здесь всё по-простому. По рабоче-крестьянски. Мы, как говорится, «академиев не кончали».

Познакомимся со средним значением. Сделаем новую сводную таблицу. Пусть теперь она вычисляет среднее. Ну и, конечно, оформим её как следует.

Чтобы облегчить свою задачу, просто скопируем весь лист и поместим его в конец списка. Нажимаем правой кнопкой мыши на вкладку рабочего листа (внизу окна Excel) и выбираем в контекстном меню Move or Copy. Затем Move to End и Create a Copy.

Щёлкаем по сводной таблице, чтобы вызвать меню настройки. Выбираем

Pivot Table Fields — Values — Value Field Settings — Summarize value field by — Average — OK.

Переименуем заголовок.

Теперь формат вывода. Числа длинные. Супер-точные. Нам достаточно два знака после запятой. Щёлкаем по любой ячейке внутри сводной таблицы, нажимаем правую кнопку мыши и обнаруживаем, что вместо пункта Format Cells у нас теперь появился знакомый пункт Value Field Settings. Нажимаем кнопку Number Format.

Наконец-то мы добрались до Format Cells. Устанавливаем числовой формат и два знака после запятой (рис. 6.10). Нажимаем ОК. Теперь выбранный формат применится не только к выбранной ячейке, но и ко всем ячейкам с нашим итоговым показателем.

Рис. 6.10. Средние значения

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

На вкладках тоже пусть будет написано что-то осмысленное. Потом, в конце работы всё переименуем в числа — для оглавления.

Рис. 6.11. Средние значения

Задание. Сделайте сводную таблицу с расчётом среднего.

Мы рассмотрели подсчёт итогов по количеству товара в килограммах. Теперь поиграем с рублями. Сделаем новые сводные таблицы. Пусть теперь у нас программа подведёт итоги по стоимости товара в рублях. Пусть это будут итоги в виде суммы и в виде среднего. Пока сделаем это в двух отдельных таблицах.

Задание. Создайте две новые сводные таблицы с расчётом суммы и среднего для стоимости товара.

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

— города — по столбцам;

— категории — товаров по строкам.

В раздел Values перетаскиваем «Количество товара кг» и «Стоимость товара руб» (рис. 6.12).

Рис. 6.12. Две меры

Задание. Постройте сводную таблицу с двумя мерами.

Получаем довольно громоздкую таблицу.

Настроим формат, чтобы выводились только целые числа. Выясняется, что настройка формата вывода затрагивает один из показателей, но по всей таблице.

Сократим заголовки, как мы сделали в предыдущих примерах.

Удаляем итоги по строкам: Remove Grand Total.

Получаем приемлемый вид таблицы (рис. 6.13). По каждому городу имеем две колонки с показателями.

Рис. 6.13. Два показателя

Задание. Настройте оформление сводной таблицы.

Построим ещё один вариант сводной таблицы. Теперь вычислим два разных показателя — сумму и среднее по одному и тому же полю. Перетаскиваем поле «Количество товара кг» в раздел Values (Значения) два раза. Первоначально оба раза автоматически выбирается сумма. Изменим второй показатель на среднее (рис. 6.14).

Кстати говоря, в разделе Columns кроме названия города появились заголовки — Values. То есть наши два показателя.

Рис. 6.14. Два показателя по одному полю

Настроим оформление таблицы.

Устанавливаем формат вывода:

— сумма — с точностью до целых;

— среднее — с точностью до сотых.

Делаем короткие заголовки (рис. 6.15).

Рис. 6.15. Оформление таблицы

Задание. Настройте оформление таблицы.

Кроме выбора показателей, у нас есть дополнительные расчёты. Например, расчёт процентов — по строке, по столбцу или по всей таблице в целом.

Создаём новую сводную таблицу. Перетаскиваем поле «Количество товара» в раздел Values два раза. Получаем две суммы (рис. 6.16).

Рис. 6.16. Две суммы

Теперь настроим вычисление процентов. Пусть это будут проценты по строке. В нашем случае это процент количества товара в каждой категории. Процент в общем количестве данной категории товара по всем городам торговой сети.

Щёлкаем правой кнопкой по любой ячейке во второй колонке сумм. Выбираем пункт Value Field Settings. В диалоговом окне переходим на вкладку Show Values As. Здесь у нас есть целый список самых разных процентов. Вот примеры:

— No Calculations (не проводить никаких расчётов);

— % of Grand Total (процент от итогового значения выбранного показателя по всей таблице);

— % of Column Total (процент от итога по столбцу);

— % of Row Total (процент от итога по строке).

Дальше по списку видим множество других вариантов.

Выбираем «процент по строке» и нажимаем ОК (рис. 6.17).

Рис. 6.17. Проценты по строке

Остаётся «навести красоту». Поработаем с оформлением таблицы и с форматом чисел в ячейках.

Делаем общий заголовок подлиннее и попонятнее, а заголовки строк и столбцов покороче.

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

Value Field Settings — Number — Category — Number — Decimal Places — 1.

Что мы получили в результате? Оказывается, проценты вначале рассчитываются как числа, а потом выводятся как проценты (рис. 6.18). Другими словами, обещанный расчёт процентов не переводит результаты вычислений в проценты, а только использует экранное представление числа — формат вывода в виде процентов.

Рис. 6.18. Проценты в формате числа

Значит, для вывода вычисленных «процентов» надо выбрать формат вывода в процентах:

Value Field Settings — Number — Category — Percentage — Decimal Places — 1.

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

Рис. 6.19. Проценты в формате процентов

Мы исправили заголовки столбцов, в которых выводятся наши показатели — суммы и проценты. Но это не просто отдельные ячейки на рабочем листе. Это элементы такого объекта, как сводная таблица. Обратим внимание на меню настройки сводной таблицы (рис. 6.20). Здесь в разделе Values тоже произошли изменения. Новые, исправленные заголовки указаны здесь как названия наших итоговых показателей.

Рис. 6.20. Названия показателей

Задание. Создайте сводную таблицу с подсчётом сумм и процентов по стоимости товаров.

Вернёмся к методам агрегирования. Мы рассмотрели всего два метода из большого списка: сумма и среднее. Вызовем настройку итоговых показателей Value Field Settings. Познакомимся со «счётчиками». Сводная таблица может сосчитать, сколько ячеек было заполнено любым содержимым и сколько ячеек было заполнено числами. Эти варианты называются так:

— Count (Количество заполненных ячеек);

— Count numbers (Количество ячеек, в которых записаны числа).

В реальной жизни не все ячейки могут быть заполнены. И бывают всевозможные ошибки и опечатки. Обычно такие нестыковки расчищают при наполнении хранилища данных. Однако, кое-что может проникнуть и на следующий уровень.

Создаём новую сводную таблицу. Перетаскиваем поле «Название магазина» в раздел Values два раза. Выбираем показатели Count и Count numbers. Первые столбцы — это количество заполненных ячеек, вторые — количество числовых значений в поле «Название магазина». Нули во вторых колонках говорят о том, что никаких чисел в этом поле не встречается (рис. 6.21). Обратим внимание, что оба показателя названы одинаково: Count of. Сразу же даём понятные названия колонкам, пока не забыли кто и где прячется.

Рис. 6.21. Количество значений

Задание. Создайте сводную таблицу с расчётом количества заполненных и числовых ячеек в поле «Название товара».

6.4. Обновление сводной таблицы

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

Познакомимся с функцией обновления и заодно проверим, как работают наши счётчики. Используем наше предыдущую сводную таблицу со счётчиками. На рис. 6.22 показаны четыре шага нашего эксперимента.

Шаг 1. Перейдём в таблицу транзакций и рассмотрим поля «Название магазина», «Город» и «Категория товара». Нас интересуют первые две строки. Здесь указаны сведения по магазинам «Никитич» (г. Москва) и «Василиса» (г. Владивосток). Проданы были товары из категории «Крупы».

Шаг 2. Рассмотрим значения показателей в сводной таблице. Категория «Крупы», города Москва и Владивосток:

1105 — 0 — 931 — 0.

Шаг 3. Внесём изменения в таблицу транзакций. Сделаем в ней пару ошибок:

Вместо названия «Никитич» напишем 2, а название «Василиса» удалим. Теперь у нас в исходных данных в поле «Название магазина» имеется одно числовое значение и одна пустая, незаполненная ячейка.

Шаг 4. Переходим к сводной таблице. Она пока что не изменилась. Щёлкаем по любой ячейке внутри сводной таблицы и выбираем в контекстном меню (рис. 6.23) пункт Refresh (Обновить). Сводная таблица действительно обновила значения показателей:

1104 — 0 — 931 — 1.

Что нам сообщают эти странные числа? Что количество заполненных полей уменьшилось. И что появилось одно числовое значение.

Рис. 6.22. Обновление итогов

Рис. 6.23. Вызов обновления

После проведения опыта нужно отменить все наши изменения в таблице транзакций. То есть «откатиться назад». Нажимаем кнопку отката (рис. 6.24). В выпадающем списке выделяем последние действия:

— Typing 2 (ввод двойки вместо названия магазина);

— Clear (удаление названия магазина);

— PivotTable Refresh (обновление сводной таблицы).

Убеждаемся, что мы отменили изменения и в таблице транзакций, и в сводной таблице.

Рис. 6.24. Откат изменений

Задание. Отмените последние изменения и убедитесь, что результат вас устраивает.

Обновить таблицу можно и по-другому, через верхнее меню (рис. 6.25). Это более длинный путь. Нужно выбрать таблицу, щёлкнув по любой ячейке внутри таблицы. В верхнем меню появится раздел инструментов по работе со сводными таблицами. Теперь выбираем следующий пункт:

Pivot Table Tools — Analyze — Data — Refresh

Настройка сводной таблицы — Анализ — Данные — Обновить.

Рис. 6.25. Обновление через меню

Задание. Вызовите обновление сводной таблицы через меню.

Всплывающая подсказка на рис. 6.25 говорит, что для обновления сводной таблицы можно нажать комбинацию клавиш Alt + F5. Это будет самый быстрый способ обновления. Если такая операция нужна очень часто, то можно эту комбинацию даже запомнить. Она сама запомнится. Если нажимать её по сто раз на дню. А если она не нужна, то и запоминать необязательно.

Задание. Вызовите обновление сводной таблицы, нажав комбинацию клавиш.

Но и это ещё не всё! Нам дают возможность обновлять сводную таблицу при каждом открытии файла. Для этого выбираем в верхнем меню (рис. 6.26) следующий пункт:

Pivot Table Tools — Analyze — Pivot Table — Options — Options.

Рис. 6.26. Параметры сводной таблицы

Появляется диалоговое окно Pivot Table options (Настройка сводной таблицы), см. рис. 6.27. Открываем вкладку Data. Выбираем пункт

Refresh data when opening the file

Обновлять данные при открытии файла.

Рис. 6.27. Настройка автоматического обновления

Задание. Установите автоматическое обновление последней сводной таблицы. Прочитайте предупреждение. Выясните, что на самом деле будет обновляться при открытии файла.

7. Иерархия

В сводных таблицах можно организовать ИЕРАРХИЮ. По сути, это представление наших обобщённых показателей в виде дерева. В иерархии может быть несколько уровней. Можно сказать, что это вложенность уровней друг в друга.

С иерархией мы встречаемся и в обыной жизни. Например, в почтовом адресе.

Задание. Сделайте зарисовку схемы административного деления России в виде иерархии — начиная от страны в целом и заканчивая районом города. Сколько уровней можно здесь указать?

В наших примерах иерархия образуется естественным образом. Фактически, у нас уже есть две иерархии: «города — магазины» и «категории — товары». В одном городе есть несколько магазинов. В рамках одной категории товаров есть несколько наименований. Количество уровней иерархии может быть гораздо больше.

Задание. Сделайте зарисовки для иерархий по магазинам и товарам. Укажите на зарисовках все варианты значений полей на каждом уровне.

7.1. Создание иерархии

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

Сделаем первый опыт и организуем иерархию «города — магазины». Создаём новую сводную таблицу. Перетаскиваем название города и название магазина в раздел столбцов (рис. 7.1).

Рис. 7.1. Создание иерархии

Получаем сводную таблицу, где вначале идут города, а затем магазины (рис. 7.2). Это понятно. Это логично. И эту логичность может оценить только читатель. Компьютер обычно не в состоянии организовать иерархию грамотно и правильно. Тем более, что её строят с определённой целью, а не просто ради того, чтобы что-то построить, сдать и забыть.

Иерархию можно организовать при создании OLAP куба в хранилище данных. Тогда сводная таблица по SQL-запросу получит итоговые показатели в многомерной таблице с указанием иерархии. В дополнение к такой готовой иерархии пользователь может создать свою, если понадобится.

Рис. 7.2. Таблица с иерархией

Задание. Создайте три сводных таблицы, используя следующие иерархии:

1) «города — магазины»;

2) «категории — товары»;

3) «города — магазины» и «категории — товары».

7.2. Детализация уровней

Мы организовали иерархию. Теперь с неё можно работать. Мы можем «сворачивать» и «разворачивать» нашу иерархию.

Другие названия для этих действий такие:

— Expand — Детализация — Развернуть;

— Collapse — Консолидация — Свернуть.

Возможно, вам встретятся и другие варианты названий. Главное, вовремя распознать, что речь идёт про иерархию.

В любом случае, речь идёт о том, насколько подробно мы хотим рассматривать наши итоговые показатели. Или насколько мы хотим их «укрупнить», чтобы увидеть всю картину в целом, без лишних подробностей. По сути, это выбор того уровня иерархии, который мы хотим вывести на экран.

Объяснение иерархии длинное, а вот работа с иерархией очень простая. Уровни сводной таблицы можно сворачивать и разворачивать. Для этого достаточно щёлкнуть по кнопке с символом плюса [+] или минуса [-]. На рис. 7.2 можно увидеть кнопочку с минусом [-]. Она находится слева от названия каждого города.

Нажимаем эту кнопку, и все данные по одному городу сворачиваются до одного столбца (рис. 7.3). Что интересно, в этом случае перестраивается вся сводная таблица. После сворачивания или разворачивания номера столбцов Excel по-прежнему идут в алфавитном порядке:

A — B — C — D — Е — F — G.

Пропавших (скрытых) столбцов не будет.

Рис. 7.3. Сворачивание уровней

Задание. Ознакомьтесь с операциями сворачивания и разворачивания уровней, нажимая кнопки [+] и [-].

Второй способ работы с иерархией — это лента (Ribbon) — верхнее меню для быстрого доступа к популярным инструментам. Щёлкаем по строчке с городами. В верхнем меню выбираем следующий пункт:

PivotTable Tools — Analyze — Active Field — Collapse Field.

Всплывающая подсказка сообщает, что нажатие этой кнопки позволит нам свернуть все подробности по выбранному полю (рис. 7.4).

Рис. 7.4. Сворачивание выбранного поля

Все подробности нам свернули. Остались только общие итоги по городам. Слева от названия каждого города появилась кнопка с плюсиком [+] (рис. 7.5).

Рис. 7.5. Результаты сворачивания поля

Задание. Ознакомьтесь с операциями сворачивания и разворачивания уровней, нажимая кнопки Expand Field и Collapse Field в разделе Active Field.

Третий способ работы с иерархией — это контекстное меню. Щёлкаем правой кнопкой по заголовку столбца. Выбираем Expand/Collapse. Нам предлагают аж шесть вариантов детализации:

— Expand;

— Collapse;

— Expand Entire Field;

— Collapse Entire Field;

— Collapse to «Город»;

— Expand to «Название магазина».

Чтобы познакомиться с этими операциями, нам предстоит немного поэкспериментировать.

Рис. 7.6. Меню детализации

Задание. Ознакомьтесь с операциями сворачивания и разворачивания уровней, используя контекстное меню Expand/Collapse. Запишите в отчёте, что выполняется при вызове каждого из шести пунктов меню.

7.3. Неудачная иерархия

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

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

Рис. 7.7. Неправильный порядок полей в иерархии

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

Рис. 7.8. Неправильное построение иерархии

Задание. Создайте иерархию «Магазин — Город» в сводной таблице. Сверните и разверните уровни детализации. Поменяйте местами поля в списке Columns. Сверните и разверните уровни детализации.

Если бездумно собрать несколько полей в одной иерархии, получится полная бессмыслица. Чтобы это почувствовать на себе, проведём простой эксперимент.

Задание. Создайте иерархию «Магазин — Товар — Город— Категория товара» в сводной таблице. Сверните и разверните уровни детализации.

7.4. «Проваливаемся» в данные

Кроме детализации уровней иерархии, есть ещё один способ получить более подробные сведения по сводной таблице. Это вывод на экран источника данных.

Об этой возможности нам уже ненавязчиво сообщала всплывающая подсказка при создании сводной таблицы (рис. 6.1). Конечно, кто же будет читать сообщения на экране? Надо быстрее сдать и забыть! Поэтому большинство студентов быстро нажимает кнопки с надписями ОК и NEXT. Предлагаем всё-таки вначале прочитать сообщение.

Создадим новую, очень простую сводную таблицу (рис. 7.9).

Рис. 7.9. Простая сводная таблица

Дважды щёлкнем по любому числовому показателю. В нашем примере это общее количество товаров в килограммах по магазину «Алёнушка». Появляется новый лист, на который выводится та часть таблицы транзакций, по которой был рассчитан этот показатель (рис. 7.10).

Это не наша исходная таблица транзакций, а только копия выбранной части таблицы. Здесь в колонке «Название магазина» есть только название одного-единственного магазина.

Перемещение в пределах иерархии обычно называют Drill Down и Drill Up. Можно встретить такое объяснение: Drill Down — это опуститься по готовой иерархии сводных показателей, а Drill Through — это опуститься до уровня исходных данных, по которым были вычислены итоговые показатели. В русском варианте последнее часто называют «провалиться в исходные данные».

Рис. 7.10. Исходные данные для показателя

Пролистаем таблицу до последней строки:

Ctrl + Down.

Видим, что здесь все данные по одному магазину. Число строк всего 1254 (рис. 7.11). Напомним, что в таблице транзакций мы сгенерировали 10000 строк. Так что перед нами выборка по заданному признаку.

Между прочим, при листании таблицы заголовок остаётся на экране. Мы дошли до конца таблицы, но видим, в какой колонке что находится. Это ещё один плюс работать с объектом типа «таблица».

Поскольку это всего лишь копия исходных данных, этот лист после просмотра можно удалить — безо всяких последствий для наших сводных таблиц.

Рис. 7.11. Число записей

Задание. «Провалитесь» в исходные данные для любой ячейки сводной таблицы и убедитесь, что это небольшая выборка по заданному признаку.

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

Так что же такое «детализация»? И где проходит граница между перемещением в пределах иерархии показателей и рассмотрением «сырых» необработанных данных? Проблема понимания усугубляется трудностями перевода, особенно если это машинный перевод многоязычного сайта.

Пример объяснений по поводу «детализации» можно найти на сайте одной очень известной компании (рис. 7.12). Нужно иметь в виду, что сайт фирмы-разработчика — это не учебник, и не методичка. Здесь в лучшем случае объясняют, как пользоваться конкретным программным продуктом. Иногда эти «инструкции» сопровождают комментариями, иногда нет.

Рис. 7.12. Проблема машинного перевода

Задание. Попробуйте перевести английскую фразу на рис. 7.12. на русский язык и объяснить смысл высказывания своими словами. При необходимости найдите исходные страницы сайта компании в интернете — с помощью любой поисковой машины.

8. Шаблоны сводных таблиц

При построении сводных таблиц можно использовать рекомендации программы под названием шаблоны, или макеты, или рекомендуемые сводные таблицы.

Переходим на страницу, где находится наша таблица транзакций. Щёлкаем по какой-нибудь ячейке таблицы. Выбираем в верхнем меню следующий пункт (рис. 8.1):

Insert — Tables — Recommended Pivot Tables

Вставка — Таблицы — Рекомендуемые сводные таблицы.

Всплывающая подсказка поясняет, что нас ожидает.

Рис. 8.1. Вставка рекомендуемой сводной таблицы

Задание. Выберите таблицу транзакций и прочитайте всплывающую подсказку.

На экран выводится диалоговое окно

Recommended Pivot Tables

Рекомендуемые сводные таблицы.

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

Рассмотрим предложенный шаблон.

Иерархия «Категория — Товар» расположена по строкам. Она построена правильно.

По столбцам расположены три итоговых показателя в виде сумм значений. Чтобы рассмотреть весь шаблон, потребуется немного растянуть окно в ширину. Программа решила найти сумму числовых значений. Очень часто это всё, что требуется сделать.

Первые колонки имеют смысл — общую стоимость и количество товаров действительно можно складывать. Получим итоговую стоимость и общее количество каждого товара.

А вот третья колонка — сумма цен товаров. Это действие не имеет никакого смысла. Этот столбец можно удалить после создания сводной таблицы. Либо можно выбрать другой способ агрегирования данных. Например, средняя цена товаров в каждой категории может кого-нибудь заинтересовать. Конечно, всё зависит от решаемой задачи.

Рис. 8.2. Выбор шаблона сводной таблицы

Задание. Вызовите меню шаблонов сводных таблиц и рассмотрите каждый шаблон. Определите, какие шаблоны потребуют исправления.

Итак, мы выбрали и рассмотрели шаблон. Чтобы построить такую таблицу, нажимаем ОК.

Сводная таблица строится на новом листе. Рассмотрим полученный результат (рис. 8.3). Всё соответствует шаблону. Цифры отличаются, потому что сводная таблица построена по всему набору данных, а предварительный просмотр основан на небольшом фрагменте массива данных (выборке).

Рис. 8.3. Рекомендованная таблица

Задание. Постройте рекомендованную таблицу и сравните итоговые показатели с цифрами предварительного просмотра.

Как мы уже отметили, третий показатель не имеет смысла. Третье поле — цена товара (рис. 8.4). Попробуем удалить это поле из списка.

Рис. 8.4. Поля для подсчёта итогов

Чтобы удалить поле из списка показателей, берём выбранное поле и перетаскиваем его обратно в список полей таблицы исходных данных (рис. 8.5).

Рис. 8.5. Удаление поля из списка показателей

Получаем приемлемый вид сводной таблицы.

Остаётся только отредактировать названия строк и столбцов (рис. 8.6).

Как видим, использование рекомендованных таблиц может немного ускорить создание таблицы.

Рис. 8.6. Окончательный вид сводной таблицы

Задание. Удалите лишнее поле и отредактируйте таблицу.

Мы описали использование рекомендованных сводных таблиц. Теперь пришло время попрактироваться в использовании готовых шаблонов.

Задание. Создайте сводные таблицы по всем рекомендованным шаблонам. Под каждой таблицей укажите, насколько она соответствует зравому смыслу и какие изменения в неё пришлось внести.

9. Группировка дат

Наши исходные данные были привязаны ко времени. Точнее, к датам. Обобщённые показатели в сводных таблицах тоже привязаны ко времени. Познакомимся с этой стороной сводных таблиц.

Создадим новую сводную таблицу. Для этого переходим на страницу таблицы транзакций. Щёлкаем по любой ячейке таблицы. Выбираем в верхнем меню:

Insert — Tables — PivotTable (рис. 9.1).

Рис. 9.1. Создание сводной таблицы

Задание. Создайте новую незаполненную сводную таблицу.

Сформируем сводную таблицу. Для этого перетаскиваем поля в соответствующие разделы меню настройки полей (рис. 9.2). Мы перетащили поле «Дата» в раздел столбцов. Однако, здесь мы сразу же обнаруживаем три параметра: годы, кварталы и даты.

Рис. 9.2. Дата в сводной таблице

Задание. Установите поля для сводной таблицы, как показано на рис. 9.2.

Сводная таблица выводится на экран в свёрнутом виде (рис. 9.3). Это верхний уровень иерархии по датам. Перед нами только годы. Судя по кнопке [+], эти столбцы можно развернуть.

Рис. 9.3. Даты в сводной таблице

Развернём столбец показателей за 2015 год. Второй уровень иерархии — кварталы. Развернём кварталы — получаем месяцы (рис. 9.4). Здесь нет дней, возможность детализации уровня месяцев уже отсутствует.

Рис. 9.4. Детализация даты

Задание. Ознакомьтесь с уровнями иерархии по времени.

Удалим поля «Квартал» и «Дата» из списка полей. Теперь у нас в сводной таблице остались только годы (рис. 9.5). Нет никакой возможности детализации. Поэтому кнопок [+] больше не наблюдается.

Рис. 9.5. Годы без детализации

Задание. Удалите кварталы и даты из сводной таблицы.

Теперь изменим выбор полей для нашей сводной таблицы. Перетащим поля таким образом:

— по столбцам — названия городов;

— по строкам — даты.

Получаем похожие результаты: год — квартал — месяц (рис. 9.6).

Рис. 9.6. Даты по строкам

Задание. Перестройте сводную таблицу, как показано на рис. 9.6.

На самом деле, группировку по датам можно настроить как нам заблагорассудится. Щёлкнем правой кнопкой по любому заголовку строки. Появляется контекстное меню. Выбираем пункт Group (рис. 9.7).

Рис. 9.7. Группировка по выбранному полю

На экране появляется диалоговое окно настройки параметров группировки Grouping (рис. 9.8).

Мы можем указать даты начала и конца интервала для анализа данных в разделе Auto:

— Starting at;

— Ending at.

Ниже видим окно By — признаки для группировки. Здесь нам предлагают список вариантов для группировки:

— Seconds (Секунды);

— Minutes (Минуты);

— Hours (Часы);

— Days (Дни);

— Months (Месяцы);

— Quarters (Кварталы);

— Years (Годы).

Для выбора щёлкаем по интересующему пункту. Для снятия выбора щёлкнем по нему ещё раз.

Можно выбрать сразу несколько параметров.

Рис. 9.8. Варианты группировки по времени

Задание. Установите группировку по годам и месяцам.

Если выбрать только группировку по дням, у нас появляется возможность указать количество дней Number of days (рис. 9.9). Указываем период группировки 7 дней. Теперь каждая строка — это показатели за 7 дней, например, с 1 по 7 января, затем с 8 до 14 января и т. д. В английской версии программы дата выводится в американском формате: месяц — день — год.

Рис. 9.9. Группировка по дням

Задание. Установите группировку по 15 дней.

Установим привычный формат даты на русском языке. Для этого щёлкаем по любой ячейке заголовка строки и выбираем в контекстном меню Format Cells (рис. 9.10). Вроде бы уже выбран правильный формат.

Установка формата даты ничего не меняет. Обратим внимание, что в строке формул выводится содержимое ячейки — две даты через тире. Похоже, что медицина здесь бессильна, и настроить формат даты «в лоб» не получится.

Рис. 9.10. Настройка формата даты

Задание. Попробуйте изменить формат даты. Обратите внимание на строку формул.

10. Анализ биржевых данных

Мы познакомились с группировкой дат. Теперь поработаем с реальными биржевыми данными. Методику загрузки биржевых данных на сайте компании «Финам» мы с вами уже рассмотрели в предыдущих работах [4—6].

В качестве варианта задания будем использовать акцию под соответствующим номером из действующего списка Индекса голубых фишек МосБиржи. Обозначение индекса MOEXBC.

Напомним, что базу расчёта индекса можно найти на сайте Московской биржи:

www.moex.com — Индексы — Все индексы — Индексы акций — Индекс голубых фишек — База расчёта.

Для нулевого варианта будем рассматривать акции сети «Магнит». Загрузим ежедневные данные по биржевым котировкам обыкновенных акций (сокращённо — ао) «Магнита» за четыре года, указанных в варианте задания. Тикер акции MGNT.

Для загрузки исторических данных переходим на сайт «Финама» и выбираем:

www.finam.ru — Теханализ — Экспорт котировок —Мосбиржа акции — Магнит ао.

Настраиваем параметры экспорта (рис. 10.1) и скачиваем файл на компьютер.

Рис. 10.1. Параметры экспорта котировок

Задание. Скачайте исторические биржевые данные в соответствии с вариантом задания.

Загружаем полученный файл в Excel. Методика загрузки тоже описана в предыдущих работах, и мы считаем, что студенты с ней уже знакомы.

После загрузки файла переместим рабочий лист в наш отчёт. Щёлкаем правой кнопкой по вкладке с названием загруженного файла. В контекстном меню выбираем Move or Copy.

Далее в диалоговом окне Move or Copy указываем рабочую книгу с нашим отчётом по работе

To book.

Выбираем вариант вставки

move to end.

Рис. 10.2. Перемещение листа в отчёт

Задание. Загрузите данные и перенесите в отчёт.

Рассмотрим загруженный материал. В наших данных есть три неинформативных столбца:

<TICKER>;

<PER>;

<TIME>.

В них записано одно и то значение. Это много данных. Естественно, это не добавляет нам никакой полезной информации. Кстати, перед нами пример явного отличия данных от информации.

Удаляем эти ненужные столбцы. Тикер и период уже указаны в названии вкладки.

Выделяем полученный массив и объявляем его таблицей с заголовками (рис. 10.3). Задаём информативное название для таблицы как объекта Excel.

Мы это уже проделывали, тут всё должно быть знакомо.

Рис. 10.3. Таблица исторических данных

Задание. Оформите таблицу исторических данных.

Данные у нас загружены, можно переходить к анализу. Щёлкаем по любой ячейке и строим сводную таблицу, как описано выше.

Выбираем следующие поля для анализа:

— по строкам — даты;

— по столбцам — цены закрытия <CLOSE> и объёмы торгов <VOLUME>.

Настраиваем расчёт средних значений, вводим простые заголовки таблицы и задаём формат вывода (рис. 10.4).

Как и в предыдущих примерах, вывод целых значений не означает округление. В строке формул по-прежнему можно видеть число с дробной частью.

Рис. 10.4. Сводка по акциям Магнита

Задание. Постройте сводную таблицу по котировкам акции, как описано выше.

В сводной таблице время по умолчанию сгруппировано так же, как и в предыдущем примере: год — квартал — месяц. Что будет, если оставить только месяцы? Останутся только месяцы (рис. 10.5). Но теперь данные за все январи оказались в одной строке. Конечно, это нам не подходит.

Рис. 10.5. Результаты группировки по месяцам

Задание. Настройте группировку по месяцам. Убедитесь, что данные не имеют смысла.

Итак, мы убедились, что рассматривать только месяцы неправильно. Настроим группировку, чтобы были годы и месяцы. Отключаем подсчёт общих итогов и итогов по годам (рис. 10.6).

Рис. 10.6. Группировка по годам и месяцам

Задание. Настройте группировку по годам и месяцам.

Показатели подсчитаны. Попробуем построить график. Выделяем столбец средних цен закрытия. Выбираем в верхнем меню вставку графика:

Insert — Charts — Inset Scatter (X, Y) — Scatter —Scatter with Straight Lines.

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

Рис. 10.7. График по данным из сводной таблицы

Задание. Попробуйте построить «линейчатый» график (X, Y) по данным из сводной таблицы. Обратите внимание на сообщение программы.

Нам предложили попробовать другой тип графика. Щёлкаем по любой ячейке с показателями. Выбираем вставку столбиковой диаграммы:

Insert — Charts — Insert Column or Bar Chart — 2D Column —Clustered Column.

На этот раз график появился (рис. 10.8).

Рис. 10.8. График по итоговым показателям

Задание. Постройте столбиковую диаграмму по данным из сводной таблицы.

Судя по оформлению, это не простой график. В нём есть дополнительные элементы:

По оси времени указаны месяцы, но есть ещё и группировка по годам.

Кнопки «Годы» и «Дата» явно предлагают вызвать дополнительные функции.

В правом нижнем углу кнопки [+] и [-] напоминают уже знакомые нам кнопки работы с иерархией.

Нажимаем кнопку «Годы» и получаем меню настройки фильтра по годам (рис. 10.9).

Нажимаем кнопку «Дата» и получаем меню настройки фильтра по месяцам.

Рис. 10.9. Меню фильтрации

Задание. Ознакомьтесь с меню фильтрации по годам и по датам.

Теперь поработаем с кнопками [+] и [-]. Подводим курсор к кнопке [-] и видим всплывающую подсказку, что это Collapse Entire Field. То есть сворачивание детализации (обобщение данных). Нажимаем на эту кнопку и получаем график только по годам (рис. 10.10). Сводная таблица тоже свернулась до показателей по годам.

Рис. 10.10. Обобщение данных

Задание. Нажмите кнопку [-] и получите обобщение данных на графике.

Вторая кнопка для работы с иерархией [+]. Всплывающая подсказка говорит, что это Expand Entire Field. То есть это разворачивание детализации. Нажимаем кнопку [+] и видим детализацию на графике и в сводной таблице (рис. 10.11).

Рис. 10.11. Детализация на графике

Задание. Разверните детализацию на графике.

Получается, что график по данным из сводной таблицы позволяет нам работать с иерархией. Свернём детализацию, нажав правой кнопкой на заголовок строки сводной таблицы. В контекстном меню выбираем Expand/Collapse — Collapse Entire Field (рис. 10.12).

Рис. 10.12. Управление детализацией через сводную таблицу

Задание. Ознакомьтесь с управлением детализацией графика через сводную таблицу.

Сворачивание детализации данных в сводной таблице одновременно сворачивает детализацию на графике.

Теперь щёлкнем правой кнопкой по столбику на графике и вызовем в контекстном меню Expand/Collapse — Expand Entire Field (рис. 10.13). Во всех случаях мы видим тот же список из шести инструментов для управления детализацией.

Рис. 10.13. Детализация на графике

Задание. Ознакомьтесь с управлением детализацией на графике и проверьте, как работает каждый из шести инструментов.

Но и это ещё не всё. Щёлкнем по графику и обратим внимание на меню настройки в правой части окна Excel. Заголовок меню PivotChart Fields говорит о том, что мы работаем со сводным графиком (рис. 10.14).

СВОДНЫЙ ГРАФИКводный график — это что-то новое. Мы с ним ещё поработаем.

Обратим внимание на настройку полей для сводного графика:

— Axis (Categories) — Years, <DATE>;

— Legend (Series) — Values;

— Values — CLOSE, VOL.

Рис. 10.14. Настройка сводного графика.

Задание. Ознакомьтесь с настройкой полей сводного графика. В разделе Values вызовите пункт Value Field Settings и выясните, какой метод агрегирования указан для полей CLOSE и VOL.

Попробуем немного улучшить график. Щёлкнем правой кнопкой по любому столбику на графике и в контекстном меню вызовем пункт Change Series Chart Type (рис. 10.15).

Рис. 10.15. Изменение типа диаграммы

В диалоговом окне Change Chart Type выбираем комбинированную диаграмму Combo. Для ряда данных CLOSE настраиваем тип графика Line и дополнительную ось координат Secondary Axis (рис. 10.16). В окне предварительного просмотра мы сразу же видим результаты настройки Custom Combination.

Рис. 10.16. Настройка диаграмм

Нажимаем ОК и получаем более понятную и информативную комбинированную диаграмму (рис. 10.17).

Рис. 10.17. Комбинированная диаграмма

Задание. Настройте комбинированную диаграмму.

График стал гораздо лучше. Теперь уточним кое-что по поводу наших итоговых показателей.

Первый показатель — CLOSE. Мы взяли цены закрытия и посчитали среднее значение. Получилась средняя цена закрытия. Вообще-то цена закрытия — это цена последней сделки торгового периода.

Если у нас дневные данные, то закрытие — это окончание торговой сессии на бирже. Когда на биржевых графиках «укрупняют» данные за месяц, то цена закрытия — это последняя сделка последней торговой сессии месяца. Но такого метода агрегирования у нас в распоряжении нет. Получается, что стандартные средства не позволяют делать нестандартные действия. Звучит по-идиотски смешно. Но это так и есть. Пока примем к сведению, что не всё можно сделать готовыми средствами.

Второй показатель — VOLUME. Мы взяли объёмы торгов и нашли среднее значение. Это средний объём торгов за один день. Что такое объём? Это количество акций, которые перешли из одних рук в другие за один торговый период. Может быть, они переходили от одного владельца к другому и обратно несколько раз за день. В объёмах торгов учтены все сделки. При укрупнении масштаба на биржевых графиках до месяца объёмы должны быть за месяц, а не в среднем за день. Значит, здесь должна быть сумма объёмов. Сумму в сводных таблицах мы можем посчитать.

Настроим вычисление суммы объёмов. Щёлкаем по графику. Появляется меню настройки полей PivotChart Fields. Щёлкаем по кнопке VOL в разделе Values и выбираем в меню следующий пункт:

Value Field Settings — Summarize Values By — Average.

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

Рис. 10.18. Общий объём торгов

Задание. Настройте подсчёт суммарных объёмов торгов. Обратите внимание на изменения в графике и в таблице.

11. Сводные графики

Мы попытались построить график по данным из сводной таблицы, а в результате начали знакомиться со сводными графиками PivotCharts.

СВОДНЫЙ ГРАФИК — это просто график, построенный по обобщённым данным из сводной таблицы.

Построим сводный график. Для этого возвращаемся на лист с исходными данными и щёлкаем по любой ячейке таблицы транзакций. В верхнем меню выбираем следующий пункт (рис. 11.1):

Insert — Charts — PivotChart.

Рис. 11.1. Вставка сводного графика

Задание. Наведите курсор на пункт PivotChart и прочитайте всплывающую подсказку.

Нам предлагается выбор (рис. 11.2):

— PivotChart — только сводный график;

— PivotChart & PivotTable — сводный график и сводная таблица.

Рис. 11.2. Выбор сводного графика

Для начала построим только сводный график.

Выбираем PivotChart и получаем диалоговое окно Create PivotChart (рис. 11.3). Всё очень похоже на построение сводной таблицы. Исходные данные в разделе Select a table or range уже выбраны — это наша таблица под названием «Транзакции». Программа это определила сама, потому что мы щёлкнули по этой таблице.

Размещение графика на новом листе:

Choose where you want the PivotChart to be placed — New Worksheet.

Рис. 11.3. Параметры сводного графика

Задание. Вставьте сводный график.

Нажимаем ОК и получаем новый рабочий лист. Здесь указаны области для сводной таблицы и сводного графика, хотя мы попросили только сводный график (рис. 11.4). Тут уж ничего не поделаешь, ведь сводный график строится по данным из сводной таблицы.

В области расположения сводной таблицы схематично показана сводная таблица и меню настройки полей. Здесь даже изображена галочка — если выбрать поле, то оно отмечается галочкой в списке полей исходных данных.

Аналогично показана работа со сводным графиком: сам график и настройка полей.

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

Рис. 11.4. Расположение таблицы и графика

Задание. Рассмотрите схематичные изображения таблицы и графика и ознакомьтесь с сообщениями программы по поводу их настройки.

Щёлкаем по сводной таблице и получаем меню PivotTable Fields. Щёлкаем по сводному графику и получаем меню PivotChart Fields. Внешне эти инструменты настройки полей очень похожи (рис. 11.5).

Однако, есть и различия. Вместо строк Rows указаны категории Axis (Categories). Вместо столбцов Columns на графике указан ряд данных Legend (Series). Эти названия намекают, что выбранные поля будут выступать в роли координат по оси «икс» и по оси «игрек» на трафике.

Рис. 11.5. Настройка полей таблицы и графика

Задание. Сравните меню настройки полей для сводной таблицы и сводного графика.

Теперь настроим сводный график. Начинаем перетаскивать поля. Делаем первое, что приходит в голову (рис. 11.6) — магазины по оси «икс» и количество проданных товаров килограммах по оси «игрек»:

— Axis (Categories) — город и магазин

— Legend (Series) — килограммы.

Рис. 11.6. Настройка сводного графика

Программа нас о чём-то пытается предупредить (рис. 11.7). Мы получаем громоздкую таблицу и пустой график.

Рис. 11.7. Ограничения по данным

Задание. Создайте сводный график в соответствии с рис. 11.6 и обратите внимание на предупреждение и на вид сводной таблицы.

Попробуем исправить ситуацию. Перетаскиваем поле «Количество товара» из раздела Legend (Series) в раздел Values (рис. 11.8). Программа автоматически переходит к вычислению суммы. Сумма по данному полю — это общее количество проданных товаров в килограммах. Нас это устраивает.

Рис. 11.8. Настройка полей сводного графика

Теперь на экране появилась осмысленная таблица и соответствующий график (рис. 11.9). Мы настроили график, и вместе с ним изменилась таблица.

Рис. 11.9. Таблица и график

Задание. Настройте сводный график в соответствии с рис. 11.8.

А что будет при изменении сводной таблицы? Сейчас попробуем. Щёлкаем по сводной таблице. В меню PivotTable Fields убираем количество товаров из раздела Values и перетаскиваем сюда стоимость товаров. Снова видим сумму (рис. 11.10).

Рис. 11.10. Поля сводной таблицы

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

Рис. 11.11. Сумма по стоимости

Задание. Измените настройки полей сводной таблицы в соответствии с рис. 11.10 и обратите внимание на изменение сводного графика.

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

Sum of Стоим товара руб.

Щёлкаем по нему правой кнопкой и выбираем в контекстном меню Value Field Settings (рис. 11.12).

Рис. 11.12. Настройка поля

В диалоговом окне Value Field Settings вводим название более приятное для глаза:

Custom Name — Общая стоимость, руб.

Нажимаем ОК (рис. 11.13).

Рис. 11.13. Настройка названия поля

Задание. Настройте название итогового показателя.

Посмотрим, что изменилось. На графике действительно изменилось название показателя (рис. 11.14). В сводной таблице появилось такое же название в колонке показателей.

Рис. 11.14. Название показателя

Кроме того, новое название появилось и в разделе Values в меню настройки полей — и для графика, и для таблицы (рис. 11.15).

Рис. 11.15. Название показателя

Задание. Обратите внимание на название итогового показателя в обоих меню настройки полей.

На графике остались лишние элементы: общее название Total и легенда из одного пункта Total. Щёлкаем по графику и нажимаем кнопку [+] справа от графика. Получаем меню Chart Elements. Снимаем выбор для заголовка графика Chart Title и для легенды Legend (рис. 11.16).

Рис. 11.16. Настройка элементов графика

Задание. Отключите лишние элементы графика.

График стал попроще.

Сделаем короткие простые заголовки в таблице (рис. 11.17).

Заодно поменяем название поля «Название магазина» — для графика достаточно написать «Магазин».

Рис. 11.17. Оформление графика

Задание. Настройте заголовки, как показано на рис. 11.17.

График мы украсили. Теперь можно рассматривать его в целом и в подробностях. Нажимаем кнопку [-] Collapse Entire Field и сворачиваем иерархию до уровня города (рис. 11.18). Таблица тоже сворачивается.

Рис. 11.18. Сворачивание иерархии

Задание. Сверните иерархию, как показано на рис. 11.18.

Мы можем разворачивать и сворачивать только часть таблицы — и часть графика. Развернём один город в таблице (рис. 11.19). На графике тоже мы увидим более подробные сведения — но только по выбранному городу. Сведения по остальным городам выводятся без детализации.

Рис. 11.19. Частичная детализация

Задание. Попрактикуйтесь в сворачивании и разворачивании иерархии, как показано на рис. 11.19.

12. Фильтры

В сводных таблицах и на сводных графиках есть инструмент под названием ФИЛЬТРЫ. Это возможность исключать данные из анализа по какому-нибудь признаку. Или отбирать данные для анализа.

Нажмём на кнопку «Город» на нашем сводном графике. Появляется меню фильтрации (рис. 12.1). Снимаем выбор по одному городу и нажимаем ОК. На графике исчезает соответствующий столбец. В таблице пропадает соответствующая строка. Когда мы применили фильтр, на соответствующей кнопке появляется символ воронки.

Чтобы отказаться от фильтрации и вновь показать итоги по всем данным, выбираем пункт Clear Filter from в меню фильтрации. Все данные возвращаются на место. Символ воронки на кнопке «Город» исчезает.

Рис. 12.1. Фильтрация по названию города

Задание. Проведите фильтрацию по названию города.

Мы можем провести фильтрацию данных по магазинам. Хотя мы свернули иерархию, на графике всё ещё можно нажать кнопку «Магазин». В меню фильтрации снимаем выбор по нескольким магазинам (рис. 12.2). Нажимаем ОК и видим изменения на графике.

Рис. 12.2. Фильтрация по магазинам

После применения фильтра по магазинам высота столбиков изменилась (рис. 12.3). Теперь некоторые данные исключены из анализа. Обратим внимание, что символ воронки (то есть фильтра) появился и на графике, и в таблице.

Нацелимся на кнопку [+] Expand Entire Field на графике и посмотрим на всплывающую подсказку.

Рис. 12.3. Результат фильтрации

Задание. Найдите на экране символы воронки и кнопки разворачивания детализации.

Нажимаем кнопку [+] Expand Entire Field на графике и разворачиваем детализацию иерархии.

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

Символы фильтрации по-прежнему на месте.

Подводим курсор к кнопке «Магазин» и читаем всплывающую подсказку. Нам тонко намекают, что эта кнопка позволяет настроить фильтры вручную.

Рис. 12.4. Детализация с фильтром

Задание. Разверните детализацию и убедитесь, что выбранные вами магазины исключены из анализа.

Попробуем отменить фильтрацию в таблице. Нажимаем на кнопку с символом воронки в заголовке столбца «Магазины». Рассматриваем меню настройки фильтрации (рис. 12.5). Здесь можно задать фильтр по городу. А вот пункт Clear filer from написан бледными буквами, то есть он не активный. Значит, нажимать на эту кнопку бесполезно.

Возвращаемся в график и снимаем фильтрацию. Успешно.

Рис. 12.5. Снятие фильтрации в таблице

Задание. Попробуйте отменить фильтрацию через таблицу и через график.

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

Чтобы познакомиться с этим способом фильтрации, создадим новую сводную таблицу следующим образом (рис. 12.6):

— по строкам — товары;

— по столбцам — магазины;

— показатель — суммарное количество товаров.

Рис. 12.6. Структура сводной таблицы

Задание. Создайте сводную таблицу в соответствии с рис. 12.6.

Получаем сводную таблицу. Настроим формат вывода — целые числа. Сделаем заголовки для строк, столбцов и для таблицы в целом (рис. 12.7).

Рис. 12.7. Исходная сводная таблица

Задание. Настройте вид таблицы.

Щёлкаем по заголовку строки и в контекстном меню выбираем (рис. 12.8):

Filter — Top 10.

Звучит это как «Лучшие 10». На самом деле, мы можем указать, сколько именно лучших нас интересуют.

Рис. 12.8. Вызов фильтрации

В диалоговом окне Top 10 Filter мы указываем, что нас интересуют только три лучших значения (рис. 12.9). Нажимаем ОК. Получаем таблицу с тремя строками.

Рис. 12.9. Выбор трёх наибольших

Задание. Проведите фильтрацию, чтобы выбрать 2 наилучших значения показателя по строкам, а затем по столбцам.

Точно так же можно выбрать и наименьшие значения показателя. Для этого вызываем меню фильтрации Top 10 и указываем:

Show — Bottom — 3.

Это значит «показывать на экране только три строки с наименьшими значениями показателя».

Межд упрочим, НАИМЕНЬШИЙ может означать «наихудший», а может означать «наилучший». К примеру, если рассматривать прибыль, то хочется побольше. А вот если это задолженность по кредитам, то чем меньше — тем лучше.

Нажимаем ОК и получаем три строки с самыми маленькими цифрами (рис. 12.10).

Рис. 12.10. Выбор трёх наименьших

Задание. Проведите фильтрацию, чтобы выбрать 2 наименьших значения показателя по строкам, а затем по столбцам.

В сводной таблице могут вычислять несколько показателей. Тогда при фильтрации появляется выбор — по какому показателю отбирать лучшие или худшие значения.

Добавим в нашу таблицу вычисление второго итогового показателя (рис. 12.11). Вызываем фильтрацию и выбираем в окне Top 10 Filter стоимость в рублях.

Рис. 12.11. Выбор показателя для фильтрации

Задание. Добавьте второй показатель и проведите по нему выбор трёх наилучших, а затем трёх наихудших значений.

Ещё один способ работы с фильтрами — это раздел Filters в меню настройки полей сводной таблицы и сводного графика.

Создадим сводную таблицу такой структуры:

— Строки —Дата;

— Столбцы — Город;

— Значения — Сумма по Количеству товара;

— Фильтры — Категория товара.

Получаем сводную таблицу, где дополнительно к уже знакомым элементам появился фильтр «Категория товара» (рис. 12.12).

Рис. 12.12. Сводная таблица с фильтром

Задание. Создайте сводную таблицу с фильтром.

Теперь настроим фильтрацию. Находим в левой верхней части сводной таблицы название поля «Категория товара». Обратим внимание, что в скобках указано All, то есть пока что «выбрано всё».

Справа от названия поля «Категория товара» находится кнопка фильтрации. На ней изображён треугольник вершиной вниз. Это традиционный символ вызова выпадающего списка.

Нажимаем кнопку фильтрации и получаем список значений данного поля (рис. 12.13).

Рис. 12.13. Фильтрация по списку

Выбираем «Овощи» и «Фрукты», а для пункта «Крупы» снимаем выбор. Нажимаем ОК. Сводные показатели изменились (рис. 12.14).

Теперь вместо стрелочки появился символ фильтрации — схематичное изображение воронки.

Кроме того, здесь указано Multiple Items. Стало быть, при фильтрации отбирались несколько значений.

К сожалению, сам список выбранных значений нам не показывают. И это не очень удобно.

В следующем разделе «Срезы» мы разберёмся, как сделать фильтрацию более наглядной.

Рис. 12.14. Фильтрация по списку

Задание. Проведите фильтрацию по нескольким значениям.

Проведём фильтрацию по одному значению. Нажимаем на кнопку фильтрации с символом воронки. Выбираем только одно значение и нажимаем ОК.

Теперь фильтр сообщает нам, что он работает по значению «Фрукты».

Рис. 12.15. Фильтрация по одному значению

Задание. Проведите фильтрацию по одному значению.

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

— Axis (Categories) — Город — Магазин;

— Values — Суммарная стоимость;

— Filters — Категория товара.

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

Рис. 12.16. Фильтр сводного графика

Нажимаем на кнопку фильтрации на сводном графике. Если нужно отметить несколько значений для фильтрации, отмечаем пункт Select Multiple Items (рис. 12.17).

Рис. 12.17. Выбор нескольких пунктов

Если выбрать только одно значение, мы увидим его название в сводной таблице. А вот сводный график только покажет значок воронки, сообщая о самом факте фильтрации (рис. 12.18).

Рис. 12.18. Фильтрация по одному значению

Задание. Проведите фильтрацию на сводном графике. Обратите внимание на символ воронки и на заголовок фильтра.

13. Срезы

Выбор части исходных данных в терминологии OLAP обычно называют словом СРЕЗЫ. Английское название — SLICE. По сути, это часть многомерной «сводной таблицы». Здесь отобрали часть данных по каким-то признакам.

Можно (конечно, очень условно) сказать, что фильтры — это разновидность срезов. В пакете Excel фильтры и срезы — это два разных инструмента, хотя по смыслу и то, и другое — выделение части данных при анализе. Работа здесь может идти как с исходными данными, так и с результатами анализа (то есть с OLAP кубом).

Продолжим наш пример сводного графика и сводной таблицы. Щёлкнем по нашему графику и подведём курсор к следующему пункту верхнего меню:

Insert — Filters — Slicer;

Вставка — Фильтры — Срез.

Всплывающая подсказка поясняет, где можно использовать срезы (рис. 13.1).

Получается, что срезы здесь рассматривают как разновидность фильтра.

Рис. 13.1. Выбор среза

Задание. Вызовите подсказку по срезам и выясните, где их можно использовать.

Выбираем поля в диалоговом окне Insert Slicers (рис. 13.2). Пусть это будут названия товаров и магазины. Нажимаем ОК.

Рис. 13.2. Настройка срезов

Получаем две группы кнопок:

— «Магазин»;

— «Название товара».

Эти объекты можно перетаскивать по экрану и настраивать их размеры. Расположим поудобнее и установим такой размер, чтобы были видны все кнопки (рис. 13.3).

Обратим внимание, что кроме значений полей, в каждом окне среза есть две полезные кнопки:

— Multi-Select;

— Clear Filter.

Первоначально мы можем выделить только один элемент в списке. При нажатой кнопке Multi-Select разрешается выделять несколько элементов в текущем срезе. Простощёлкаемпокнопкам, и они добавляются к выделению.

Вторая кнопка Clear Filter очищает фильр, что есть отменяет фильтрацию и показывает итоги по всем данным.

Рис. 13.3. Два среза

Задание. Создайте два среза и настройте их расположение и размеры. Познакомьтесь с работой кнопок множественного выбора и очистки фильтра.

Срезы позволяют фильтровать данные в таблицах Excel и в сводных таблицах. Таблица Excel — это то, что создаём через вставку таблицы на рабочий лист. Она имеет заголовок и является единым объектом.

Сделаем двойной щелчок по любой ячейке сводной таблицы и «провалимся в данные». Теперь перед нами новый рабочий лист с таблицей Excel. В этой таблице — как и раньше — копия части таблицы транзакций.

Создаём срез по товарам. Выбираем несколько товаров, нажимая и удерживая клавишу Ctrl. Это второй способ множенственного выбора.

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

Рис. 13.4. Фильтрация обычной таблицы

Задание. «Провалитесь в данные» и попрактикуйтесь в создании и использовании срезов.

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

Переходим на страницу со сводным графиком и сводной таблицей. Создаём два среза — по магазинам и по товарам.

Нажимаем несколько кнопок в панелях срезов и наблюдаем изменение итоговых показателей и графика.

Обратим внимание, что символ воронки (фильтрации) появляется и в панели среза, и на графике, и в заголовке таблицы (рис. 13.5). На панели среза выбираем значения для фильтрации, а затем кнопкой «Магазин» на графике сбрасываем фильтрацию: Clear Filter.

После тренировок очищаем фильтры. Затем удаляем срезы. Для этого щёлкаем по панели среза и нажимаем клавишу Del.

Рис. 13.5. Срезы в сводной таблице и сводном графике

Задание. Постройте два среза и попрактикуйтесь в работе с ними.

Панели срезов можно настраивать, и это делает их ещё более удобным инструментом. В нашем примере получилось довольно много кнопок для выбора магазинов. Расположим наши кнопки в две колонки. Щёлкнем по любой части панели среза и обнаруживаем новый раздел в верхнем меню:

Slicer Tools — Options.

Выбираем нужное количество колонок в разделе:

Slicer Tools — Options — Buttons — Columns;

Работа со срезами — Настройки — Кнопки — Столбцы.

Попробуем расположить кнопки в две колонки (рис. 13.6).

Рис. 13.6. Настройка колонок на панели срезов

Получаем панель с двумя колонками кнопок. Тянем мышью за уголки или стороны панели и настраиваем её размеры — так чтобы все кнопки умещались целиком и чтобы не было много пустого места (рис. 13.7).

Рис. 13.7. Две колонки кнопок

Задание. Установите разное количество столбцов кнопок на панели срезов. Выберите наиболее подходящее количество колонок.

Внешний вид панели срезов тоже можно украсить, если будет такое желание. Щёлкаем по панели и выбираем в верхнем меню цвет оформления (рис. 13.8):

Slicer Tools — Options — Slicer Styles.

Кроме того, можно изменить заголовок для панели срезов:

Slicer Tools — Options — Slicer — Slicer Caption.

Рис. 13.8. Настройка панели срезов

Задание. Настройте оформление и заголовок панели срезов.

14. Шкала времени

Фильтрация (выборка) данных в зависимости времени — это особая разновидность фильтра (среза). В Excel этот инструмент называется Timeline — Шкала времени или Ось времени.

Построим шкалу времени и поработаем с ней. Щёлкаем по сводному графику или по любой ячейке в сводной таблице. Подводим курсор к следующему пункту верхнего меню:

— Insert — Filters — Timeline;

— Вставка — Фильтры — Ось времени.

Читаем всплывающую подсказку.

Рис. 14.1. Выбор шкалы времени

Задание. Прочитайте всплывающую подсказку для Шкалы времени и выясните, где можно её применить.

Нажимаем на Timeline и получаем диалоговое окно Insert Timelines (рис. 14.2).

Для построения шкалы времени Excel может использовать поля, которые имеют формат даты. В нашем случае в таблице транзакций есть всего одно такое поле — «Дата».

Выбираем поле «Дата» и нажимаем ОК.

Рис. 14.2. Вставка Шкалы времени

Получаем панель среза по времени (рис. 14.3). Здесь мы видим годы и месяцы. Можно установить и другие варианты фильтрации (выборки) по времени:

— YEARS — годы;

— QUARTERS — кварталы;

— MONTHS — месяцы;

— DAYS — дни.

Сообщение All Periods в левой верхней части панели говорит нам, что сейчас выбраны все имеющиеся периоды времени.

Рис. 14.3. Шкала времени по месяцам

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

Шкала времени позволяет выбрать нужный период времени. Выделим на шкале несколько месяцев. Таблица и график перестраиваются автоматически (рис. 14.5).

Чтобы выделить интервал времени, нужно провести курсором по нужному периоду на оси при нажатой левой кнопке мыши. Можно также перетащить границы интервала с помощью мышки.

Чтобы отменить фильтрацию, нажимаем кнопку Clear Filter в правом верхнем углу шкалы времени.

Рис. 14.5. Фильтрация по времени

Задание. Познакомьтесь с фильтрацией по времени, устанавливая разные периоды для шкалы.

Заключение

В данной работе мы начали знакомство с инструментами бизнес-аналитики на примере сводных таблиц Excel. Электронные таблицы — это по существу интерфейс к базам и хранилищам данных. И соответственно, к OLAP кубам.

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

Для дальнейшего знакомства с предметом бизнес-аналитики есть несколько книг на русском языке [1—3, 8, 9]. И конечно же, можно найти много англоязычной литературы.

Задание. Просмотрите оглавление учебников по бизнес-аналитике и найдите упоминание основных инструментов, рассмотренных в даной работе.

Благодарности

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

Следующие студенты активно помогали в проработке материала и составлении чернового варианта:

— Корнеева Мария

— Кострюкова Анна

— Токарева Татьяна

— Муслимов Роберт

В тестировании учебных материалов, выявлении упущенных моментов и оценке трудоёмкости участвовали следующие студенты:

— Яковлева Виктория

— Исхаков Радмир

— Халиков Ильшат

— Мурадян Гарик

— Мухаметьянова Ольга

— Хайретдинова Ирина

— Макаров Владислав

— Макрушин Константин

— Портнов Владислав

Литература

1. Уокенбах Дж. Microsoft Excel 2013. Библия пользователя. — М.: Диалектика, 2015. — 928 с.

2. Джелен Б., Александер М. Сводные таблицы в Microsoft Excel 2013. — М.: Вильямс, 2014.— 448 с.

3. Винстон У. Л. Microsoft Excel 2013. Анализ данных и бизнес-моделирование. — СПб.: БХВ-Петербург, 2015.— 864 с.

4. Арьков В. Ю. Анализ распределения в Excel: Учебное пособие. — [б. м.]: Издательские решения, 2019. — 158 с.

Режим доступа:

https://ridero.ru/books/analiz_raspredeleniya_v_excel/

5. Арьков В. Ю. Статистический анализ взаимосвязи в Excel: Учебное пособие. — [б. м.]: Издательские решения, 2019. — 146 с.

Режим доступа:

https://ridero.ru/books/statisticheskii_analiz_vzaimosvyazi_v_excel/

6. Арьков В. Ю. Анализ рядов динамики в Excel: Учебное пособие. — [б. м.]: Издательские решения, 2020. — 130 с.

Режим доступа:

https://ridero.ru/books/analiz_ryadov_dinamiki_v_excel/

7. Теория статистики: учебник / Р. А. Шмойлова, В. Г. Минашкин, Н. А. Садовникова, Е. Б. Шувалова; под ред. Р. А. Шмойловой. — М.: Финансы и статистика, 2014. — 656 с.

8. Паклин Н.Б, Орешков В. И. Бизнес-аналитика — от данных к знаниям: Учебное пособие. — СПб.: Питер, 2013. — 704 с.

9. Барсегян А. А. Анализ данных и процессов: учеб. пособие / А. А. Барсегян, М. С. Куприянов, И. И. Холод, М. Д. Тесс, С. И. Елизаров. — СПб.: БХВ-Петербург, 2009. — 512 с.

Выпуски

Данное учебное пособие входит в серию книг по статистике и бизнес-аналитике. На сегодняшний день автором подготовлено пять выпусков. Каждое пособие предназначено для самостоятельного освоения одного из ключевых разделов дисциплины «Бизнес-аналитика и статистика».

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

Выпуск 1. Анализ распределения. Описательная статистика. В этом выпуске мы рассмотрели методы анализа распределения с помощью сводки и группировки данных, а также статистических показателей.

Выпуск 2. Корреляция и регрессия. Статистическое изучение взаимосвязи. Соответствующий раздел предмета: «Взаимосвязь явлений», «Фондовые индексы». Мы узнаем, что прямую линию можно провести через любое количество точек, если делать это «в среднем». А ещё нам предстоит выяснить, как связаны между собой различные отрасли экономики — если посмотреть на них глазами Московской биржи.

Выпуск 3. Динамика. Компоненты рядов динамики. Скользящие средние. Уравнение и линия тренда. Соответствующий раздел предмета: «Динамика». Здесь мы рассмотрим составные части динамики (изменения во времени) и биржевые графики, на которых наносят общую тенденцию (тренд).

Выпуск 4. Сводные таблицы. Соответствующий раздел предмета: «Бизнес-аналитика». Это одновременно и самый простой, и самый сложный раздел, потому что настройка таблиц делается визуально, через меню, а внутри спрятаны уже изученные статистические методы: сводка и группировка, показатели, взаимосвязь, динамика и т. д. Снаружи мы в конечном счёте увидим «приборную панель» руководителя предприятия — такую же, как приборная панель автомобиля. И сводные графики — это первый шаг к такой информационной панели.

Выпуск 5. Гистограммы в управлении качеством. Мы обсудим проблему управления качеством производства. Подробно рассмотрим грамотное построение гистограмм и их применение в управлении качеством производства. Гистограмму относят к самым простым и самым эффективным инструментам системы качества — с начала развития массового, серийного производства (то есть около ста лет).

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

Все выпуски доступны для бесплатного скачивания на сайте издательства «Ридеро».

Читатели также могут выразить благодарность и поддержать благородные начинания автора, приобретая книги на сайте «Ридеро» ПО ЦЕНЕ ЧИТАТЕЛЯ.

Прощальное задание. Найдите на сайте Ридеро объяснение, что такое «Цена читателя».

Content

Бизнес-аналитика. Сводные таблицы. Часть 1
Учебное пособие
Валентин Юльевич Арьков

Введение

1. Цель и задачи работы

2. Отчёт

3. Варианты заданий

4. Надстройка «Анализ данных»

5. Имитационное моделирование

5.1. Даты

5.2. Справочники

5.3. Транзакции

6. Создание сводной таблицы

6.1. Первая сводная таблица

6.2. Измерения и меры

6.3. Агрегирование данных

6.4. Обновление сводной таблицы

7. Иерархия

7.1. Создание иерархии

7.2. Детализация уровней

7.3. Неудачная иерархия

7.4. «Проваливаемся» в данные

8. Шаблоны сводных таблиц

9. Группировка дат

10. Анализ биржевых данных

11. Сводные графики

12. Фильтры

13. Срезы

14. Шкала времени

Заключение

Благодарности

Литература

Выпуски