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

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

Ограничения Excel: когда привычное становится узким местом

Павел Козлов

Тренер проекта CIE в Microsoft. Занимается обучением продуктам Microsoft Office и Power BI уже 10 лет

Excel актуален, как инструмент «индивидуального» BI, когда пользователю нужно подключиться к источникам и провести не очень сложные с вычислительной точки зрения расчёты, а также как инструмент поддержки расчётов в режиме калькулятора. 

Чем больше цифр, расчётов и анализа, тем заметнее ограничения Excel. Разберём три самых ощутимых. 

Первое ограничение — объём. Excel поддерживает только 1 048 576 трлн строк и 16,384 тыс. столбцов. Для повседневных задач этого хватает с запасом, но когда данные начинают выходить за эти пределы, возникают проблемы: файлы перестают быстро открываться, медленно реагируют на изменения и зависают.

В таких случаях можно разделить базу данных на несколько небольших, использовать инструменты Power Query и Power Pivot или перейти на специализированные BI-системы. Но даже у этих решений есть недостатки. При разделении БД на несколько будет сложно быстро найти нужную информацию. 

Чтобы использовать Power Query и Power Pivot, сотрудник должен уметь работать с инструментами преобразования и анализа данных. Кроме того, эти инструменты нагружают компьютер: при обработке больших объёмов Excel работает медленнее, чем без них.

BI-системы, такие как Power BI или Tableau, решают большинство проблем Excel, но их внедрение требует времени и денег. Компаниям нужно обучать сотрудников, настраивать интеграции и оплачивать лицензии, а это дорого, особенно для небольшого бизнеса.

Павел Козлов

Тренер проекта CIE в Microsoft. Занимается обучением продуктам Microsoft Office и Power BI уже 10 лет

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

Второе ограничение — Excel начинает тормозить при больших расчётах, сводных таблицах и макросах (VBA). Если в файле много формул или автоматизации, работать неудобно: Excel зависает, расчёты занимают много времени.

На форуме «Планета Excel» ещё в 2021 году пользователи жаловались на медленную работу с массивами данных. Источник

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

Чтобы несколько человек могли редактировать таблицу одновременно, у всех должна быть подписка на Microsoft 365 и последняя версия Excel. Файл нужно сохранить в OneDrive или SharePoint Online.

Игорь Крамер

Data Platform Engineer в Exness, консультант по работе с данными

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

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

Пора переходить на SQL 

В отличие от Excel, SQL изначально создан для работы с большими объёмами. Разберём четыре его главных преимущества.

Обработка без ограничений. SQL эффективнее при работе с миллионами строк: информация хранится в связанных таблицах, а поиск ускоряют оптимизированные запросы:

SELECT позволяет быстро выбрать нужные данные из таблиц. Чтобы собрать все заказы клиента с определённым идентификатором, подойдёт запрос: 

SELECT * FROM orders WHERE customer_id = 123;

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

SELECT orders.order_id, customers.name
  FROM orders
  JOIN customers ON orders.customer_id = customers.id;

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

На одном из форумов Stack Overflow пользователь рассказал, что его запрос к таблице с большим количеством записей выполнялся 15 секунд. Чтобы ускорить работу, он добавил в таблицу индексы и оптимизировал типы данных. Время запроса сократилось до 7 секунд. 

Надёжность хранения данных и контроль ошибок. SQL построен на принципах ACID: атомарность, согласованность, изоляция, долговечность. Это значит, что он автоматически проверяет данные на корректность и не позволяет совершать ошибки, которые возникают в Excel.

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

Если кто-то попробует удалить клиента с активными заказами, SQL не позволит этого сделать и выдаст предупреждение.

Игорь Крамер

Data Platform Engineer в Exness, консультант по работе с данными

И что не менее важно, мы можем реализовать тестирование наших данных в SQL, чтобы своевременно обнаруживать проблемы. При использовании Excel всё это приходится трудоёмко выполнять с помощью функции VLOOKUP (ВПР). 

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

SQL позволяет настроить такие процессы один раз и затем пользоваться ими постоянно, при этом экономя время и снижая риск ошибок. 

Простой SQL-скрипт может выглядеть так:

-- Выбираем товары, запас которых ниже минимального
SELECT product_id, product_name, stock_quantity
FROM products
WHERE stock_quantity < min_required_quantity;

Затем этот запрос можно использовать внутри автоматизированного процесса, например:

  • запланировать выполнение запроса; 

  • проверить результат: если в ответе есть строки, значит, есть товары с низким запасом;

  • отправить сотрудникам уведомление по имейлу со списком товаров, которые требуют пополнения.

Процесс настраивается один раз и далее выполняется автоматически с помощью инструментов типа SQL-агентов — SQL Server Agent, автоматизированных сервисов — Airflow, cron, а также скриптов на Python, которые подключаются к SQL, обрабатывают данные и рассылают уведомления.

Игорь Крамер

