Перейти к содержимому
8 (495) 660-36-72 8 (800) 600-36-72 (по РФ бесплатно)
Компьютерные навыки Обновлено: 27 июля 2026

QUERY в Google Таблицах: SELECT, WHERE, GROUP BY и PIVOT на примерах

QUERY превращает диапазон Google Таблиц в новый отчёт: выбирает столбцы, фильтрует строки, группирует значения и разворачивает категории в колонки. Главное — различать аргументы самой функции и текст запроса, который использует язык Google Visualization.
QUERY в Google Таблицах: SELECT, WHERE, GROUP BY и PIVOT на примерах

Что делает QUERY

Функция QUERY выполняет запрос к диапазону и возвращает динамическую таблицу. Исходные строки остаются на месте, а результат пересчитывается при изменении данных. Это удобно для отчётов, где нужно повторяемо отобрать оплаченные заказы, сгруппировать выручку по менеджерам или развернуть категории по колонкам.

QUERY похож на SQL, но не является полным SQL. В языке запросов Google Visualization есть `select`, `where`, `group by`, `pivot`, `order by`, `limit`, `offset`, `label` и `format`, но нет обычной конструкции `from` и полноценного соединения таблиц. Не переносите SQL-запрос без адаптации.

Для общего знакомства с диапазонами, совместной работой и формулами сначала посмотрите обзор Google Таблиц.

Синтаксис функции

=QUERY(данные; запрос; [заголовки])

  • данные — исходный диапазон или массив.
  • запрос — текст на языке Google Visualization, заключённый в кавычки или взятый из ячейки.
  • заголовки — число строк заголовка в начале диапазона; если аргумент пропущен или равен −1, функция пытается определить его автоматически.

В русской локали разделителем аргументов обычно служит точка с запятой. В другой локали может использоваться запятая. Внутри строки запроса запятые между выбранными столбцами сохраняются, а ключевые слова пишутся на английском. Колонки диапазона обозначаются буквами A, B, C, а не текстом заголовка.

Простой выбор столбцов

=QUERY(A1:F; "select A, B, E"; 1)

Формула возвращает столбцы A, B и E из диапазона A1:F. Последний аргумент 1 сообщает, что первая строка — заголовок.

Подготовьте диапазон

Одна строка должна означать один объект: заказ, платёж, обращение или запись. В столбце желательно хранить один тип данных. Официальная справка Google предупреждает: если в колонке смешаны типы, преобладающий тип определяет тип столбца, а значения остальных типов рассматриваются как пустые. Поэтому числа, сохранённые как текст, могут исчезнуть из суммы.

  • Уберите объединённые ячейки внутри данных.
  • Не вставляйте промежуточные заголовки между строками.
  • Приведите даты к настоящему типу даты, а не визуально похожему тексту.
  • Проверьте пробелы и регистр категорий.
  • Зафиксируйте число строк заголовка явно.

Для примеров предположим, что A — дата, B — менеджер, C — категория, D — регион, E — выручка, F — статус.

SELECT: выберите и переставьте столбцы

`select` задаёт столбцы и их порядок. Формула ниже возвращает менеджера, регион и выручку:

=QUERY(A1:F; "select B, D, E"; 1)

Можно использовать выражения и агрегаты, но обычный столбец рядом с агрегатом должен участвовать в `group by`. Если запрос содержит только `select sum(E)`, результатом будет одна агрегированная строка.

WHERE: отфильтруйте строки

`where` задаёт условие. Текстовые значения заключают в одинарные кавычки внутри строки запроса:

=QUERY(A1:F; "select A, B, E where F = 'Оплачен' and E > 0"; 1)

Сравнение строк чувствительно к регистру для ряда операций языка запросов, поэтому сначала нормализуйте категории либо применяйте функции `lower()` и `upper()` там, где это уместно. Для пропусков используйте `is null` и `is not null`, а не сравнение с пустой строкой во всех случаях.

Дата в запросе записывается литералом `date` в формате год-месяц-день:

=QUERY(A1:F; "select A, B, E where A >= date '2026-07-01' and A < date '2026-08-01'"; 1)

Такой полуоткрытый интервал включает июль и не зависит от наличия времени в последнем дне. Если дата хранится текстом, сначала преобразуйте источник.

GROUP BY: соберите итог по категориям

Чтобы получить выручку по менеджерам, выберите B и сумму E, затем сгруппируйте по B:

