Автоматизированные отчеты в excel


Загрузить PDF


Загрузить PDF

Из этой статьи вы узнаете, как в Microsoft Excel автоматизировать создание отчетов о данных. Здесь описывается, как в таблице Excel запросить данные из внешнего источника (MySQL, Postgres, Oracle и так далее) и создать отчет с помощью специального плагина, который свяжет таблицу Excel с внешними источниками данных.

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

  1. Изображение с названием Automate Reports in Excel Step 1

    1

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

  2. Изображение с названием Automate Reports in Excel Step 2

    2

    Запустите Excel. Дважды щелкните (или просто щелкните на компьютере Mac) по значку в виде белой буквы «Х» на зеленом фоне, а затем нажмите «Пустая книга» на странице шаблонов.

    • На компьютере Mac вам, возможно, придется нажать «Файл» > «Пустая книга».
    • Если у вас уже есть отчет Excel, который нужно автоматизировать, дважды щелкните по файлу отчета, чтобы открыть его в Excel.
  3. Изображение с названием Automate Reports in Excel Step 3

    3

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

  4. Изображение с названием Automate Reports in Excel Step 4

    4

    Активируйте меню Разработчик. По умолчанию это меню не отображается в верхней части окна Excel. Чтобы включить меню «Разработчик»:

    • Windows — нажмите «Файл» > «Параметры» > «Настроить ленту» (на левой панели), установите флажок у «Разработчик» в нижнем правом углу (если вы не видите эту опцию, прокрутите страницу вниз), а затем нажмите «ОК».[1]
    • Mac — нажмите «Excel» > «Параметры» > «Лента и панель инструментов», установите флажок у «Разработчик» в списке «Основные», а затем нажмите «Сохранить».[2]
  5. Изображение с названием Automate Reports in Excel Step 5

    5

    Нажмите Разработчик. Вы найдете эту вкладку вверху окна Excel. Откроется панель инструментов «Разработчик».

  6. Изображение с названием Automate Reports in Excel Step 6

    6

    Щелкните по Запись макроса. Это опция на панели инструментов. Появится всплывающее окно.

  7. Изображение с названием Automate Reports in Excel Step 7

    7

    Введите имя макроса. Сделайте это в текстовом поле «Имя макроса». Так впоследствии вам будет проще определить, что это за макрос.

    • Например, если макрос будет строить график на основе доступных данных, назовите его «График1» или как-то аналогично.
  8. Изображение с названием Automate Reports in Excel Step 8

    8

    Создайте сочетание клавиш для запуска макроса. Нажмите клавишу Shift, а затем нажмите другую клавишу (например, T), чтобы создать сочетание клавиш.

    • На компьютере Mac сочетанием клавиш будет Option+ Command и еще одна клавиша (например, Option+ Command+T).
  9. Изображение с названием Automate Reports in Excel Step 9

    9

    Сохраните макрос в открытой таблице Excel. Для этого нажмите «Сохранить в» и в меню выберите «Эта книга», чтобы макрос был доступен для всех, кто откроет данную таблицу.

    • Файл Excel нужно сохранить в специальном формате с поддержкой макросов.
  10. Изображение с названием Automate Reports in Excel Step 10

    10

    Щелкните по OK. Это кнопка внизу окна. Настройки макроса будут сохранены и включится режим записи. С этого момента все ваши действия будут записываться (до момента, когда вы остановите запись).

  11. Изображение с названием Automate Reports in Excel Step 11

    11

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

    • Например, чтобы выбрать данные и создать диаграмму, выделите нужные данные, нажмите «Вставка» в верхней части окна Excel, выберите тип диаграммы и отредактируйте диаграмму так, как нужно.
    • Другой пример: чтобы создать макрос для построения графика из данных, которые находятся в ячейках с A1 по A12, щелкните по пустой ячейке, введите =СУММ(A1:A12) и нажмите Enter.
  12. Изображение с названием Automate Reports in Excel Step 12

    12

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

  13. Изображение с названием Automate Reports in Excel Step 13

    13

    Сохраните таблицу Excel как файл с поддержкой макросов. Нажмите «Файл» > «Сохранить как» и измените формат файла на «xlsm» (вместо «xls»). Затем введите имя файла, выберите папку для его сохранения и нажмите «Сохранить».

    • Если не сделать этого, макрос не будет сохранен как часть электронной таблицы, то есть им не смогут пользоваться другие люди на других компьютерах.
  14. Изображение с названием Automate Reports in Excel Step 14

    14

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

    • Также, чтобы запустить макрос, можно нажать «Макросы» на вкладке «Разработчик», выбрать имя макроса и нажать «Выполнить».

    Реклама

  1. Изображение с названием Automate Reports in Excel Step 15

    1

    Скачайте плагин Kloudio. С его помощью вашу таблицу Excel можно соединить с внешней базой данных или источником данных. Этот плагин также работает с Google Таблицами.

  2. Изображение с названием Automate Reports in Excel Step 16

    2

    Cоедините свою таблицу с внешним источником данных. Для этого нажмите кнопку «+» на портале Kloudio. Введите информацию о своей базе данных (тип базы данных, учетные данные) и выберите параметры безопасности/шифрования, если работаете с конфиденциальными данными или данными компании.

  3. Изображение с названием Automate Reports in Excel Step 17

    3

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

  4. Изображение с названием Automate Reports in Excel Step 18

    4

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

    Реклама

