При упоминании баз данных (БД) первым делом, конечно, в голову приходят всякие умные слова типа SQL, Oracle, 1С или хотя бы Access. Безусловно, это очень мощные (и недешевые в большинстве своем) программы, способные автоматизировать работу большой и сложной компании с кучей данных. Беда в том, что иногда такая мощь просто не нужна. Ваш бизнес может быть небольшим и с относительно несложными бизнес-процессами, но автоматизировать его тоже хочется. Причем именно для маленьких компаний это, зачастую, вопрос выживания.
Для начала давайте сформулируем ТЗ. В большинстве случаев база данных для учета, например, классических продаж должна уметь:
- хранить в таблицах информацию по товарам (прайс), совершенным сделкам и клиентам и связывать эти таблицы между собой
- иметь удобные формы ввода данных (с выпадающими списками и т.п.)
- автоматически заполнять этими данными какие-то печатные бланки (платежки, счета и т.д.)
- выдавать необходимые вам отчеты для контроля всего бизнес-процесса с точки зрения руководителя
Со всем этим вполне может справиться Microsoft Excel, если приложить немного усилий. Давайте попробуем это реализовать.
Шаг 1. Исходные данные в виде таблиц
Информацию о товарах, продажах и клиентах будем хранить в трех таблицах (на одном листе или на разных — все равно). Принципиально важно, превратить их в «умные таблицы» с автоподстройкой размеров, чтобы не думать об этом в будущем. Это делается с помощью команды Форматировать как таблицу на вкладке Главная (Home — Format as Table). На появившейся затем вкладке Конструктор (Design) присвоим таблицам наглядные имена в поле Имя таблицы для последующего использования:
Итого у нас должны получиться три «умных таблицы»:
Обратите внимание, что таблицы могут содержать дополнительные уточняющие данные. Так, например, наш Прайс содержит дополнительно информацию о категории (товарной группе, упаковке, весу и т.п.) каждого товара, а таблица Клиенты — город и регион (адрес, ИНН, банковские реквизиты и т.п.) каждого из них.
Таблица Продажи будет использоваться нами впоследствии для занесения в нее совершенных сделок.
Шаг 2. Создаем форму для ввода данных
Само-собой, можно вводить данные о продажах непосредственно в зеленую таблицу Продажи, но это не всегда удобно и влечет за собой появление ошибок и опечаток из-за «человеческого фактора». Поэтому лучше будет на отдельном листе сделать специальную форму для ввода данных примерно такого вида:
В ячейке B3 для получения обновляемой текущей даты-времени используем функцию ТДАТА (NOW). Если время не нужно, то вместо ТДАТА можно применить функцию СЕГОДНЯ (TODAY).
В ячейке B11 найдем цену выбранного товара в третьем столбце умной таблицы Прайс с помощью функции ВПР (VLOOKUP). Если раньше с ней не сталкивались, то сначала почитайте и посмотрите видео тут.
В ячейке B7 нам нужен выпадающий список с товарами из прайс-листа. Для этого можно использовать команду Данные — Проверка данных (Data — Validation), указать в качестве ограничения Список (List) и ввести затем в поле Источник (Source) ссылку на столбец Наименование из нашей умной таблицы Прайс:
Аналогичным образом создается выпадающий список с клиентами, но источник будет уже:
=ДВССЫЛ(«Клиенты[Клиент]»)
Функция ДВССЫЛ (INDIRECT) нужна, в данном случае, потому что Excel, к сожалению, не понимает прямых ссылок на умные таблицы в поле Источник. Но та же ссылка «завернутая» в функцию ДВССЫЛ работает при этом «на ура» (подробнее об этом было в статье про создание выпадающих списков с наполнением).
Шаг 3. Добавляем макрос ввода продаж
После заполнения формы нужно введенные в нее данные добавить в конец таблицы Продажи. Сформируем при помощи простых ссылок строку для добавления прямо под формой:
Т.е. в ячейке A20 будет ссылка =B3, в ячейке B20 ссылка на =B7 и т.д.
Теперь добавим элементарный макрос в 2 строчки, который копирует созданную строку и добавляет ее к таблице Продажи. Для этого жмем сочетание Alt+F11 или кнопку Visual Basic на вкладке Разработчик (Developer). Если эту вкладку не видно, то включите ее сначала в настройках Файл — Параметры — Настройка ленты (File — Options — Customize Ribbon). В открывшемся окне редактора Visual Basic вставляем новый пустой модуль через меню Insert — Module и вводим туда код нашего макроса:
Sub Add_Sell() Worksheets("Форма ввода").Range("A20:E20").Copy 'копируем строчку с данными из формы n = Worksheets("Продажи").Range("A100000").End(xlUp).Row 'определяем номер последней строки в табл. Продажи Worksheets("Продажи").Cells(n + 1, 1).PasteSpecial Paste:=xlPasteValues 'вставляем в следующую пустую строку Worksheets("Форма ввода").Range("B5,B7,B9").ClearContents 'очищаем форму End Sub
Теперь можно добавить к нашей форме кнопку для запуска созданного макроса, используя выпадающий список Вставить на вкладке Разработчик (Developer — Insert — Button):
После того, как вы ее нарисуете, удерживая нажатой левую кнопку мыши, Excel сам спросит вас — какой именно макрос нужно на нее назначить — выбираем наш макрос Add_Sell. Текст на кнопке можно поменять, щелкнув по ней правой кнопкой мыши и выбрав команду Изменить текст.
Теперь после заполнения формы можно просто жать на нашу кнопку, и введенные данные будут автоматически добавляться к таблице Продажи, а затем форма очищается для ввода новой сделки.
Шаг 4. Связываем таблицы
Перед построением отчета свяжем наши таблицы между собой, чтобы потом можно было оперативно вычислять продажи по регионам, клиентам или категориям. В старых версиях Excel для этого потребовалось бы использовать несколько функций ВПР (VLOOKUP) для подстановки цен, категорий, клиентов, городов и т.д. в таблицу Продажи. Это требует времени и сил от нас, а также «кушает» немало ресурсов Excel. Начиная с Excel 2013 все можно реализовать существенно проще, просто настроив связи между таблицами.
Для этого на вкладке Данные (Data) нажмите кнопку Отношения (Relations). В появившемся окне нажмите кнопку Создать (New) и выберите из выпадающих списков таблицы и названия столбцов, по которым они должны быть связаны:
Важный момент: таблицы нужно задавать именно в таком порядке, т.е. связанная таблица (Прайс) не должна содержать в ключевом столбце (Наименование) повторяющихся товаров, как это происходит в таблице Продажи. Другими словами, связанная таблица должна быть той, в которой вы искали бы данные с помощью ВПР, если бы ее использовали.
Само-собой, аналогичным образом связываются и таблица Продажи с таблицей Клиенты по общему столбцу Клиент:
После настройки связей окно управления связями можно закрыть, повторять эту процедуру уже не придется.
Шаг 5. Строим отчеты с помощью сводной
Теперь для анализа продаж и отслеживания динамики процесса, сформируем для примера какой-нибудь отчет с помощью сводной таблицы. Установите активную ячейку в таблицу Продажи и выберите на ленте вкладку Вставка — Сводная таблица (Insert — Pivot Table). В открывшемся окне Excel спросит нас про источник данных (т.е. таблицу Продажи) и место для выгрузки отчета (лучше на новый лист):
Жизненно важный момент состоит в том, что нужно обязательно включить флажок Добавить эти данные в модель данных (Add data to Data Model) в нижней части окна, чтобы Excel понял, что мы хотим строить отчет не только по текущей таблице, но и задействовать все связи.
После нажатия на ОК в правой половине окна появится панель Поля сводной таблицы, где нужно щелкнуть по ссылке Все, чтобы увидеть не только текущую, а сразу все «умные таблицы», которые есть в книге.А затем можно, как и в классической сводной таблице, просто перетащить мышью нужные нам поля из любых связанных таблиц в области Фильтра, Строк, Столбцов или Значений — и Excel моментально построит любой нужный нам отчет на листе:
Не забудьте, что сводную таблицу нужно периодически (при изменении исходных данных) обновлять, щелкнув по ней правой кнопкой мыши и выбрав команду Обновить (Refresh), т.к. автоматически она этого делать не умеет.
Также, выделив любую ячейку в сводной и нажав кнопку Сводная диаграмма (Pivot Chart) на вкладке Анализ (Analysis) или Параметры (Options) можно быстро визуализировать посчитанные в ней результаты.
Шаг 6. Заполняем печатные формы
Еще одной типовой задачей любой БД является автоматическое заполнение различных печатных бланков и форм (накладные, счета, акты и т.п.). Про один из способов это сделать, я уже как-то писал. Здесь же реализуем, для примера, заполнение формы по номеру счета:
Предполагается, что в ячейку C2 пользователь будет вводить число (номер строки в таблице Продажи, по сути), а затем нужные нам данные подтягиваются с помощью уже знакомой функции ВПР (VLOOKUP) и функции ИНДЕКС (INDEX).
Ссылки по теме
- Как использовать функцию ВПР (VLOOKUP) для поиска и подстановки значений
- Как заменить ВПР функциями ИНДЕКС и ПОИСКПОЗ
- Автоматическое заполнение форм и бланков данными из таблицы
- Создание отчетов с помощью сводных таблиц
Загрузить PDF
Загрузить PDF
Из этой статьи вы узнаете, как в Microsoft Excel автоматизировать создание отчетов о данных. Здесь описывается, как в таблице Excel запросить данные из внешнего источника (MySQL, Postgres, Oracle и так далее) и создать отчет с помощью специального плагина, который свяжет таблицу Excel с внешними источниками данных.
Чтобы создать отчет о данных в таблице Excel, воспользуемся макросом, который к тому же позволяет сохранять отчеты в различных файловых форматах одним нажатием клавиши. Имейте в виду, что в Excel встроена функция, которая позволяет создавать макросы без необходимости писать программный код.
-
1
Если данные, о которых необходимо составить отчет, уже находятся в таблице Excel, автоматизируйте процесс создания отчета с помощью макросов. Макросы поддерживаются встроенной в Excel функцией, которая позволяет автоматизировать сложные и повторяющиеся задачи.
-
2
Запустите Excel. Дважды щелкните (или просто щелкните на компьютере Mac) по значку в виде белой буквы «Х» на зеленом фоне, а затем нажмите «Пустая книга» на странице шаблонов.
- На компьютере Mac вам, возможно, придется нажать «Файл» > «Пустая книга».
- Если у вас уже есть отчет Excel, который нужно автоматизировать, дважды щелкните по файлу отчета, чтобы открыть его в Excel.
-
3
Введите данные своей электронной таблицы, если необходимо. Если вы еще не добавили заголовки столбцов и числа, о которых нужно составить отчет, сделайте это сейчас.
-
4
Активируйте меню Разработчик. По умолчанию это меню не отображается в верхней части окна Excel. Чтобы включить меню «Разработчик»:
-
Windows — нажмите «Файл» > «Параметры» > «Настроить ленту» (на левой панели), установите флажок у «Разработчик» в нижнем правом углу (если вы не видите эту опцию, прокрутите страницу вниз), а затем нажмите «ОК».[1]
-
Mac — нажмите «Excel» > «Параметры» > «Лента и панель инструментов», установите флажок у «Разработчик» в списке «Основные», а затем нажмите «Сохранить».[2]
-
Windows — нажмите «Файл» > «Параметры» > «Настроить ленту» (на левой панели), установите флажок у «Разработчик» в нижнем правом углу (если вы не видите эту опцию, прокрутите страницу вниз), а затем нажмите «ОК».[1]
-
5
Нажмите Разработчик. Вы найдете эту вкладку вверху окна Excel. Откроется панель инструментов «Разработчик».
-
6
Щелкните по Запись макроса. Это опция на панели инструментов. Появится всплывающее окно.
-
7
Введите имя макроса. Сделайте это в текстовом поле «Имя макроса». Так впоследствии вам будет проще определить, что это за макрос.
- Например, если макрос будет строить график на основе доступных данных, назовите его «График1» или как-то аналогично.
-
8
Создайте сочетание клавиш для запуска макроса. Нажмите клавишу ⇧ Shift, а затем нажмите другую клавишу (например, T), чтобы создать сочетание клавиш.
- На компьютере Mac сочетанием клавиш будет ⌥ Option+⌘ Command и еще одна клавиша (например, ⌥ Option+⌘ Command+T).
-
9
Сохраните макрос в открытой таблице Excel. Для этого нажмите «Сохранить в» и в меню выберите «Эта книга», чтобы макрос был доступен для всех, кто откроет данную таблицу.
- Файл Excel нужно сохранить в специальном формате с поддержкой макросов.
-
10
Щелкните по OK. Это кнопка внизу окна. Настройки макроса будут сохранены и включится режим записи. С этого момента все ваши действия будут записываться (до момента, когда вы остановите запись).
-
11
Выполните действия, которые хотите автоматизировать. Excel будет отслеживать каждый щелчок, каждое нажатие клавиши и введенные параметры форматирования; все это будет вносится в список макроса.
- Например, чтобы выбрать данные и создать диаграмму, выделите нужные данные, нажмите «Вставка» в верхней части окна Excel, выберите тип диаграммы и отредактируйте диаграмму так, как нужно.
- Другой пример: чтобы создать макрос для построения графика из данных, которые находятся в ячейках с A1 по A12, щелкните по пустой ячейке, введите =СУММ(A1:A12) и нажмите ↵ Enter.
-
12
Щелкните по Остановить запись. Эта опция находится на панели инструментов «Разработчик». Запись будет остановлена, а все ваши действия, которые вы совершили во время записи, будут сохранены в виде отдельного макроса.
-
13
Сохраните таблицу Excel как файл с поддержкой макросов. Нажмите «Файл» > «Сохранить как» и измените формат файла на «xlsm» (вместо «xls»). Затем введите имя файла, выберите папку для его сохранения и нажмите «Сохранить».
- Если не сделать этого, макрос не будет сохранен как часть электронной таблицы, то есть им не смогут пользоваться другие люди на других компьютерах.
-
14
Запустите макрос. Для этого нажмите сочетание клавиш, выбранное при создании макроса. Будут выполнены процессы, записанные в макросе.
- Также, чтобы запустить макрос, можно нажать «Макросы» на вкладке «Разработчик», выбрать имя макроса и нажать «Выполнить».
Реклама
-
1
Скачайте плагин Kloudio. С его помощью вашу таблицу Excel можно соединить с внешней базой данных или источником данных. Этот плагин также работает с Google Таблицами.
-
2
Cоедините свою таблицу с внешним источником данных. Для этого нажмите кнопку «+» на портале Kloudio. Введите информацию о своей базе данных (тип базы данных, учетные данные) и выберите параметры безопасности/шифрования, если работаете с конфиденциальными данными или данными компании.
-
3
Когда ваша таблица будет соединена с базой данных, запрашивать внешние данные и создавать отчеты можно будет непосредственно в Excel. Создайте отчет на портале Kloudio, а затем выберите его в меню Excel. Затем примените дополнительные фильтры и задайте периодичность обновления отчета (чтобы таблица автоматически обновлялась каждую неделю, день или даже час).
-
4
Более того, вводить данные можно в подключенную таблицу и обновлять данные во внешнем источнике данных. Создайте шаблон загрузки на портале Kloudio и получите возможность вручную или автоматически загружать изменения, сделанные в вашей электронной таблице, во внешний источник данных.
Реклама
Советы
- Загружайте плагины Excel только с сайта Microsoft AppSource, если не доверяете сторонним разработчикам.
- Макросы можно использовать для автоматизации как простых задач (например, для добавления значений или создания диаграмм), так и сложных (например, для вычисления значений в ячейках, создания диаграммы на основе результатов вычислений, маркировки диаграммы и печати полученного результата).
- Если открыть электронную таблицу с макросом, вам, возможно, придется нажать «Включить содержимое» на желтой полосе в верхней части окна, чтобы получить возможность пользоваться макросом.
Реклама
Предупреждения
- В макрос добавятся абсолютно все действия, которые вы выполните в режиме записи. Поэтому не вводите ошибочные значения, не запускайте ненужные программы и не удаляйте файлы.
- Макросы могут быть вредоносными (например, созданные, чтобы удалять файлы на компьютере). Не запускайте макросы, которые получены из ненадежных источников.
Реклама
Об этой статье
Эту страницу просматривали 23 124 раза.
Была ли эта статья полезной?
Многие пользователи активно применяют Excel для генерирования отчетов, их последующей редакции. Для удобного просмотра информации и получения полного контроля при управлении данными в процессе работы с программой.
Внешний вид рабочей области программы – таблица. А реляционная база данных структурирует информацию в строки и столбцы. Несмотря на то что стандартный пакет MS Office имеет отдельное приложение для создания и ведения баз данных – Microsoft Access, пользователи активно используют Microsoft Excel для этих же целей. Ведь возможности программы позволяют: сортировать; форматировать; фильтровать; редактировать; систематизировать и структурировать информацию.
То есть все то, что необходимо для работы с базами данных. Единственный нюанс: программа Excel — это универсальный аналитический инструмент, который больше подходит для сложных расчетов, вычислений, сортировки и даже для сохранения структурированных данных, но в небольших объемах (не более миллиона записей в одной таблице, у версии 2010-го года выпуска ).
Структура базы данных – таблица Excel
База данных – набор данных, распределенных по строкам и столбцам для удобного поиска, систематизации и редактирования. Как сделать базу данных в Excel?
Вся информация в базе данных содержится в записях и полях.
Запись – строка в базе данных (БД), включающая информацию об одном объекте.
Поле – столбец в БД, содержащий однотипные данные обо всех объектах.
Записи и поля БД соответствуют строкам и столбцам стандартной таблицы Microsoft Excel.
Если Вы умеете делать простые таблицы, то создать БД не составит труда.
Создание базы данных в Excel: пошаговая инструкция
Пошаговое создание базы данных в Excel. Перед нами стоит задача – сформировать клиентскую БД. За несколько лет работы у компании появилось несколько десятков постоянных клиентов. Необходимо отслеживать сроки договоров, направления сотрудничества. Знать контактных лиц, данные для связи и т.п.
Как создать базу данных клиентов в Excel:
- Вводим названия полей БД (заголовки столбцов).
- Вводим данные в поля БД. Следим за форматом ячеек. Если числа – то числа во всем столбце. Данные вводятся так же, как и в обычной таблице. Если данные в какой-то ячейке – итог действий со значениями других ячеек, то заносим формулу.
- Чтобы пользоваться БД, обращаемся к инструментам вкладки «Данные».
- Присвоим БД имя. Выделяем диапазон с данными – от первой ячейки до последней. Правая кнопка мыши – имя диапазона. Даем любое имя. В примере – БД1. Проверяем, чтобы диапазон был правильным.
Основная работа – внесение информации в БД – выполнена. Чтобы этой информацией было удобно пользоваться, необходимо выделить нужное, отфильтровать, отсортировать данные.
Как вести базу клиентов в Excel
Чтобы упростить поиск данных в базе, упорядочим их. Для этой цели подойдет инструмент «Сортировка».
- Выделяем тот диапазон, который нужно отсортировать. Для целей нашей выдуманной компании – столбец «Дата заключения договора». Вызываем инструмент «Сортировка».
- При нажатии система предлагает автоматически расширить выделенный диапазон. Соглашаемся. Если мы отсортируем данные только одного столбца, остальные оставим на месте, то информация станет неправильной. Открывается меню, где мы должны выбрать параметры и значения сортировки.
Данные в таблице распределились по сроку заключения договора.
Теперь менеджер видит, с кем пора перезаключить договор. А с какими компаниями продолжаем сотрудничество.
БД в процессе деятельности фирмы разрастается до невероятных размеров. Найти нужную информацию становится все сложнее. Чтобы отыскать конкретный текст или цифры, можно воспользоваться одним из следующих способов:
- Одновременным нажатием кнопок Ctrl + F или Shift + F5. Появится окно поиска «Найти и заменить».
- Функцией «Найти и выделить» («биноклем») в главном меню.
Посредством фильтрации данных программа прячет всю не интересующую пользователя информацию. Данные остаются в таблице, но невидимы. В любой момент их можно восстановить.
В программе Excel чаще всего применяются 2 фильтра:
- Автофильтр;
- фильтр по выделенному диапазону.
Автофильтр предлагает пользователю выбрать параметр фильтрации из готового списка.
- На вкладке «Данные» нажимаем кнопку «Фильтр».
- После нажатия в шапке таблицы появляются стрелки вниз. Они сигнализируют о включении «Автофильтра».
- Чтобы выбрать значение фильтра, щелкаем по стрелке нужного столбца. В раскрывающемся списке появляется все содержимое поля. Если хотим спрятать какие-то элементы, сбрасываем птички напротив их.
- Жмем «ОК». В примере мы скроем клиентов, с которыми заключали договоры в прошлом и текущем году.
- Чтобы задать условие для фильтрации поля типа «больше», «меньше», «равно» и т.п. числа, в списке фильтра нужно выбрать команду «Числовые фильтры».
- Если мы хотим видеть в таблице клиентов, с которыми заключили договор на 3 и более лет, вводим соответствующие значения в меню пользовательского автофильтра.
Готово!
Поэкспериментируем с фильтрацией данных по выделенным ячейкам. Допустим, нам нужно оставить в таблице только те компании, которые работают в Беларуси.
- Выделяем те данные, информация о которых должна остаться в базе видной. В нашем случае находим в столбце страна – «РБ». Щелкаем по ячейке правой кнопкой мыши.
- Выполняем последовательно команду: «фильтр – фильтр по значению выделенной ячейки». Готово.
Если в БД содержится финансовая информация, можно найти сумму по разным параметрам:
- сумма (суммировать данные);
- счет (подсчитать число ячеек с числовыми данными);
- среднее значение (подсчитать среднее арифметическое);
- максимальные и минимальные значения в выделенном диапазоне;
- произведение (результат умножения данных);
- стандартное отклонение и дисперсия по выборке.
Порядок работы с финансовой информацией в БД:
- Выделить диапазон БД. Переходим на вкладку «Данные» — «Промежуточные итоги».
- В открывшемся диалоге выбираем параметры вычислений.
Инструменты на вкладке «Данные» позволяют сегментировать БД. Сгруппировать информацию с точки зрения актуальности для целей фирмы. Выделение групп покупателей услуг и товаров поможет маркетинговому продвижению продукта.
Готовые образцы шаблонов для ведения клиентской базы по сегментам.
- Шаблон для менеджера, позволяющий контролировать результат обзвона клиентов. Скачать шаблон для клиентской базы Excel. Образец:
- Простейший шаблон.Клиентская база в Excel скачать бесплатно. Образец:
Шаблоны можно подстраивать «под себя», сокращать, расширять и редактировать.
Базы данных (БД) — набор упорядоченной информации, которая хранится в одном месте. Их создают, чтобы быстро находить, систематизировать и редактировать нужные данные, а при необходимости собирать их в отчёт или показывать в виде диаграммы.
Специализированных программ для формирования и ведения баз данных много. В том же MS Office для этого есть отдельное приложение — Microsoft Access. Но и в Excel достаточно возможностей для создания простых баз и удобного управления ими. Есть ограничение — количество строк базы данных в Excel не должно быть больше одного миллиона.
В статье разберёмся:
- как выглядит база данных в Excel;
- как её создать и настроить;
- как работать с готовой базой данных в Excel — фильтровать, сортировать и искать записи.
База данных в Excel — таблица с информацией. Она состоит из однотипных строк — записей базы данных. Записи распределены по столбцам — полям базы данных.
Скриншот: Excel / Skillbox Media
Названия полей — шапка таблицы — определяют структуру базы данных. Они показывают, какую информацию содержит база. В примере выше это имя менеджера автосалона, дата продажи, модель и характеристики автомобиля, который он продал.
Каждая запись — строка таблицы — относится к одному объекту базы данных и содержит информацию о нём. В нашем примере записи характеризуют продажи, совершённые менеджерами автосалона.
При создании базы данных нельзя оставлять промежуточные строки полностью пустыми, как на скриншоте ниже. Так база теряет свою целостность — в таком виде ей нельзя управлять как единым объектом.
Скриншот: Excel / Skillbox Media
Разберём пошагово, как создать базу данных из примера выше и управлять ей.
Создаём структуру базы данных
Выше мы определили, что структуру базы данных определяют названия полей (шапка таблицы).
Задача для нашего примера — создать базу данных, в которой будут храниться все данные о продажах автомобилей менеджерами автосалона. Каждая запись базы — одна продажа, поэтому названия полей БД будут такими:
- «Менеджер»;
- «Дата продажи»;
- «Марка, модель»;
- «Цвет»;
- «Год выпуска»;
- «Объём двигателя, л»;
- «Цена, руб.».
Введём названия полей в качестве заголовков столбцов и отформатируем их так, чтобы они визуально отличались от дальнейших записей.
Скриншот: Excel / Skillbox Media
Создаём записи базы данных
В нашем примере запись базы данных — одна продажа. Перенесём в таблицу всю имеющуюся информацию о продажах.
При заполнении ячеек с записями важно придерживаться одного стиля написания. Например, Ф. И. О. менеджеров во всех строках вводить в виде «Иванов И. И.». Если где-то написать «Иван Иванов», то дальше в работе с БД будут возникать ошибки.
Скриншот: Excel / Skillbox Media
На этом же этапе важно проконтролировать, подходит ли формат ячеек данным в них. По умолчанию все ячейки получают общий формат. Чтобы в дальнейшем базой данных было удобнее пользоваться, можно изменить формат там, где это нужно.
В нашем примере данные в столбцах A, C и D должны быть в текстовом формате. Данные столбца B должны быть в формате даты — его Excel определил и присвоил автоматически. Данные столбцов E, F — в числовом формате, столбца G — в финансовом.
Чтобы изменить формат ячейки, выделим нужный столбец, кликнем правой кнопкой мыши и выберем «Формат ячеек».
Скриншот: Excel / Skillbox Media
В появившемся меню выберем нужный формат и настроим его. В нашем примере для ячейки «Цена, руб.» выберем финансовый формат, уберём десятичные знаки (знаки после запятой) и выключим отображение символа ₽.
Скриншот: Excel / Skillbox Media
Также изменить формат можно на панели вкладки «Главная».
Скриншот: Excel / Skillbox Media
Присваиваем базе данных имя
Для этого выделим все поля и записи базы данных, включая шапку. Нажмём правой кнопкой мыши и выберем «Имя диапазона».
Скриншот: Excel / Skillbox Media
В появившемся окне вводим имя базы данных без пробелов.
Скриншот: Excel / Skillbox Media
Готово — мы внесли в базу данных информацию о продажах и отформатировали её. В следующем разделе разберёмся, как с ней работать.
Скриншот: Excel / Skillbox Media
Сейчас в созданной базе данных все записи расположены хаотично — не упорядочены ни по датам, ни по фамилиям менеджеров. Разберёмся, как привести БД в более удобный для работы вид. Все необходимые для этого функции расположены на вкладке «Данные».
Скриншот: Excel / Skillbox Media
Для начала добавим фильтры. Это инструмент, с помощью которого из большого объёма информации выбирают и показывают только нужную в данный момент.
Подробнее о фильтрах в Excel говорили в этой статье Skillbox Media.
Выберем любую ячейку из базы данных и на вкладке «Данные» нажмём кнопку «Фильтры».
Скриншот: Excel / Skillbox Media
В каждой ячейке шапки таблицы появились кнопки со стрелками.
Предположим, нужно показать только сделки менеджера Тригубова М. — нажмём на стрелку поля «Менеджер» и оставим галочку только напротив него. Затем нажмём «Применить фильтр».
Скриншот: Excel / Skillbox Media
Готово — в базе отражены данные о продажах только одного менеджера. На кнопке со стрелкой появился дополнительный значок. Он означает, что в этом столбце настроена фильтрация. Чтобы её снять, нужно нажать на этот дополнительный значок и выбрать «Очистить фильтр».
Скриншот: Excel / Skillbox Media
Записи БД можно фильтровать по нескольким параметрам одновременно. Для примера покажем среди продаж Тригубова М. только автомобили дешевле 2 млн рублей.
Для этого в уже отфильтрованной таблице откроем меню фильтра для столбца «Цена, руб.» и нажмём на параметр «Выберите». В появившемся меню выберем параметр «Меньше».
Скриншот: Excel / Skillbox Media
Затем в появившемся окне дополним условие фильтрации — в нашем случае «Меньше 2000000» — и нажмём «Применить фильтр».
Скриншот: Excel / Skillbox Media
Готово — фильтрация сработала по двум параметрам. Теперь БД показывает только те проданные менеджером авто, цена которых ниже 2 млн рублей.
Скриншот: Excel / Skillbox Media
Кроме этого, в Excel можно установить расширенный фильтр. Он позволяет фильтровать БД по сложным критериям сразу в нескольких столбцах. Подробно о том, как настроить расширенный фильтр, говорили в статье.
Сортировка — инструмент, с помощью которого данные в БД организовывают в необходимом порядке. Их можно сортировать по алфавиту, по возрастанию и убыванию чисел, по дате.
Для примера отсортируем сделки выбранного менеджера в хронологическом порядке — по датам. Для этого выделим любую ячейку в поле «Дата продажи» и нажмём кнопку «Сортировка».
Скриншот: Excel / Skillbox Media
В появившемся окне выберем параметр сортировки «От старых к новым» и нажмём «ОК».
Скриншот: Excel / Skillbox Media
Готово — теперь все сделки менеджера даны в хронологическом порядке.
Скриншот: Excel / Skillbox Media
То же самое можно сделать другим способом — выбрать любую ячейку столбца, который нужно отсортировать, и нажать на одну из двух кнопок рядом с кнопкой «Сортировка»: «Сортировка от старых к новым» или «Сортировка от новых к старым». В этом случае данные отсортируются без вызова дополнительных окон.
Скриншот: Excel / Skillbox Media
Кроме стандартной сортировки в Excel, можно настроить сортировку по критериям, выбранным пользователем. Эта функция полезна, когда нужные критерии не предусмотрены стандартными настройками. Например, если требуется отсортировать данные по должностям сотрудников или по названиям отделов.
Подробнее о пользовательской сортировке в Excel говорили в этой статье Skillbox Media.
В процессе работы базы данных могут разрастись до миллиона строк — найти нужную информацию станет сложнее. Фильтрация и сортировка не всегда упрощают задачу. В этом случае для быстрого поиска нужной ячейки — текста или цифры — можно воспользоваться функцией поиска.
Предположим, нужно найти в БД автомобиль стоимостью 14 млн рублей. Перейдём на вкладку «Главная» и нажмём на кнопку «Найти и выделить». Также быстрый поиск можно задавать с любой вкладки Excel — через значок лупы в правом верхнем углу экрана.
Скриншот: Excel / Skillbox Media
В появившемся окне введём значение, которое нужно найти, — 14000000 — и нажмём «Найти далее».
Скриншот: Excel / Skillbox Media
Готово — Excel нашёл ячейку с заданным значением и выделил её.
Скриншот: Excel / Skillbox Media
- В этой статье Skillbox Media собрали в одном месте 15 статей и видео об инструментах Excel, которые ускорят и упростят работу с электронными таблицами.
- Также в Skillbox есть курс «Excel + Google Таблицы с нуля до PRO». Он подойдёт как новичкам, которые хотят научиться работать в Excel с нуля, так и уверенным пользователям, которые хотят улучшить свои навыки. На курсе учат быстро делать сложные расчёты, визуализировать данные, строить прогнозы, работать с внешними источниками данных, создавать макросы и скрипты.
- Кроме того, Skillbox даёт бесплатный доступ к записи онлайн-интенсива «Экспресс-курс по Excel: осваиваем таблицы с нуля за 3 дня». Он подходит для начинающих пользователей. На нём можно научиться создавать и оформлять листы, вводить данные, использовать формулы и функции для базовых вычислений, настраивать пользовательские форматы и создавать формулы с абсолютными и относительными ссылками.
Другие материалы Skillbox Media по Excel
- Как сделать сортировку в Excel: детальная инструкция со скриншотами
- Как установить фильтр и расширенный фильтр в Excel: детальные инструкции со скриншотами
- Как сделать ВПР в Excel: пошаговая инструкция со скриншотами
- Основы Excel: работаем с выпадающим списком. Пошаговая инструкция со скриншотами
- Основы Excel: как использовать функцию ЕСЛИ
- Как сделать сводные таблицы в Excel: пошаговая инструкция со скриншотами
Время на прочтение
7 мин
Количество просмотров 31K
Всем привет.
Наступил новый 2016 год, а значит пора обновить инструменты для упрощения скучной механической работы. Отделы аналитики, маркетинга, продаж часто сталкиваются со следующими трудностями при обновлении отчетности:
1. Данные приходится собирать воедино из нескольких источников.
2. Отчеты составляются в Excel, что накладывает значительные ограничения на объем обрабатываемых данных.
3. Внесение изменений в заранее настроенные разработчиками выгрузки дело как правило не самое быстрое.
Если отчеты нужно обновлять еженедельно или даже ежедневно, то эта процедура становится весьма напряжной даже для самых терпеливых. С помощью надстройки Excel Power Query и записи данных в MySQL можно свести обновление большинства отчетов до простого нажатия кнопки «Обновить»:
1. Данные из любого количества источников импортируются через SQL-запросы в обычные таблицы Excel.
2. Даже из большой базы можно записывать в Excel только небольшую часть данных (например, итоговые суммы за нужный диапазон дат с группировкой только по нужным столбцам).
3. Изменения в отчет можно вносить просто поменяв SQL-запрос. Далее формируем нужный отчет стандартными средствами Excel.
В этой статье я покажу как настраивать и автоматически заполнять простые базы данных MySQL (на примере выгрузки статистики всех ключевых слов из Яндекс Метрики), а потом одной кнопкой обновлять отчеты в Excel, используя надстройку Power Query. Power Query имеет весьма странные особенности работы при составлении SQL-запросов (особенно динамических), которые мы разберем во второй части статьи.
Выбор MySQL (или любой другой популярной базы данных) вполне очевиден — бесплатно, относительно просто, возможность работать с довольно большими базами данных без технических хитростей. В качестве примера будем использовать Amazon Web Services: дешево (в большинстве случаев используемый инстанс будет бесплатен для вас в течение 12 месяцев).
Итак, начнем (если у вас уже есть базы данных с готовыми данными, то можно сразу переходить к разделу с Excel):
1. Регистрируемся на AWS (если еще нет учетки), запускаем самый простой инстанс t2.micro и заходим на него по SSH. Можно посмотреть краткую инструкцию в прошлом посте habrahabr.ru/post/265383. Обратите внимание, что нам потребуется первый в списке вариант инстанса на Amazon Linux AMI. Необходимо выставить правила, разрешающие обращение к инстансу по нужным портам:
В целях безопасности лучше выставлять ограничения на IP-адрес. Если у вас динамический IP, то это проблемная опция. Также иногда ограничение доступа к MYSQL по IP вызывает ошибку в Excel. Если выставить любой IP, то все работает.
2. Исполняем подряд команды, описанные в документации docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-ug.pdf. Нам нужна глава «Tutorial: Installing a LAMP Web Server on Amazon Linux». Запомните пароль, который вводите при выполнении команды «sudo mysql_secure_installation». Для удобства установите phpMyAdmin как описано в конце этой главы. Если будете копипастить из документации строчку «sudo sed -i -e ‘s/127.0.0.1/your_ip_address/g’ /etc/ht tpd/conf.d/phpMyAdmin.conf», то обратите внимание, что иногда при копировании в «httpd» появляется лишний пробел.
После этих действий на вашем инстансе должна открываться такая страница:
3. Заходим под пользователем root и паролем, который вводили при настройке. Для доступа к базе данных «извне» (т. е. из Excel) нам потребуется пользователь, отличный от root. Заводим его в интерфейсе phpMyAdmin в меню Пользователи —> Добавить пользователя. Добавим пользователя stats, зададим пароль и назначим ему привилегии SELECT и INSERT. Итого получим:
4. Теперь создадим базу данных data:
5. В данном примере будем наполнять базу статистикой посещений по ключевым словам из Яндекс Метрики. Для этого создадим таблицу seo (обратите внимание, что у столбца id надо отметить опцию A_I (auto increment)):
6. Для получения статистики по ключевым словам из Яндекс Метрики можно использовать следующий скрипт. В качестве параметров нужно указать начальную и конечную дату выгрузки (переменные $startDate и $endDate), авторизационный токен (в коде есть описание как его получить), номер счетчика, из которого нужно получить статистику, и параметры базы данных: ID инстанса, логин (у нас «stats»), пароль и название базы (у нас «data»). Скопируйте в корневую папку инстанса этот код и запустите командой «php seo.php».
Код PHP для выгрузки данных Яндекс Метрики
<?php
// начало и конец периода выгрузки
$startDate = '2015-10-01';
$endDate = '2015-12-31';
// токен для запросов к API Яндекс Метрики
// для получения токена создаем приложение на https://oauth.yandex.ru/
// даем приложению разрешение на чтение статистики Яндекс Метрики
// после создания берем параметр ID приложения и подставляем в конец https://oauth.yandex.ru/authorize?response_type=token&client_id=
// жмем Разрешить и получаем токен
$atoken = '';
// номер счетчика
$project = '';
// соединяемся с базой данных и проверяем все ли в порядке
$con = mysqli_connect("ec2-....compute.amazonaws.com","stats","здесь пароль", "data");
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
exit();
} else {
echo "Connection successfull n";
}
if ($con->query("SET NAMES 'utf8'")) {
echo "Names set n";
} else {
printf("Error: %sn", $con->error);
exit();
}
// файл, в который записываем результаты выгрузки (в случае ошибки записи в базу данных по нему можно увидеть какая строчка записалась последней и соответственно дала ошибку)
$fname = "data.txt";
$fp = fopen($fname, "w");
fclose($fp);
function getBatch($startDate, $endDate, $project, $offset, $limit, $atoken, $fname, $con) {
// делаем запрос к API Яндекс Метрики
// документация https://tech.yandex.ru/metrika/doc/api2/api_v1/attributes/visitssource_/search-docpage/
$ch = curl_init();
$options = array(
CURLOPT_URL => 'https://api-metrika.yandex.ru/stat/v1/data?oauth_token='.$atoken.'&id='.$project.'&accuracy=full&date1='.$startDate.'&date2='.$endDate.'&dimensions=ym:s:<attribution>SearchPhrase&metrics=ym:s:visits&limit='.$limit.'&offset='.$offset,
CURLOPT_RETURNTRANSFER => TRUE
);
curl_setopt_array($ch, $options);
$data = curl_exec($ch);
curl_close($ch);
// переводим ответ запроса формата JSON в массив
$data = json_decode($data, true);
// смотрим какой ответ получили от Яндекс Метрики
//var_dump($data);
// проходим по массиву $data['data'] и записываем период выгрузки, ключевую фразу и количество визитов
for ($i=0; $i < count($data['data']); $i++) {
file_put_contents($fname, $startDate."t".$endDate."t".$data['data'][$i]['dimensions'][0]['name']."t".$data['data'][$i]['metrics'][0]."n", FILE_APPEND);
if ($con->query("INSERT INTO seo (startDate, endDate, query, visits) VALUES ('".$startDate."', '".$endDate."', '".mysqli_real_escape_string($con, substr($data['data'][$i]['dimensions'][0]['name'], 0, 255))."', ".$data['data'][$i]['metrics'][0].")")) {
//echo "Record done n";
} else {
printf("Error: %sn", $con->error);
exit();
}
}
if (count($data['data']) == 0) {
return 'done';
} else {
return 'more';
}
}
// https://tech.yandex.ru/metrika/doc/api2/api_v1/data-docpage/
// максимальное количество строк в одной таблице - 10 000
// в цикле выгружается по $limit строк, увеличивая при этом первую строчку выгрузки $offset на значение $limit
$offset = 1;
$limit = 10000;
$res = 'more';
do {
$res = getBatch($startDate, $endDate, $project, $offset, $limit, $atoken, $fname, $con);
$offset += $limit;
} while ($res == 'more');
mysqli_close($con);
Если возникнут ошибки при соединении с базой, то они отобразятся в консоли и выполнение будет прервано. В случае успешного выполнения получим статистику ключевых слов за выбранный период:
Отлично, данные получены. Посмотрим как получать их в Excel.
Использование Power Query для выгрузки данных в Excel
Power Query представляет собой надстройку, которая расширяет возможности Excel по выгрузке данных. Скачать можно тут www.microsoft.com/en-us/download/details.aspx?id=39379. Для работы с MySQL может потребоваться MySQL Connector и Visual Studio (предлагаются при установке из дистрибутива).
1. После установки выбираем MySQL:
2. В качестве базы указываем ID нашего инстанса (как было в скрипте) ec2-….compute.amazonaws.com. База данных data. Для ввода логина выбираем «База данных»:
3. В открывшемся окне дважды кликаем на таблицу seo и получаем:
В этом окне можно управлять запросами, изменяя столбцы и количество строчек. Когда база данных небольшая, то это работает. Однако если размер данных превышает даже 20MB, то Excel на большинстве компьютеров просто повиснет от такого запроса. К тому же неплохо бы менять даты запроса или другие параметры.
Динамические запросы в Power Query можно делать с помощью встроенного языка M msdn.microsoft.com/en-us/library/mt253322.aspx, однако запросы крайне неустойчивы в плане изменения каких-либо параметров в них. Чтобы запрос оставался «постоянным» сделаем следующий прием:
1. Сначала составляем таблицу, в которой указываем нужные нам параметры. В нашем примере это дата выгрузки. Формат ячеек со значениями лучше выставить как тестовый, т. к. Excel любит изменять формат ячеек по своему усмотрению:
2. Создадим запрос Power Query «Из таблицы», который будет просто дублировать эту таблицу:
3. В опциях запроса обязательно укажите формат второго столбца как Текст, иначе последующий SQL-запрос будет некорректным. Далее жмем «Закрыть и загрузить».
Итого мы получили запрос Power Query к обычной таблице, из которого будет брать значение начала и конца выгрузки.
Чтобы сделать SQL-запрос потребуется отключить одну опцию: заходим в Параметры и настройки —> Параметры запроса —> Конфиденциальность и выбираем «Игнорировать уровни конфиденциальности для возможного улучшения производительности». Жмем Ок.
4. Теперь делаем запрос к нашей базе данных, указывая в качестве начала и конца периода значения таблицы из пункта 3. Снова подключаемся к базе в Power Query и нажимаем «Расширенный редактор» в меню.
Например, мы хотим получить сумму визитов, которые принесли ключевые слова, содержащие «2015». На языке M запрос выглядит так:
let
Source = MySQL.Database("ec2-....compute.amazonaws.com", "data", [Query="select sum(visits) from seo where startDate>='"&Text.From(Таблица1{0}[Значение])&"' and endDate<='"&Text.From(Таблица1{1}[Значение])&"' and query like '%2015%';"])
in
Source
В параметрах startDate и endDate указываются значения в таблице из пункта 3. При запросе «Для выполнения этого собственного запроса к базе данных необходимы разрешения» жмем «Редактировать разрешение», проверяем, что все параметры подтянулись корректно и выполняем запрос. Теперь полученный ответ от SQL-запроса можно обработать обычными формулами Excel в привычном вам виде.
5. Важно! Когда вы будете обновлять выгрузку в следующий раз, то это приходится делать следующим способом (другие почему-то дают ошибку):
— меняем даты в таблице из пункта 1
— заходим в меню Данные —> Подключения и нажимаем «Обновить все»:
В этом случае все запросы выполнятся корректно и ваши отчеты обновятся автоматически. Итого для обновления отчета вам потребуется только изменить параметры запроса и нажать «Обновить все».