Написать 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. Для соседних задач пригодятся эти разборы:
- Как SQL-запрос выгрузить в Excel: SSMS, CSV и Power Query
- Как написать SQL-запрос в Access: SELECT, WHERE и запуск в режиме SQL
- Подключение к базе данных SQL в Python
- SQL Server и SSMS: установка и первый запрос