Советы

  • Загружайте плагины Excel только с сайта Microsoft AppSource, если не доверяете сторонним разработчикам.
  • Макросы можно использовать для автоматизации как простых задач (например, для добавления значений или создания диаграмм), так и сложных (например, для вычисления значений в ячейках, создания диаграммы на основе результатов вычислений, маркировки диаграммы и печати полученного результата).
  • Если открыть электронную таблицу с макросом, вам, возможно, придется нажать «Включить содержимое» на желтой полосе в верхней части окна, чтобы получить возможность пользоваться макросом.

Реклама

Предупреждения

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

Реклама

Об этой статье

Эту страницу просматривали 23 124 раза.

Была ли эта статья полезной?


Download Article


Download Article

This wikiHow teaches you how to automate the reporting of data in Microsoft Excel. For external data, this wikiHow will teach you how to query and create reports from any external data source (MySQL, Postgres, Oracle, etc) from within your worksheet using Excel plugins that link your worksheet to external data sources.

For data already stored in an Excel worksheet, we will use macros to build reports and export them in a variety of file types with the press of one key. Luckily, Excel comes with a built-in step recorder which means you will not have to code the macros yourself.

  1. Image titled Automate Reports in Excel Step 1

    1

    If the data you need to report on is already stored, updated, and maintained in Excel, you can automate reporting workflows using Macros. Macros are a built in function that allow you to automate complex and repetitive tasks.

  2. Image titled Automate Reports in Excel Step 2

    2

    Open Excel. Double-click (or click if you’re on a Mac) the Excel app icon, which resembles a white «X» on a green background, then click Blank Workbook on the templates page.

    • On a Mac, you may have to click File and then click New Blank Workbook in the resulting drop-down menu.
    • If you already have an Excel report that you want to automate, you’ll instead double-click the report’s file to open it in Excel.

    Advertisement

  3. Image titled Automate Reports in Excel Step 3

    3

    Enter your spreadsheet’s data if necessary. If you haven’t added the column labels and numbers for which you want to automate results, do so before proceeding.

  4. Image titled Automate Reports in Excel Step 4

    4

    Enable the Developer tab. By default, the Developer tab doesn’t show up at the top of the Excel window. You can enable it by doing the following depending on your operating system:

    • Windows — Click File, click Options, click Customize Ribbon on the left side of the window, check the «Developer» box in the lower-right side of the window (you may first have to scroll down), and click OK.[1]
    • Mac — Click Excel, click Preferences…, click Ribbon & Toolbar, check the «Developer» box in the «Main Tabs» list, and click Save.[2]
  5. Image titled Automate Reports in Excel Step 5

    5

    Click Developer. This tab should now be at the top of the Excel window. Doing so brings up a toolbar at the top of the Excel window.

  6. Image titled Automate Reports in Excel Step 6

    6

    Click Record Macro. It’s in the toolbar. A pop-up window will appear.

  7. Image titled Automate Reports in Excel Step 7

    7

    Enter a name for the macro. In the «Macro name» text box, type in the name for your macro. This will help you identify the macro later.

    • For example, if you’re creating a macro that will make a chart out of your available data, you might name it «Chart1» or similar.
  8. Image titled Automate Reports in Excel Step 8

    8

    Create a shortcut key combination for the macro. Press the Shift key along with another key (e.g., the T key) to create the keyboard shortcut. This is what you’ll use to run your macro later.

    • On a Mac, the shortcut key combination will end up being Option+ Command and your key (e.g., Option+ Command+T).
  9. Image titled Automate Reports in Excel Step 9

    9

    Store the macro in the current Excel document. Click the «Store macro in» drop-down box, then click This Workbook to ensure that the macro will be available for anyone who opens the workbook.

    • You’ll have to save the Excel file in a special format for the macro to be saved.
  10. Image titled Automate Reports in Excel Step 10

    10

    Click OK. It’s at the bottom of the window. Doing so will save your macro settings and place you in record mode. Any steps you take from now until you stop the recording will be recorded.

  11. Image titled Automate Reports in Excel Step 11

    11

    Perform the steps that you want to automate. Excel will track every click, keystroke, and formatting option you enter and add them to the macro’s list.

    • For example, to select data and create a chart out of it, you would highlight your data, click Insert at the top of the Excel window, click a chart type, click the chart format that you want to use, and edit the chart as needed.
    • If you wanted to use the macro to add values from cells A1 through A12, you would click an empty cell, type in =SUM(A1:A12), and press Enter.
  12. Image titled Automate Reports in Excel Step 12

    12

    Click Stop Recording. It’s in the Developer tab’s toolbar. This will stop your recording and save any steps you took during the recording as an individual macro.

  13. Image titled Automate Reports in Excel Step 13

    13

    Save your Excel sheet as a macro-enabled file. Click File, click Save As, and change the file format to xlsm instead of xls. You can then enter a file name, select a file location, and click Save.

    • If you don’t do this, the macro won’t be saved as part of the spreadsheet, meaning that other people on different computers won’t be able to use your macro if you send the workbook to them.
  14. Image titled Automate Reports in Excel Step 14

    14

    Run your macro. Press the key combination which you created as part of the macro to do so. You should see your spreadsheet automate according to your macro’s steps.

    • You can also run a macro by clicking Macros in the Developer tab, selecting your macro’s name, and clicking Run.
  15. Advertisement

  1. Image titled Automate Reports in Excel Step 15

    1

    Download Kloudio’s Excel plugin from Microsoft AppSource. This will allow you to create a persistent connection between an external database or data source and your workbook. This plugin also works with Google Sheets.

  2. Image titled Automate Reports in Excel Step 16

    2

    Create a connection between your worksheet and your external data source by clicking the + button on the Kloudio portal. Type in the details of your database (database type, credentials) and select any security/encryption options if working with confidential or company data.

  3. Image titled Automate Reports in Excel Step 17

    3

    Once you’ve created a connection between your worksheet and your database, you will be able to query and build reports from external data without leaving Excel. Create your custom reports from the Kloudio portal and then select them from the drop-down menu in Excel. You can then apply any additional filters and choose the frequency that the report will refresh (so you can have your sales spreadsheet update automatically every week, day, or even hour.)

  4. Image titled Automate Reports in Excel Step 18

    4

    In addition, you can also input data into your connected worksheet and have the data update your external data source. Create an upload template from the Kloudio portal and you will be able to manually or automatically upload changes in your spreadsheet to your external data source.

  5. Advertisement

