Как написать SQL-запрос в Excel: через Power Query и подключение к базе

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

Самый понятный путь для новичка — использовать Power Query: открыть получение данных, выбрать источник, подключиться к базе и указать SQL-запрос в дополнительных параметрах подключения

Как выглядит SQL-запрос для Excel

Например, у вас есть таблица заказов в базе данных. В Excel можно загрузить не всю таблицу, а только нужные строки

SELECT order_id, client_name, amount, created_at
FROM orders
WHERE amount > 10000
ORDER BY created_at DESC;

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

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

Откройте Excel, перейдите к получению данных и выберите источник. Для SQL Server это обычно путь через базу данных SQL Server. Для Access — через файл Access. Для других баз может понадобиться ODBC-драйвер

При подключении Excel может предложить поле для SQL statement или дополнительных параметров. Туда вставляется запрос

SELECT name, city, total_spent
FROM clients
WHERE total_spent >= 5000;

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

Можно ли писать SQL прямо по листу Excel

Обычный лист Excel не работает как SQL-база в привычном смысле. В ячейку нельзя просто написать SELECT * FROM A1:D100 и получить результат как в SQL Server

Но есть обходные варианты: подключить книгу как источник через Power Query, использовать Microsoft Query, ODBC или перенести данные в Access, SQLite или SQL Server. Для большинства учебных и рабочих задач проще считать Excel местом для просмотра результата, а SQL-запрос выполнять к нормальному источнику данных

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

SQL-запрос к SQL Server из Excel

Пример запроса, который можно использовать при подключении к SQL Server:

SELECT TOP 100
    customer_name,
    city,
    total_amount
FROM sales
WHERE total_amount > 10000
ORDER BY total_amount DESC;

TOP 100 ограничивает результат первыми ста строками. Это удобно для проверки, чтобы случайно не загрузить в Excel слишком большой набор данных

В PostgreSQL или SQLite похожий запрос будет записан иначе:

SELECT customer_name, city, total_amount
FROM sales
WHERE total_amount > 10000
ORDER BY total_amount DESC
LIMIT 100;

Поэтому перед вставкой запроса нужно понимать, к какой базе подключается Excel

Мини-практика

Если у вас есть SQL Server, создайте небольшую таблицу sales, подключитесь к ней из Excel через Power Query и загрузите только продажи больше 10000. Если SQL Server пока не установлен, начните с Access: создайте таблицу в Access, напишите запрос там, а затем подключите Access-файл к Excel

Для проверки результата измените условие с > 10000 на > 5000 и обновите запрос в Excel. Если строк стало больше, значит фильтр работает

Частые ошибки

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

Вторая ошибка — вставить синтаксис не той базы. TOP работает в SQL Server и Access, а LIMIT чаще используется в SQLite, MySQL и PostgreSQL

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

Что почитать дальше по SQL

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

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

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x