Data Platform Engineer в Exness, консультант по работе с данными

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

Именно здесь на помощь приходит SQL, который позволяет организовать данные структурированно, обеспечивая надёжность информации. На основе данных из SQL можно легко строить отчёты и аналитику в таких инструментах, как Power BI, Metabase или Tableau, а также автоматизировать процессы, рассылки и уведомления. 

Когда стоит отказаться от Excel в пользу SQL 

Николай Хащанов

Фрилансер, ex-fullstack-разработчик в Aurora Group

SQL — логичный выбор, если компании нужна централизованная система хранения: CRM, ERP, ECM. Однако важно понимать, что это не конечный инструмент, а основа, которая отвечает за хранение и обработку данных. 

Для полноценной работы понадобятся:

  • Бэкенд — чтобы управлять бизнес-логикой, обрабатывать запросы и передавать данные.

  • Фронтенд — удобный интерфейс, который позволит сотрудникам взаимодействовать с базой без написания SQL-запросов.

  • ETL-процессы — механизмы для переноса, очистки и обновления данных из разных источников.

Без этих компонентов SQL останется просто хранилищем, с которым сможет работать только IT-отдел, а не конечные пользователи. 

Как перейти с Excel на SQL

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

Ниже — пошаговый план, который поможет структурировать данные, минимизировать ошибки и настроить SQL-систему так, чтобы она облегчила работу.

Шаг №1: выделите основные сущности и определите их связи. Для этого подойдёт простая и удобная для аналитики схема «снежинка». Выделите сущности «клиенты», «заказы», «товары» и определите связи между ними. 

Пример таблиц ↓

-- Таблица фактов (Заказы)
CREATE TABLE orders (
    order_id INT PRIMARY KEY,
    customer_id INT NOT NULL,
    product_id INT NOT NULL,
    order_date DATE NOT NULL,
    amount DECIMAL NOT NULL CHECK (amount >= 0)
);
-- Таблица измерения (Клиенты)
CREATE TABLE customers (
    customer_id INT PRIMARY KEY,
    customer_name VARCHAR(100) NOT NULL
);
-- Таблица измерения (Товары)
CREATE TABLE products (
    product_id INT PRIMARY KEY,
    product_name VARCHAR(100) NOT NULL,
    category_id INT NOT NULL
);
-- Таблица измерения (Категории)
CREATE TABLE category (
    category_id INT PRIMARY KEY,
    category_name VARCHAR(100) UNIQUE NOT NULL
);
ALTER TABLE orders
ADD FOREIGN KEY (customer_id) REFERENCES customers(customer_id);
ALTER TABLE orders
ADD FOREIGN KEY (product_id) REFERENCES products(product_id);
ALTER TABLE products
ADD FOREIGN KEY (category_id) REFERENCES category(category_id);

Пример связей между ними ↓

ALTER TABLE orders
ADD FOREIGN KEY (customer_id) REFERENCES customers(customer_id);
ALTER TABLE orders
ADD FOREIGN KEY (product_id) REFERENCES products(product_id);

Шаг №2: очистите и структурируйте данные. Проведите анализ данных, удалите дубли записей, исправьте ошибки, заполните пустые поля. 

Шаг №3: настройте процесс переноса данных из Excel в базу данных. Сделать это легче всего через специальные инструменты — DBeaver или DataGrip. 

После переноса данных в базу можете использовать их в SQL-запросах или подключать к инструментам анализа и визуализации: pandas, Power BI. 

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

Когда SQL и Excel можно использовать вместе 

Если вам нравится привычный интерфейс Excel, можно подключать SQL-базу данных через Power Query или ODBC и получать актуальные отчёты в привычном табличном виде. Учитывайте, что интерфейс Excel не всегда будет подходящим решением при большом количестве данных и столбцов. 

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

Через ODBC. С его помощью можно подключиться напрямую к SQL-серверу и получать данные:

  • В Excel: «Данные» → «Получить данные» → «Из других источников» → «Из ODBC».

  • Укажите источник данных SQL и учётные данные.

Через Power Query. Этот способ поможет сделать анализ данных в Excel более гибким и удобным: 

  • В Excel: «Данные» → «Получить данные» → «Из базы данных» → «Из SQL Server».

  • Укажите сервер и базу данных, загрузите нужные таблицы.

Резюмируем  

Excel хорош для небольших задач, но если данные растут, расчёты замедляют процессы, а совместная работа превращается в хаос — пора переходить на SQL. Он быстрее обрабатывает большие объёмы, предотвращает ошибки и легко масштабируется под задачи бизнеса.

Напишите в комментариях: согласны ли с мнением, что Excel годится только для простых задач, вычислений? Или, наоборот, считаете, что мы слишком категоричны.

Прикоснуться к магии обработки и анализа данных — решению прикладных задач с помощью SQL — и открыть бóльшие перспективы в карьере позволит профессиональное обучение «SQL и получение данных». С промокодом DSHABR10 цена ещё приятнее.