Ask a Question

200 characters left

Include your email address to get a message when this question is answered.

Submit

Advertisement

Video

  • Only download Excel plugins from Microsoft AppSource, unless you trust the third party provider.

  • Macros can be used for anything from simple tasks (e.g., adding values or creating a chart) to complex ones (e.g., calculating your cell’s values, creating a chart from the results, labeling the chart, and printing the result).

  • When opening a spreadsheet with your macro included, you may have to click Enable Content in a yellow banner at the top of the window before you can use the macro.

Thanks for submitting a tip for review!

Advertisement

  • Macros can be used maliciously (e.g., to delete files on your computer). Don’t run macros from untrustworthy sources.

  • Macros will implement literally every step you make while recording. Make sure that you don’t accidentally enter the incorrect value, open a program you don’t want to use, or delete a file.

Advertisement

About This Article

Article SummaryX

1. Enable the Developer tab.
2. Click the Developer tab.
3. Click Record Macro.
4. Create a shortcut key.
5. Store the content in the current workbook.
6. Click OK.
7. Perform the steps you want to automate.
8. Click Stop Recording.
9. Use the shortcut key to run the same steps.

Did this summary help you?

Thanks to all authors for creating a page that has been read 543,932 times.

Is this article up to date?

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

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

В чем польза использования именно JetStat

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

