Excel — клиент SQL, а не сервер. Он отправляет запрос к базе данных и показывает результат в таблице, но самостоятельно SQL-синтаксис не понимает. В статье разберём три сценария: запросы к внешней базе через Power Query, SQL к листам Excel без внешней базы и двунаправленный перенос данных между Excel и SQL Server. Для кого: аналитики и менеджеры, которые работают в Excel и хотят освоить SQL в своей практике. Об Excel как инструменте аналитика — в статье Excel для аналитика данных.
Excel не выполняет SQL-запросы самостоятельно — ему нужен источник данных: SQL Server, PostgreSQL, MySQL, Access или SQLite. Excel здесь клиент: отправляет запрос к базе данных, получает результат и выводит его на лист. Выбор метода подключения зависит от задачи и имеющихся инструментов.
Сделайте следующий шаг в карьере
Подберите обучение, которое поможет освоить новые компетенции
Четыре способа работать с SQL в Excel:
Power Query — оптимальный выбор: понятный интерфейс, повторяемые запросы, обновление одной кнопкой без перенастройки.

Знание Excel — прямой путь к SQL. Большинство операций, которые вы делаете в таблицах, имеют точные аналоги в реляционных базах данных. Фильтр, сводная таблица, ВПР — всё это есть в SQL, только записывается иначе.
| Операция в Excel |
Аналог в SQL |
Пример SQL |
|---|---|---|
| Фильтр | WHERE | WHERE amount > 10000 |
| Сортировка | ORDER BY | ORDER BY date DESC |
| Выбрать столбцы | SELECT | SELECT id, name FROM orders |
| Сводная таблица | GROUP BY | GROUP BY region |
| ВПР | JOIN / LEFT JOIN | LEFT JOIN clients ON orders.id = clients.id |
| ЕСЛИ | CASE WHEN | CASE WHEN score > 90 THEN ‘A’ END |
| СУММ | SUM() | SUM(amount) |
| СУММПРОИЗВ по уникальным | COUNT(DISTINCT) | COUNT(DISTINCT user_id) |
| Нарастающий итог | SUM() OVER() | SUM(amount) OVER(ORDER BY date) |
| РАНГ | RANK() | RANK() OVER(ORDER BY score DESC) |
JOIN заменяет ВПР и работает быстрее на больших объёмах. GROUP BY воспроизводим: запрос всегда даёт одинаковый результат — в отличие от сводной таблицы, которую легко случайно изменить вручную.
Если хотите разобраться с SQL и Python в аналитике данных глубже — посмотрите программу Data-аналитик: Python и SQL в анализе данных: около двух месяцев с господдержкой.
Power Query поддерживает SQL начиная с Excel 2016 — поле «Инструкция SQL» появляется в дополнительных параметрах при создании подключения к базе данных. Запрос выполняется на стороне сервера: в Excel попадает только результат, а не весь массив данных. Это важно при работе с большими таблицами — Excel не перегружается лишними строками. Подробный разбор возможностей инструмента — в статье Power Query в Excel.

