QUERY в Google Sheets: инструкция и практические примеры
Функция QUERY в Google Sheets использует SQL‑подобный язык для извлечения, фильтрации и сортировки таблиц прямо в диапазоне. Это мощнее, чем простая фильтрация: поддерживается SELECT, WHERE, ORDER BY, GROUP BY, LABEL и другие конструкции. В статье — синтаксис, примеры (фильтрация, сортировка, несколько условий, запросы между листами), рекомендации, таблица приёмки и чеклисты.

Что такое функция QUERY
QUERY — это функция Google Sheets, которая позволяет выполнять запросы к диапазону данных с использованием SQL‑подобного синтаксиса. Коротко: представьте таблицу как базу данных и напишите SELECT/WHERE/ORDER BY вместо сложных цепочек формул.
Определение терминов в одну строку
- Диапазон: набор ячеек, например A1:C10.
- Заголовки: первая строка диапазона, описывающая столбцы.
- Клаузa: часть запроса (SELECT, WHERE и т. п.).
Синтаксис функции
=QUERY(data, query, [headers])- data: диапазон ячеек (один или несколько столбцов и строк).
- query: строка с инструкцией на SQL‑подобном языке, например “SELECT A, B WHERE C > 100”.
- [headers]: необязательный параметр — число строк заголовков в начале диапазона (0, 1 и т. д.).
Важно: строки запроса всегда пишутся в кавычках. Если внутри строки нужны кавычки, используйте одинарные или экранируйте.
Частые конструкции и их назначение
- SELECT — выбор столбцов (или * для всех).
- WHERE — фильтрация по условию.
- ORDER BY — сортировка по столбцу ASC/DESC.
- GROUP BY — агрегирование по столбцам.
- LABEL — переименование заголовков в результате.
- FORMAT — форматирование вывода.
- LIMIT — ограничение числа строк.
Примеры использования
Фильтрация данных
Предположим, у вас есть продажи в столбцах A (товар), B (количество), C (сумма продаж). Нужно показать строки, где сумма продаж больше $500. Данные начинаются с A2.
=QUERY(A:C, "SELECT * WHERE C > 500")
Этот запрос вернёт все строки, где значение в столбце C больше 500.
Сортировка данных
Отсортируем те же данные по названию товара в алфавитном порядке:
=QUERY(A2:C7, "SELECT * ORDER BY A ASC")
ORDER BY принимает несколько столбцов и ключевые слова ASC или DESC.
Комбинирование нескольких условий
Показать строки с количеством больше 30 и суммой продаж больше $500:
=QUERY(A2:C7, "SELECT * WHERE B > 30 AND C > 500")
Запрос данных с другого листа
Чтобы брать данные с листа Sheet1 и показывать в Sheet2 только студентов с оценкой выше 75, используйте ссылку на лист:
=QUERY(Sheet1!A1:C, "SELECT A, B, C WHERE C > 75", 1)