В чем преимущество JetStat? В том, что он одновременно выполняет все три функции:

  • вытаскивает данные из нужных источников;
  • помогает настроить их обработку;
  • выгружает данные по расписанию — как часто нужен отчет, так часто он его и подготовит.

Становится вполне понятно, что использования JetStat достаточно, чтобы сэкономить время и избавиться от ошибок ручного копирования информации.

Как подключить и автоматизировать отчёты в Excel

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

  • Авторизуемся в JetStat. Если учетной записи пока нет — не беда, ее можно быстро создать.
  • Создаем новый отчет. Переходим во вкладку отчетов и кликаем на создание нового, все просто.
  • Определяемся с датами. Выбираем период, за который нужны данные.
  • Выбираем источник или канал. Кроме того, определяемся с параметром «Кампания». 
  • Выбираем параметры. Здесь все тоже просто — ищем все то, что собираемся отслеживать и выбираем цель (в предложенных их несколько, осталось кликнуть по нужной). Можно следить за сеансами, отказами, транзакциями или другими метриками — как удобно.
  • Сохраняем настройки. Все, что до этого момента было выбрано, будет теперь сформировано в отчете и сохранено.
  • Создаем блоки сегментов. Этот блок соединяем с уже имеющимся «Google Analytics». 
  • Выделяем группы каналов. Можно, например, создать отдельно для брендового и небрендового директа, или для adwords. Все, что не войдет в созданные группы, соберется в «прочем». Каждую группу создаем отдельно в левой части блока.
  • Добавляем блок «Группировка». Его присоединяем уже к «Сегментам». Здесь определяемся с нужными столбцами и видом группировки. Каждый столбец настраиваем и даем имя. 
  • Сохраняем получившиеся настройки. Рассчитываем блок.
  • Создаем блок «Формулы». Этот блок нужно прикрепить к уже имеющемуся блоку «Группировка». Настраиваем блок, вписываем любые нужные формулы.
  • Сохраняем блок и рассчитываем его.

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

Как подключить Excel

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

Теперь подключаем Excel:

  • Создаем блок. Для этого перетаскиваем на поле или щелкаем по боковому меню.
  • Открываем настройки и кликаем на «Создать файл Excel». Появится новый файл, нужно только задать имя для всего файла обязательно и для каждого листа при необходимости. Главное — назвать его так, чтобы вам было понятно, что хранится внутри отчета.
  • Создание файла на Google Drive. Если нужно, чтобы файл сохранялся и на Google Диске, осталось добавить новое сохранение и выбрать «Google Drive». 

Теперь данные собирать вручную не придется — документ сможет собираться с той периодичностью, с которой это необходимо.

Главное — не забывайте о том, что выгружать данные в Excel не сложно, но собирать итоговый отчет предстоит в другом файле, ссылаясь на данные из выгруженного файла. 

Несколько бонусов:

  • можно просто поставить галочку в чек-боксе «Отправлять по email» и тогда таблица будет отправляться на нужную почту, например, клиенту или начальнику;
  • файлы можно удалить через нажатие на крестик, но действие нужно подтвердить в специальном окошке;
  • можно выбрать любой лист из списка, на котором будут собираться данные, или создать новый;
  • есть режим «Перезапись» — при выборе этого режима файл будет каждый раз собираться заново;
  • есть режим «Дозапись в конец» — при выборе такого режима все новые данные будут заполнять свободные ячейки согласно правилам, а не стирать старые данные;
  • можно выбрать, с какой ячейки начнут заполняться данные;
  • можно поставить галочку в чек-бокс «заголовки столбцов» и тогда при экспорте информации заголовки столбцов тоже переместятся в таблицу.

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

