Найти в Дзене
Анастасия Софт

📊 Реализуем систему анализа продаж с использованием Python и Excel

или как стать аналитиком года без MBA и миллиона макросов "Excel — это калькулятор. Python — это искусственный интеллект для калькулятора." Если ты когда-нибудь строил отчёт о продажах вручную, ты знаешь боль: фильтры, сводные, таблицы, цвета, даты, правки, Ctrl+Z, снова фильтры…
А что, если мы скажем, что всё это можно автоматизировать? И не просто автоматизировать, а сделать настоящую систему анализа продаж, которую легко использовать каждый день? В этой статье мы: pip install pandas openpyxl xlwings matplotlib seaborn Предположим, у нас есть Excel-файл sales_data.xlsx с вот такой табличкой: Каждый день в эту таблицу добавляются новые строки. import pandas as pd
# Загружаем файл Excel в DataFrame
df = pd.read_excel('sales_data.xlsx')
# Общая сумма продаж
total_sales = df['Продажи'].sum()
print(f"💰 Общая сумма продаж: {total_sales}")
# Сумма по категориям
sales_by_category = df.groupby('Категория')['Продажи'].sum()
print("\n📦 Продажи по категориям:\n", sales_by_category) 🔍 Объя
Оглавление

или как стать аналитиком года без MBA и миллиона макросов

или как стать аналитиком года без MBA и миллиона макросов
или как стать аналитиком года без MBA и миллиона макросов

🧠 Введение

"Excel — это калькулятор. Python — это искусственный интеллект для калькулятора."

Если ты когда-нибудь строил отчёт о продажах вручную, ты знаешь боль: фильтры, сводные, таблицы, цвета, даты, правки, Ctrl+Z, снова фильтры…

А что, если мы скажем, что всё это можно
автоматизировать? И не просто автоматизировать, а сделать настоящую систему анализа продаж, которую легко использовать каждый день?

В этой статье мы:

  • Подключим Python к Excel
  • Разберём 5 полезных задач из жизни аналитика/маркетолога/менеджера
  • Напишем подробный код с комментариями
  • Будем шутить, но по делу 😎

🔧 Что установим:

pip install pandas openpyxl xlwings matplotlib seaborn

📁 Что у нас есть

Предположим, у нас есть Excel-файл sales_data.xlsx с вот такой табличкой:

sales_data.xlsx
sales_data.xlsx

Каждый день в эту таблицу добавляются новые строки.

✅ Пример 1: Сколько мы продали всего и по категориям?

import pandas as pd

# Загружаем файл Excel в DataFrame
df = pd.read_excel('sales_data.xlsx')

# Общая сумма продаж
total_sales = df['Продажи'].sum()
print(f"💰 Общая сумма продаж: {total_sales}")

# Сумма по категориям
sales_by_category = df.groupby('Категория')['Продажи'].sum()
print("\n📦 Продажи по категориям:\n", sales_by_category)

🔍 Объяснение:

  • .sum() — считает сумму по столбцу.
  • .groupby() + .sum() — классическая группировка, как в сводной таблице Excel.

👶 Подходит новичкам и тем, кто устал от ручного подсчёта.

📈 Пример 2: Как изменялись продажи по дням? (График!)

import matplotlib.pyplot as plt

# Группируем по дате
sales_by_date = df.groupby('Дата')['Продажи'].sum()

# Строим график
plt.figure(figsize=(10, 5))
sales_by_date.plot(marker='o')
plt.title('Продажи по дням')
plt.xlabel('Дата')
plt.ylabel('Сумма продаж')
plt.grid(True)
plt.tight_layout()
plt.savefig('daily_sales_chart.png')
print("📈 График сохранён как daily_sales_chart.png")

📌 Это график, который любят боссы. А мы любим, когда они довольны.

👨‍💻 Полезно и новичку, и профи. И красиво.

🔍 Пример 3: Где мы зарабатываем больше всего?

# Продажи по регионам
sales_by_region = df.groupby('Регион')['Продажи'].sum().sort_values(ascending=False)
print("🌍 Продажи по регионам:\n", sales_by_region)

🧠 Это даст тебе сразу список приоритетных регионов: кому улыбаться больше на следующей планёрке.

🎯 Пример 4: Прогнозируем следующий день продаж (на коленке)

# Используем скользящее среднее по последним 3 дням
last_days = df.groupby('Дата')['Продажи'].sum().tail(3)
forecast = int(last_days.mean())

print(f"🔮 Прогноз продаж на завтра: {forecast}")

🔮 Да, это не машинное обучение. Но для простого прогноза — работает на ура.

👶 Новичкам подойдёт, профи могут прикрутить Prophet, ARIMA или LSTM.

🧾 Пример 5: Генерация Excel-отчёта с форматированием

from openpyxl import load_workbook
from openpyxl.styles import Font

# Сохраняем отчёт в Excel
report_file = 'sales_report.xlsx'
sales_by_category.to_excel(report_file)

# Добавим форматирование
wb = load_workbook(report_file)
ws = wb.active

# Сделаем заголовки жирными
for cell in ws[1]:
cell.font = Font(bold=True)

# Красиво сохраняем
wb.save(report_file)
print(f"📊 Отчёт сохранён в {report_file} и оформлен.")

📌 Да-да, можно и график вставить в Excel — хочешь, покажу!

📬 (Бонус) Отправка отчёта по email

import smtplib
from email.message import EmailMessage

msg = EmailMessage()
msg['Subject'] = '📥 Продажи за сегодня'
msg['From'] = 'you@example.com'
msg['To'] = 'boss@example.com'
msg.set_content('Добрый день! Прикладываю ежедневный отчёт.')

# Прикрепляем Excel-файл
with open(report_file, 'rb') as f:
msg.add_attachment(f.read(), maintype='application',
subtype='vnd.openxmlformats-officedocument.spreadsheetml.sheet',
filename=report_file)

# Отправляем через SMTP (пример — Gmail)
with smtplib.SMTP_SSL('smtp.gmail.com', 465) as smtp:
smtp.login('you@example.com', 'your_password')
smtp.send_message(msg)

print("✅ Отчёт отправлен по почте!")

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

📦 Что мы умеем теперь:

-3

🚀 А что дальше?

  • Добавить расписание (schedule или cron)
  • Создать Streamlit-веб-интерфейс
  • Интеграция с базой данных
  • Telegram-бот с кнопкой “Прислать отчёт”
  • Реальный ML-прогноз с scikit-learn или prophet

🧠 Финал

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

И всё это — без Excel-макросов, VBA и боли.

Хочешь продолжения? Например:

  • Как подключить базу данных?
  • Как превратить это в Dashboard?
  • Как построить email-рассылку по расписанию?

Пиши — сделаем 😉