Excel и Google Workspace / Формулы Google Таблиц
QUERY WHERE и ORDER BY в Google Таблицах
QUERY позволяет писать запросы к диапазону почти как SQL: фильтрация, сортировка, группировка и агрегация в одной формуле. QUERY с WHERE и ORDER BY нужен, когда фильтрацию и сортировку удобнее описать одним запросом.
Формула
Обозначения
- $data$
- таблица или диапазон данных
- $query$
- строка запроса с select, where и order by
- $headers$
- число строк заголовков
Условия применения
- Диапазон в первом аргументе должен быть корректным и включать заголовки или указать header=0/1.
- Запрос нужно писать как строку в кавычках; имена столбцов берутся по заголовкам или по буквенным индексам.
- Используйте одиночные кавычки для строковых литералов внутри запроса.
Ограничения
- Сложные SQL-конструкции имеют иной синтаксис и поддерживаются не как в полноценном SQL.
- Ошибки в регистре и пробелах в строке запроса приводят к ошибкам разбора.
- При локализации нужна аккуратность с разделителями и форматом дат.
Подробное объяснение
QUERY принимает источник данных и строку языка запросов. Внутри запроса указываются выражения select/where/group by/order by/having, которые обрабатываются на уровне массива.
Смысл страницы — показать рабочий сценарий, ограничения и поведение формулы в живой таблице. Например, можно выбрать имя и сумму только по оплаченным заказам, а затем отсортировать результат по сумме убыванию. Такая страница не дублирует базовый SELECT: она показывает практический шаг от выбора столбцов к условиям и упорядочиванию. В отличие от простого перечисления аргументов, здесь важно понимать, как формула меняет диапазон результата, что происходит при пустых строках и как она сочетается с другими функциями Google Таблиц.
Как пользоваться формулой
- Выберите диапазон и убедитесь, что первая строка — заголовки (если указано header=1).
- Соберите простой запрос для фильтрации и затем добавляйте группировку.
- Проверьте корректность кавычек и пробелов внутри строки.
- Тестируйте на ограниченном участке данных, затем расширяйте диапазон.
Историческая справка
QUERY была включена как часть расширения аналитических возможностей Google Sheets и позволяет закрывать часть задач, которые раньше требовали скриптов.
Функция рассматривается как часть экосистемы Google Sheets и Google Docs Editors. Исторический блок здесь полезен не как биография автора, а как контекст появления облачных таблиц, совместной работы и динамических массивов, которые изменили привычный способ строить отчеты.
Историческая линия формулы
Справка по QUERY находится в официальном разделе помощи Google Docs Editors. У функций Google Таблиц нет корректного единоличного автора. Их развитие связано с продуктовой эволюцией электронных таблиц, SQL-подобных запросов, динамических массивов и облачной совместной работы, поэтому атрибуция описывает технологическую линию, а не персональное открытие.
Пример
`=QUERY(A1:F200, "select B, count(B) where C > 100 group by B order by count(B) desc", 1)` выдаст число строк по каждому статусу выше порога. Например, можно выбрать имя и сумму только по оплаченным заказам, а затем отсортировать результат по сумме убыванию. Такая страница не дублирует базовый SELECT: она показывает практический шаг от выбора столбцов к условиям и упорядочиванию.
Частая ошибка
Типичная ошибка — забыть, что заголовок считается строкой 1, и смещение колонок в запросе даёт неверный результат. Частая ошибка — неправильно поставить кавычки внутри строки запроса. В русской локали интерфейса разделители аргументов могут отличаться, но язык запроса QUERY остается похожим на SQL и использует имена столбцов Col1 или буквы исходного диапазона в зависимости от типа входных данных.
Практика
Задачи с решением
Сводка продаж по региону и менеджеру
Условие. A1:F200: B-менеджер, C-регион, D-сумма, E-статус.
Решение. =QUERY(A1:F200, "select B, C, sum(D) where E='Продажа' group by B, C", 1)
Ответ. =QUERY(A1:F200, "select B, C, sum(D) where E='Продажа' group by B, C", 1)
Сортировка результатов по сумме
Условие. A1:F100, нужно сгруппировать и отсортировать.
Решение. =QUERY(A1:F100, "select C, sum(D) where E='Продажа' group by C order by sum(D) desc", 1)
Ответ. =QUERY(A1:F100, "select C, sum(D) where E='Продажа' group by C order by sum(D) desc", 1)
Дополнительные источники
- Google Docs Editors Help: QUERY function - https://support.google.com/docs/answer/3093343?hl=en
- Google Docs Editors Help: Google Sheets function list - https://support.google.com/docs/table/25273?hl=en
- Google Docs Editors Help: Google Sheets function list
- Google Docs Editors Help: function documentation for the corresponding Google Sheets function
Связанные формулы
Excel и Google Workspace
QUERY в Google Таблицах: базовый SELECT
QUERY выполняет запрос к диапазону Google Таблиц на языке, похожем на SQL. Базовый SELECT выбирает нужные столбцы и строки по условию.
Excel и Google Workspace
Google Sheets: FILTER для точного отбора строк
Функция FILTER возвращает все строки из диапазона, которые удовлетворяют условиям. Это удобно для отфильтрованных отчётов, без ручной сортировки и промежуточных формул. FILTER подходит, когда нужно оставить строки по одному или нескольким условиям без ручного копирования данных.
Excel и Google Workspace
Google Sheets: SORT для многоуровневой сортировки
С помощью SORT можно сортировать диапазон сразу по нескольким колонкам с отдельным направлением сортировки для каждого ключа. SORT нужен для динамической сортировки диапазона без изменения исходной таблицы.