Ольга Базалева, руководитель аналитического отдела в РБК, создатель онлайн-школы Excellent, автор книги «Мастерство визуализации данных» и автор блога, поделилась с Нетологией советами, как делать более удобные и понятные коллегам отчёты в Excel.

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

Хотите, чтобы руководитель вас заметил и в глазах коллег вы стали классным профессионалом? Научитесь делать качественные отчёты.

  • Научитесь работать с любыми отчётами в Excel
  • Разберётесь, как работать с формулами
  • Сможете сортировать, анализировать и визуализировать данные

Встаньте на место начальника. Кому вы готовы платить больше? Специалисту, который присылает ему данные в таком виде?

Или в таком?

  • Располагайте данные логично: обычно это от большего к меньшему.
  • Всегда разделяйте разряды в больших числах: 10 000 000, а не 10000000.
  • Убирайте лишние знаки после запятой.
  • Убирайте яркую сетку, это визуальный мусор. Делайте линии светлыми, а иногда можно обойтись вовсе без сетки.
  • Дизайн таблиц должен быть лаконичным и не отвлекать от сути.
  • Выделяйте шапку и строки/столбцы с итогами.
  • Выделяйте отрицательные значения красным, а второстепенные значения — серым. В Excel это можно сделать автоматически с помощью условного форматирования.
  • Визуализируйте данные в таблицах. Можно строить гистограммы непосредственно в ячейках при помощи условного форматирования и создавать миниграфики, которые располагаются в одной ячейке (спарклайны).

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

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

Делаем профессиональные отчёты в Excel: пять простых советов

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

Если ваш отчёт большой и занимает 10−20 листов в Excel, сделайте навигацию по нему. Это можно реализовать одним из следующих способов:

  • создать лист Summary, показать на нём главные цифры и сделать ссылки «Подробнее» с переходом на листы, содержащие все данные;
  • сделать оглавление, куда добавить ссылки на каждый лист с аналитикой.

Делаем профессиональные отчёты в Excel: пять простых советов

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

В Excel есть множество инструментов, которые помогут автоматизировать отчёты:

  • настройте выгрузку всех необходимых данных на один лист в Excel, назовём этот лист «Source»;
  • создайте необходимые аналитические таблицы на других листах;
  • формулами в эти аналитические таблицы подтяните нужные данные с листа Source;
  • сделайте связку Power Point — Excel. Тогда при изменении диаграмм в Excel, в презентации Power Point они будут обновляться автоматически.

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

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


Мнение автора и редакции может не совпадать. Хотите написать колонку для Нетологии? Читайте наши условия публикации. Чтобы быть в курсе всех новостей и читать новые статьи, присоединяйтесь к Телеграм-каналу Нетологии.

Телеграм Нетологии

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

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

Для автоматизации отчетов в Excel вам не придется убеждать своего начальника перейти на Python! Можно просто использовать модуль Python openpyxl, чтобы сообщить Excel, что вы хотите работать через Python. При этом процесс создания отчетов получится автоматизировать, что значительно упростит вашу жизнь.

Набор данных

В этом руководстве мы будем использовать файл Excel с данными о продажах. Он похож на те файлы, которые используются в качестве входных данных для создания отчетов во многих компаниях. Вы можете скачать этот файл на Kaggle. Однако он имеет формат .csv, поэтому вам следует изменить расширение на .xlsx или просто загрузить его по этой ссылке на Google Диск (файл называется supermarket_sales.xlsx).

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

Теперь давайте сделаем этот отчет и автоматизируем его составление с помощью Python!

Создание сводной таблицы с помощью pandas

Импорт библиотек

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

import pandas as pd
import openpyxl
from openpyxl import load_workbook
from openpyxl.styles import Font
from openpyxl.chart import BarChart, Reference
import string

Чтобы прочитать файл Excel, создать сводную таблицу и экспортировать ее в Excel, мы будем использовать Pandas. Затем мы воспользуемся библиотекой openpyxl для написания формул Excel, создания диаграмм и форматирования электронной таблицы с помощью Python. Наконец, мы создадим функцию на Python для автоматизации всего этого процесса.