Вкладка «Данные» → «Получить данные» → «Из базы данных».
Результат шага: открылось диалоговое окно подключения или Навигатор с деревом базы данных.
Раскройте «Дополнительные параметры» в диалоге подключения — появится поле «Инструкция SQL». Пример запроса:
SELECT order_id, amount
FROM orders
WHERE amount > 10000
ORDER BY amount DESC
Синтаксис зависит от СУБД. Для SQL Server и Access — TOP 100; для PostgreSQL, MySQL и SQLite — LIMIT 100. Это разные SQL-диалекты: TOP в PostgreSQL вызовет ошибку синтаксиса. Power Query отправляет запрос на сторону сервера — Excel получает только отфильтрованные строки.
Power Query показывает предпросмотр. Убедитесь, что строки и столбцы корректны, и нажмите «Загрузить»:
Обновление: ПКМ по таблице → «Обновить» или автообновление через «Свойства подключения». Запрос повторяем: при тех же данных в базе результат всегда одинаковый, независимо от пользователя.
Обычный лист Excel — не база данных. Написать SELECT прямо в ячейку не получится. Для SQL-запросов к листам Excel без внешней базы существует три обходных пути.
XLTools удобен для быстрого старта с простыми SELECT-запросами; VBA+ADODB — если нужна гибкость без платной лицензии.
Курс аналитика данных в Excel
Научитесь анализировать данные и превращать таблицы в понятные отчёты
SQL → Excel. Основной метод — Power Query с SQL-запросом (описан выше). Быстрая альтернатива: выполните запрос в SSMS (SQL Server Management Studio) → ПКМ на результате → «Сохранить результаты как» → CSV → откройте в Excel. Пример запроса для SQL Server:
SELECT TOP 100 order_id, client, amount
FROM orders
WHERE status = ‘completed’
Для PostgreSQL замените TOP 100 на LIMIT 100 в конце запроса — синтаксис SQL-диалектов различается.
Excel → SQL Server. SQL Server Import Wizard — встроенный мастер импорта данных из Excel в SQL:
Частая ошибка: числа в Excel сохранены как текст — SQL Server отклонит такую вставку. Перед загрузкой данных из Excel в SQL обязательно проверьте форматы столбцов.
Ошибка 1: ожидать SQL без источника. Excel требует подключение к базе данных — SQL Server, Access, SQLite. Без источника данных запрос не выполнится.
Ошибка 2: смешивать диалекты. TOP N — SQL Server и Access; LIMIT N — PostgreSQL, MySQL, SQLite. Перепутали — ошибка синтаксиса.
Ошибка 3: запрос без ограничений. Без WHERE и TOP/LIMIT запрос вернёт миллионы строк — Excel зависнет или выдаст «недостаточно памяти». Всегда ограничивайте выборку.
Ошибка 4: INSERT/UPDATE в XLTools. Надстройка поддерживает только SELECT. Для изменения данных используйте SSMS или VBA+ADODB.
Выполните запрос в SSMS → ПКМ на результатах → «Сохранить результаты как» → CSV → откройте в Excel. Альтернатива: выделите и скопируйте результат из SSMS, вставьте в Excel как таблицу. Для автоматического обновления без ручных действий всё равно рекомендуется Power Query.
Нет. Excel — клиент SQL, а не сервер. Запрос вводится в Power Query (поле «Инструкция SQL»), Microsoft Query или надстройку XLTools. В ячейках работают только формулы Excel; SQL-синтаксис там не поддерживается.
Установите ODBC-драйвер psqlODBC — он бесплатный. В Power Query: «Получить данные» → «Из других источников» → «ODBC» → выберите источник → вставьте SQL-запрос. Помните: PostgreSQL использует LIMIT, а не TOP.
XLTools позволяет писать SQL к листам Excel через SQLite-движок — без внешней базы данных. Power Query подключается к внешним СУБД: SQL Server, PostgreSQL, MySQL. XLTools платный (~698 руб./мес.); Power Query встроен в Excel без дополнительных затрат.
В Power Query: «Данные» → «Запросы и подключения» → ПКМ на запросе → «Свойства» → «Обновлять каждые N минут» или «Обновлять при открытии файла». Запрос будет выполняться к базе автоматически по заданному расписанию.
Скорее всего, вы используете синтаксис не той базы. TOP 100 — SQL Server и Access; LIMIT 100 — PostgreSQL, MySQL и SQLite. Уточните СУБД источника и скорректируйте запрос. Также проверьте, установлен ли ODBC-драйвер для вашей базы данных.
Нет. Для обучения подойдёт Microsoft Access (входит в Office) или SQLite — без сервера и без лицензии. XLTools работает с листами Excel через SQLite-движок. Для серьёзной практики — бесплатная редакция SQL Server Express.
Да — через XLTools или VBA+ADODB. Предварительно отформатируйте данные как таблицы Excel: «Вставка» → «Таблица». В XLTools напишите LEFT JOIN по общему полю. VBA+ADODB поддерживает вложенные запросы без дополнительных лицензий.
Превратите интерес к теме в новую профессию
Оставьте заявку — поможем выбрать программу и расскажем об условиях обучения
Оставить заявку