Параметр headers=1 указывает, что первая строка диапазона — заголовки.
Полезные приёмы и советы
- Если у вас текстовые значения с пробелами, используйте одинарные кавычки: WHERE A = ‘Product X’.
- Для динамических диапазонов используйте открытый диапазон, например A1:C (без конечной строки).
- Учтите локаль: разделитель десятичных в некоторых локалях — запятая. Если запрос «не парсится», проверьте региональные настройки таблицы.
- Если желаете сопоставлять с датами, приводите даты в формате YYYY‑MM‑DD или используйте DATE ‘YYYY-MM-DD’ в запросе.
Важно: QUERY не всегда корректно обрабатывает сложные формулы внутри диапазона (например, массивные пользовательские функции). В таких случаях сначала скопируйте результаты формул в значения.
Ограничения и когда QUERY не подходит
- Нельзя обращаться к ячейкам вне указанного диапазона.
- Для некоторых задач удобнее FILTER, если нужен простой линейный фильтр без SQL‑логики.
- Очень большие диапазоны с сложными запросами заметно замедляют лист.
- Если необходима построчная фильтрация с динамическими параметрами, иногда проще использовать вспомогательные столбцы.
Альтернативные подходы
- FILTER: прост и быстр для базовой фильтрации.
- SORT / SORTN: быстрый способ сортировки/обрезки.
- Pivot table: если нужно агрегировать и визуализировать данные.
- QUERY + ARRAYFORMULA: для комбинирования запросов с вычислениями.
Мини‑методология: как построить запрос за 5 шагов
- Определите диапазон данных и убедитесь в корректности заголовков.
- Составьте SELECT — какие столбцы нужны.
- Добавьте WHERE для условий фильтрации.
- Укажите ORDER BY и LIMIT при необходимости.
- Протестируйте запрос на небольшой выборке и проверьте типы данных.
Шпаргалка (cheat sheet)
- Все столбцы: SELECT *
- Выбрать столбцы A и C: SELECT A, C
- Фильтр по строкам: WHERE B > 10
- Сортировка по A по убыванию: ORDER BY A DESC
- Ограничить 10 строк: LIMIT 10
- Переименовать столбец: LABEL A ‘Товар‘
Примеры более сложных выражений:
=QUERY(A:C, "SELECT A, SUM(C) WHERE B > 0 GROUP BY A ORDER BY SUM(C) DESC LIMIT 5", 1)Этот запрос агрегирует сумму по колонке C для каждого товара A, сортирует по сумме и выводит топ‑5.
Решение типовых ошибок
- Пустой результат: проверьте кавычки и пробелы в запросе.
- Неверные заголовки: установите третий параметр headers вручную.
- Ошибка парсинга: проверьте локаль и разделители десятковых.
Роли и чеклисты
Аналитик
- Убедиться, что диапазон покрывает все данные.
- Проверить типы данных (числа, даты, текст).
- Протестировать на выборке.
Менеджер
- Проверить, что результат читаем и понятен.
- Попросить переименовать колонки через LABEL если нужно.
Разработчик отчётов
- Автоматизировать диапазоны с помощью именованных диапазонов.
- Добавить LIMIT/ORDER BY для стабильных результатов.
Decision tree: выбрать QUERY или альтернативу
flowchart TD
A[Нужно ли SQL‑подобное извлечение?] -->|Да| B[Использовать QUERY]
A -->|Нет| C[Использовать FILTER/SORT/PIVOT]
B --> D{Диапазон большой?}
D -->|Да| E[Оптимизировать: уменьшить диапазон или промежуточные таблицы]
D -->|Нет| F[Разрабатывать запрос]Факто‑бокс: ключевые возможности
- Поддерживаемые клаузы: SELECT, WHERE, ORDER BY, GROUP BY, PIVOT, LIMIT, OFFSET, LABEL, FORMAT.
- Поддержка агрегатных функций: SUM, AVG, COUNT, MAX, MIN.
- Работает с диапазонами на других листах: Sheet1!A1:C.
- Чувствительна к локали и форматам дат.
Критерии приёмки
- Запрос возвращает ожидаемые строки при тестовых данных.
- Заголовки названы корректно (LABEL) и понятны бизнес‑пользователям.
- Производительность на объёме данных в продакшене удовлетворительна.
- Все используемые столбцы докуменированы.
Примеры быстрых шаблонов
- Топ N по сумме:
=QUERY(A:C, "SELECT A, SUM(C) WHERE C IS NOT NULL GROUP BY A ORDER BY SUM(C) DESC LIMIT 10", 1)- Запрос по дате (фильтр после конверсии в строку):
=QUERY(A:C, "SELECT * WHERE A >= date '2023-01-01' AND A < date '2024-01-01'", 1)- Показать уникальные значения и их количество:
=QUERY(A:A, "SELECT A, COUNT(A) WHERE A IS NOT NULL GROUP BY A", 1)Мини‑глоссарий (одна строка каждая)
- SELECT — выбрать столбцы.
- WHERE — фильтр строк.
- ORDER BY — сортировка.
- GROUP BY — группировка для агрегатов.
- LABEL — переименовать столбцы в результате.
Безопасность и приватность
QUERY работает внутри таблицы и не отправляет данные за её пределы. Если в запросах используются важные персональные данные, следите за доступом к документу и соблюдайте внутренние правила обработки данных.
Краткое резюме
Функция QUERY — универсальный инструмент для извлечения и агрегирования данных в Google Sheets. Она особенно полезна, когда нужно выразить выборку в виде SQL‑подобного запроса. Для простых фильтраций подойдёт FILTER, но для сложных выборок и агрегаций QUERY часто экономит время и делает формулы компактнее.
Ключевые шаги: определить диапазон, выбрать столбцы, добавить WHERE/ORDER BY/GROUP BY при необходимости, протестировать на выборке и проверить заголовки.
Важно: учитывайте локаль, формат дат и типы данных при построении запросов.
Источник практики: опыт работы с табличными данными и стандартные возможности Google Sheets.
Похожие материалы
Как писать отзывы в Google Maps — руководство
Как найти начальную работу в федеральном правительстве
Переэкспонирование в Photoshop и Photoshop Express
Съёмка еды: практическое руководство
Как пользоваться Object Eraser на Samsung