Примечание. Если у вас не установлены эти библиотеки в Python, вы можете легко установить их, выполнив pip install pandas и pip install openpyxl в командной строке.

[python_ad_block]

Чтение файла Excel

Прежде чем читать Excel-файл, убедитесь, что он находится там же, где и ваш файл со скриптом на Python. Затем можно прочитать файл Excel с помощью pd.read_excel(), как показано в следующем коде:

excel_file = pd.read_excel('supermarket_sales.xlsx')
excel_file[['Gender', 'Product line', 'Total']]

В файле много столбцов, но для нашего отчета мы будем использовать только столбцы Gender, Product line и Total. Чтобы показать вам, как они выглядят, я выбрал их с помощью двойных скобок. Если мы выведем это в Jupyter Notebooks, увидим следующий фрейм данных, похожий на таблицу Excel:

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

Теперь мы можем легко создать сводную таблицу из ранее созданного фрейма данных excel_file. Для этого нам просто нужно использовать метод .pivot_table().

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

report_table = excel_file.pivot_table(index='Gender',
                                      columns='Product line',
                                      values='Total',
                                      aggfunc='sum').round(0)

Таблица report_table должна выглядеть примерно так:

Экспорт сводной таблицы в файл Excel

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

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

report_table.to_excel('report_2021.xlsx',
                      sheet_name='Report',
                      startrow=4)

Теперь файл Excel экспортируется в ту же папку, в которой находится ваш скрипт Python.

Создание отчета с помощью openpyxl

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

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

Создание ссылки на строку и столбец

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

Чтобы получить ссылки в книге Excel, мы сначала загружаем её с помощью функции load_workbook() и находим лист, с которым хотим работать, используя wb[‘имя листа’]. Затем мы получаем доступ к активным ячейкам с помощью метода .active.

wb = load_workbook('report_2021.xlsx')
sheet = wb['Report']
# cell references (original spreadsheet) 
min_column = wb.active.min_column
max_column = wb.active.max_column
min_row = wb.active.min_row
max_row = wb.active.max_row

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

Min Columns: 1
Max Columns: 7
Min Rows: 5
Max Rows: 7

Откройте файл report_2021.xlsx, который мы экспортировали ранее, чтобы убедиться в этом.

Как видно на картинке, минимальная строка – 5, максимальная — 7. Кроме того, минимальная ячейка – это A1, а максимальная – G7. Эти ссылки будут чрезвычайно полезны для следующих разделов.

Добавление диаграмм в Excel при помощи Python

Чтобы создать диаграмму в Excel на основе созданной нами сводной таблицы, нужно использовать модуль Barchart. Его мы импортировали ранее. Для определения позиций значений данных и категорий мы используем модуль Reference из openpyxl (его мы тоже импортировали в самом начале).

wb = load_workbook('report_2021.xlsx')
sheet = wb['Report']
# barchart
barchart = BarChart()
#locate data and categories
data = Reference(sheet,
                 min_col=min_column+1,
                 max_col=max_column,
                 min_row=min_row,
                 max_row=max_row) #including headers
categories = Reference(sheet,
                       min_col=min_column,
                       max_col=min_column,
                       min_row=min_row+1,
                       max_row=max_row) #not including headers
# adding data and categories
barchart.add_data(data, titles_from_data=True)
barchart.set_categories(categories)
#location chart
sheet.add_chart(barchart, "B12")
barchart.title = 'Sales by Product line'
barchart.style = 5 #choose the chart style
wb.save('report_2021.xlsx')

После написания этого кода файл report_2021.xlsx должен выглядеть следующим образом:

Объяснение кода:

  • barchart = BarChart() инициализирует переменную barchart из класса Barchart.
  • data и categories – это переменные, которые показывают, где находится необходимая информация. Для автоматизации мы используем ссылки на столбцы и строки, которые определили выше. Также имейте в виду, что мы включаем заголовки в данные, но не в категории.
  • Мы используем add_data() и set_categories(), чтобы добавить необходимые данные в гистограмму. Внутри add_data() добавим title_from_data = True, потому что мы включили заголовки для данных.
  • Метод sheet.add_chart() используется для указания, что мы хотим добавить нашу гистограмму в лист Report. Также мы указываем, в какую ячейку мы хотим её добавить.
  • Дальше мы изменяем заголовок и стиль диаграммы, используя barchart.title и barchart.style.
  • И наконец, сохраняем все изменения с помощью wb.save()