=QUERY(A1:F; "select B, sum(E) where F = 'Оплачен' group by B label sum(E) 'Выручка'"; 1)

`label` меняет заголовок результата, но не идентификатор в запросе. Нельзя написать `select Менеджер`, если это лишь видимое название колонки B. При группировке каждый выбранный неагрегированный столбец должен быть указан в `group by`; иначе запрос завершится ошибкой разбора.

АгрегатНазначениеПроверка
sum(E)Сумма числового столбцаЧисла не сохранены как текст
avg(E)Среднее непустых значенийПонимать состав и пропуски
count(E)Количество непустых числовых значенийНе путать со всеми строками
min(E), max(E)Минимум и максимумНет ошибочных выбросов

PIVOT: разверните значения в колонки

`pivot` создаёт отдельные колонки для уникальных значений указанного поля и подразумевает агрегирование. Например, выручка менеджеров по категориям:

=QUERY(A1:F; "select B, sum(E) where F = 'Оплачен' group by B pivot C label sum(E) 'Выручка'"; 1)

Каждая уникальная категория C станет колонкой. Перед публикацией отчёта нормализуйте написание: «Сервис» и «сервис» способны превратиться в разные значения. Если категорий сотни, PIVOT создаст слишком широкий результат; лучше заранее ограничить набор или выбрать другой формат.

ORDER BY, LIMIT и OFFSET

Сортировать можно по столбцу или агрегату:

=QUERY(A1:F; "select B, sum(E) where F = 'Оплачен' group by B order by sum(E) desc limit 10"; 1)

Формула возвращает десять менеджеров с наибольшей суммой. `offset` пропускает заданное число первых строк после сортировки и может использоваться вместе с `limit`, но это не стабильная пагинация, если порядок не определён однозначно.

Храните запрос в отдельной ячейке

Длинный текст удобнее поместить, например, в H1 и передать ссылкой:

=QUERY(A1:F; H1; 1)

Плюсы — запрос легче читать и менять. Минус — пользователь может случайно отредактировать его, поэтому подпишите ячейку и защитите диапазон по правилам команды. Для динамического условия соединяйте строки аккуратно и проверяйте кавычки. Дату лучше формировать в требуемом формате, а не подставлять визуальное представление ячейки.

Как исправлять ошибки

  1. Сократите запрос до `select *` и проверьте диапазон.
  2. Укажите точное число строк заголовка.
  3. Добавляйте по одной конструкции: `select`, затем `where`, затем агрегирование.
  4. Проверьте буквы колонок после изменения исходного диапазона.
  5. Сверьте одинарные кавычки вокруг текста и формат литерала даты.
  6. Убедитесь, что агрегируемый столбец действительно числовой.
  7. Проверьте правило: неагрегированные поля из `select` входят в `group by`.
  8. Сравните контрольную сумму и число строк с независимой сводной.

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

QUERY и данные из другой таблицы

Функцию можно применить к результату IMPORTRANGE. В массиве без буквенных идентификаторов используются `Col1`, `Col2` и далее. Сначала проверьте сам импорт, затем запрос; иначе ошибка доступа и ошибка синтаксиса смешаются.

=QUERY(IMPORTRANGE($B$1; "Продажи!A1:F1000"); "select Col2, sum(Col5) group by Col2"; 1)

Не импортируйте целые столбцы без необходимости. Для крупных и часто меняющихся наборов выгоднее агрегировать данные в источнике и передавать компактный диапазон.

Официальная документация

Синтаксис функции и поведение заголовков сверены 27 июля 2026 года с официальной справкой Google по QUERY. Порядок конструкций, агрегаты, даты и PIVOT проверены по официальному справочнику языка запросов Google Visualization. Интерфейс и доступность функций могут меняться; опирайтесь на справку, а не на расположение команд в чужом скриншоте.

Практика вместо теории

Освойте QUERY, формулы и построение устойчивых отчётов в таблицах.

Курс «Excel + Google Таблицы с нуля до PRO» соединяет формулы, анализ и автоматизацию отчётов. Преподаватель Ренат Шагабутдинов специализируется на Excel и Google Таблицах.

Надёжная QUERY начинается с чистого диапазона, явного заголовка и простого запроса. Добавляйте фильтрацию и агрегирование по одному шагу и каждый итог сверяйте независимо.

Вопросы и ответы

По теме