6 октября 2026

Как использовать SQL в Excel: пошаговая инструкция с примерами

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

SQL в Excel — окно Power Query с запросом на экране ноутбука

Как Excel работает с SQL: четыре метода подключения

Excel не выполняет SQL-запросы самостоятельно — ему нужен источник данных: SQL Server, PostgreSQL, MySQL, Access или SQLite. Excel здесь клиент: отправляет запрос к базе данных, получает результат и выводит его на лист. Выбор метода подключения зависит от задачи и имеющихся инструментов.

image

Сделайте следующий шаг в карьере

Подберите обучение, которое поможет освоить новые компетенции

Выбрать курс

Четыре способа работать с SQL в Excel:

  • Power Query — встроен в Excel 2016 и Microsoft 365. Поддерживает SQL Server, PostgreSQL, MySQL, Oracle, Access. Рекомендованный метод для большинства задач.
  • Microsoft Query — классический инструмент, встроен в Excel, работает через ODBC-драйверы (Open Database Connectivity — универсальный стандарт подключения к СУБД). Устарел, но дополнительной установки не требует.
  • XLTools — надстройка с SQLite-движком (компактная встраиваемая СУБД). Позволяет писать SELECT-запросы к листам Excel без внешней базы. Trial-период ограничен, далее ~698 руб./мес.
  • VBA+ADODB — программный путь через объекты ADODB.Connection и ADODB.Recordset. Встроен в Excel без платной лицензии; требует базовых знаний VBA (Visual Basic for Applications — язык макросов Excel).

Power Query — оптимальный выбор: понятный интерфейс, повторяемые запросы, обновление одной кнопкой без перенастройки.

Четыре метода подключения Excel к SQL: Power Query, Microsoft Query, XLTools, VBA

Аналоги Excel → SQL: шпаргалка для быстрого старта

Знание 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 в анализе данных: около двух месяцев с господдержкой.

Как запустить SQL-запрос в Excel через Power Query

Power Query поддерживает SQL начиная с Excel 2016 — поле «Инструкция SQL» появляется в дополнительных параметрах при создании подключения к базе данных. Запрос выполняется на стороне сервера: в Excel попадает только результат, а не весь массив данных. Это важно при работе с большими таблицами — Excel не перегружается лишними строками. Подробный разбор возможностей инструмента — в статье Power Query в Excel.

Три шага запуска SQL-запроса через Power Query в Excel

Шаг 1. Выбрать источник данных и подключиться

Вкладка «Данные» → «Получить данные» → «Из базы данных».

  • SQL Server: «Из базы данных SQL Server» → введите адрес сервера (например, localhost\SQLEXPRESS) и имя базы данных.
  • PostgreSQL или MySQL: «Из других источников» → «ODBC» → укажите предустановленный ODBC-драйвер. Для PostgreSQL — psqlODBC (бесплатный). Без установленного драйвера Power Query не видит эти базы напрямую.

Результат шага: открылось диалоговое окно подключения или Навигатор с деревом базы данных.

Шаг 2. Ввести SQL-запрос в дополнительные параметры

Раскройте «Дополнительные параметры» в диалоге подключения — появится поле «Инструкция 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 получает только отфильтрованные строки.

Шаг 3. Просмотреть предпросмотр и загрузить данные

Power Query показывает предпросмотр. Убедитесь, что строки и столбцы корректны, и нажмите «Загрузить»:

  • «Таблица» — данные появятся на листе Excel как умная таблица.
  • «Только создать подключение» — данные уйдут в модель данных PowerPivot без вывода на лист.

Обновление: ПКМ по таблице → «Обновить» или автообновление через «Свойства подключения». Запрос повторяем: при тех же данных в базе результат всегда одинаковый, независимо от пользователя.

SQL-запросы к листам Excel без внешней базы данных

Обычный лист Excel — не база данных. Написать SELECT прямо в ячейку не получится. Для SQL-запросов к листам Excel без внешней базы существует три обходных пути.

  1. XLTools — надстройка с SQLite-движком. Пишите SELECT и UNION к именованным таблицам на листах. Ограничения: только Windows, около 70 000 строк максимум из-за ОЗУ, INSERT/UPDATE/DELETE не поддерживается.
  2. VBA + ADODB — Excel подключается к собственному файлу через ADODB.Connection и выполняет запросы, включая сложные подзапросы. Встроено в Excel, без лицензии.
  3. Microsoft Query — устарел, но встроен в Excel без дополнительных установок. Поможет, если других инструментов нет.

XLTools удобен для быстрого старта с простыми SELECT-запросами; VBA+ADODB — если нужна гибкость без платной лицензии.

Курс аналитика данных в Excel

Научитесь анализировать данные и превращать таблицы в понятные отчёты

  • 75% оплатит государство
  • Навык, нужный во всех компаниях
  • Официальное удостоверение + трудоустройство
Оставить заявку
image

Как перенести данные между Excel и SQL Server

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:

  1. ПКМ по базе в SSMS → «Tasks» → «Import Data».
  2. Источник: «Microsoft Excel», путь к файлу .xlsx.
  3. Назначение: SQL Server, нужная таблица.
  4. Маппинг: проверьте соответствие типов данных в столбцах.
  5. Запустите импорт.

Частая ошибка: числа в Excel сохранены как текст — SQL Server отклонит такую вставку. Перед загрузкой данных из Excel в SQL обязательно проверьте форматы столбцов.

Типичные ошибки при работе с SQL в Excel

Ошибка 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.

Часто задаваемые вопросы

Как быстро перенести результат SQL-запроса в Excel без Power Query?

Выполните запрос в SSMS → ПКМ на результатах → «Сохранить результаты как» → CSV → откройте в Excel. Альтернатива: выделите и скопируйте результат из SSMS, вставьте в Excel как таблицу. Для автоматического обновления без ручных действий всё равно рекомендуется Power Query.

Можно ли написать SQL-запрос прямо в ячейке Excel?

Нет. Excel — клиент SQL, а не сервер. Запрос вводится в Power Query (поле «Инструкция SQL»), Microsoft Query или надстройку XLTools. В ячейках работают только формулы Excel; SQL-синтаксис там не поддерживается.

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

Установите ODBC-драйвер psqlODBC — он бесплатный. В Power Query: «Получить данные» → «Из других источников» → «ODBC» → выберите источник → вставьте SQL-запрос. Помните: PostgreSQL использует LIMIT, а не TOP.

Чем XLTools отличается от Power Query при работе с SQL?

XLTools позволяет писать SQL к листам Excel через SQLite-движок — без внешней базы данных. Power Query подключается к внешним СУБД: SQL Server, PostgreSQL, MySQL. XLTools платный (~698 руб./мес.); Power Query встроен в Excel без дополнительных затрат.

Как автоматически обновлять данные из SQL в Excel?

В Power Query: «Данные» → «Запросы и подключения» → ПКМ на запросе → «Свойства» → «Обновлять каждые N минут» или «Обновлять при открытии файла». Запрос будет выполняться к базе автоматически по заданному расписанию.

Почему SQL-запрос не работает в Power Query — ошибка синтаксиса?

Скорее всего, вы используете синтаксис не той базы. TOP 100 — SQL Server и Access; LIMIT 100 — PostgreSQL, MySQL и SQLite. Уточните СУБД источника и скорректируйте запрос. Также проверьте, установлен ли ODBC-драйвер для вашей базы данных.

Нужно ли устанавливать SQL Server для практики SQL в Excel?

Нет. Для обучения подойдёт Microsoft Access (входит в Office) или SQLite — без сервера и без лицензии. XLTools работает с листами Excel через SQLite-движок. Для серьёзной практики — бесплатная редакция SQL Server Express.

Можно ли объединить таблицы с разных листов Excel через SQL?

Да — через XLTools или VBA+ADODB. Предварительно отформатируйте данные как таблицы Excel: «Вставка» → «Таблица». В XLTools напишите LEFT JOIN по общему полю. VBA+ADODB поддерживает вложенные запросы без дополнительных лицензий.

Превратите интерес к теме в новую профессию

Оставьте заявку — поможем выбрать программу и расскажем об условиях обучения

Оставить заявку
icon