Вот и всё! С помощью данного кода мы построили диаграмму в Excel.

Вы можете набирать формулы в Excel при помощи Python так же, как вы это делаете непосредственно на листе Excel.

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

sheet['B7'] = '=SUM(B5:B6)'
sheet['B7'].style = 'Currency'

Довольно просто, не правда ли? Мы можем протянуть эту формулу от столбца B до G или использовать цикл for для автоматизации. Однако сначала нам нужно получить алфавит, чтобы ссылаться на столбцы в Excel (A, B, C, …). Для этого воспользуемся библиотекой строк и напишем следующий код:

import string
alphabet = list(string.ascii_uppercase)
excel_alphabet = alphabet[0:max_column] 
print(excel_alphabet)

Если мы распечатаем excel_alphabet, мы получим список от A до G.

Так происходит потому, что сначала мы создали алфавитный список от A до Z, а затем взяли срез [0:max_column], чтобы сопоставить длину этого списка с первыми 7 буквами алфавита (A-G).

Примечание. Нумерация в Python начинаются с 0, поэтому A = 0, B = 1, C = 2 и так далее. Срез [a:b] возвращает элементы от a до b-1.

Применение формулы к нескольким ячейкам

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

sheet['B7'] = '=SUM(B5:B6)'
sheet['B7'].style = 'Currency'

мы используем ссылки на столбцы и помещаем их в цикл for:

wb = load_workbook('report_2021.xlsx')
sheet = wb['Report']
# sum in columns B-G
for i in excel_alphabet:
    if i!='A':
        sheet[f'{i}{max_row+1}'] = f'=SUM({i}{min_row+1}:{i}{max_row})'
        sheet[f'{i}{max_row+1}'].style = 'Currency'
# adding total label
sheet[f'{excel_alphabet[0]}{max_row+1}'] = 'Total'
wb.save('report_2021.xlsx')

После запуска кода мы получаем формулу суммы в строке Total для столбцов от B до G:

Посмотрим, что делает данный код:

  • for i in excel_alphabet проходит по всем активным столбцам, кроме столбца A (if i! = 'A'), так как столбец A не содержит числовых данных
  • запись sheet[f'{i}{max_row+1}'] = f'=SUM({i}{min_row+1}:{i}{max_row}'  это то же самое, что и sheet['B7'] = '=SUM(B5:B6)', только для столбцов от A до G
  • строчка sheet [f '{i} {max_row + 1}'].style = 'Currency' задает денежный формат ячейкам с числовыми данными (т.е. тут мы опять же исключаем столбец А)
  • мы добавляем запись Total в столбец А под максимальной строкой (т.е. под седьмой), используя код [f '{excel_alphabet [0]} {max_row + 1}'] = 'Total'

Форматирование листа с отчетом

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

wb = load_workbook('report_2021.xlsx')
sheet = wb['Report']
sheet['A1'] = 'Sales Report'
sheet['A2'] = '2021'
sheet['A1'].font = Font('Arial', bold=True, size=20)
sheet['A2'].font = Font('Arial', bold=True, size=10)
wb.save('report_2021.xlsx')

Вы также можете добавить другие параметры внутри Font(). В документации openpyxl можно найти список доступных стилей.

Итоговый отчет должен выглядеть следующим образом:

Автоматизация отчета с помощью функции Python

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

Примечание. Чтобы эта функция работала, имя файла должно иметь структуру «sales_month.xlsx». Кроме того, мы добавили несколько строк кода, которые используют месяц/год файла продаж в качестве переменной, чтобы мы могли повторно использовать это в итоговом файле и подзаголовке отчета.

Приведенный ниже код может показаться устрашающим, но это просто объединение всего того, что мы написали выше. Плюс новые переменные file_name, month_name и month_and_extension.

import pandas as pd
import openpyxl
from openpyxl import load_workbook
from openpyxl.styles import Font
from openpyxl.chart import BarChart, Reference
import string

def automate_excel(file_name):
    """The file name should have the following structure: sales_month.xlsx"""
    # read excel file
    excel_file = pd.read_excel(file_name)
    # make pivot table
    report_table = excel_file.pivot_table(index='Gender', columns='Product line', values='Total', aggfunc='sum').round(0)
    # splitting the month and extension from the file name
    month_and_extension = file_name.split('_')[1]
    # send the report table to excel file
    report_table.to_excel(f'report_{month_and_extension}', sheet_name='Report', startrow=4)
    # loading workbook and selecting sheet
    wb = load_workbook(f'report_{month_and_extension}')
    sheet = wb['Report']
    # cell references (original spreadsheet)
    min_column = wb.active.min_column
    max_column = wb.active.max_column
    min_row = wb.active.min_row
    max_row = wb.active.max_row
    # adding a chart
    barchart = BarChart()
    data = Reference(sheet, min_col=min_column+1, max_col=max_column, min_row=min_row, max_row=max_row) #including headers
    categories = Reference(sheet, min_col=min_column, max_col=min_column, min_row=min_row+1, max_row=max_row) #not including headers
    barchart.add_data(data, titles_from_data=True)
    barchart.set_categories(categories)
    sheet.add_chart(barchart, "B12") #location chart
    barchart.title = 'Sales by Product line'
    barchart.style = 2 #choose the chart style
    # applying formulas
    # first create alphabet list as references for cells
    alphabet = list(string.ascii_uppercase)
    excel_alphabet = alphabet[0:max_column] #note: Python lists start on 0 -> A=0, B=1, C=2. #note2 the [a:b] takes b-a elements
    # sum in columns B-G
    for i in excel_alphabet:
        if i!='A':
            sheet[f'{i}{max_row+1}'] = f'=SUM({i}{min_row+1}:{i}{max_row})'
            sheet[f'{i}{max_row+1}'].style = 'Currency'
    sheet[f'{excel_alphabet[0]}{max_row+1}'] = 'Total'
    # getting month name
    month_name = month_and_extension.split('.')[0]
    # formatting the report
    sheet['A1'] = 'Sales Report'
    sheet['A2'] = month_name.title()
    sheet['A1'].font = Font('Arial', bold=True, size=20)
    sheet['A2'].font = Font('Arial', bold=True, size=10)
    wb.save(f'report_{month_and_extension}')
    return 

Применение функции к одному файлу Excel

Представим, что исходный файл, который мы загрузили, имеет имя sales_2021.xlsx вместо supermarket_sales.xlsx. Чтобы применить формулу к отчету, пишем следующее:

automate_excel('sales_2021.xlsx')

После запуска этого кода вы получите файл Excel с именем report_2021.xlsx в той же папке, где находится ваш скрипт Python.

Применение функции к нескольким файлам Excel

Представим, что теперь у нас есть только ежемесячные файлы Excel sales_january.xlsx, sales_february.xlsx и sales_march.xlsx (эти файлы можно найти на GitHub).

Вы можете применить нашу функцию к ним всем, чтобы получить 3 отчета.

automate_excel('sales_january.xlsx')
automate_excel('sales_february.xlsx')
automate_excel('sales_march.xlsx')

Или можно сначала объединить эти три отчета с помощью pd.concat(), а затем применить функцию только один раз.

# read excel files
excel_file_1 = pd.read_excel('sales_january.xlsx')
excel_file_2 = pd.read_excel('sales_february.xlsx')
excel_file_3 = pd.read_excel('sales_march.xlsx')
# concatenate files
new_file = pd.concat([excel_file_1,
                      excel_file_2,
                      excel_file_3], ignore_index=True)
# export file
new_file.to_excel('sales_2021.xlsx')
# apply function
automate_excel('sales_2021.xlsx')

Заключение

Код на Python, который мы написали в этом руководстве, можно запускать на вашем компьютере по расписанию. Для этого нужно просто использовать планировщик задач или crontab. Вот и все!

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

Перевод статьи «A Simple Guide to Automate Your Excel Reporting with Python».

Понравилась статья? Поделить с друзьями:

А вот еще интересные статьи:

  • Автоматизированное составление расписания excel
  • Автоматизированное создание оглавления структурированного документа ms word
  • Автоматизированное создание документов word
  • Автоматизация расчетов в excel это
  • Автоматизация расчета в excel

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии