Excel и Google Workspace / Формулы Google Таблиц

QUERY WHERE и ORDER BY в Google Таблицах

QUERY позволяет писать запросы к диапазону почти как SQL: фильтрация, сортировка, группировка и агрегация в одной формуле. QUERY с WHERE и ORDER BY нужен, когда фильтрацию и сортировку удобнее описать одним запросом.

Опубликовано: Обновлено:

Формула

$$=QUERY(A1:D100,"select A, C where B = 'Оплачен' order by D desc",1)$$

Обозначения

$data$
таблица или диапазон данных
$query$
строка запроса с select, where и order by
$headers$
число строк заголовков

Условия применения

  • Диапазон в первом аргументе должен быть корректным и включать заголовки или указать header=0/1.
  • Запрос нужно писать как строку в кавычках; имена столбцов берутся по заголовкам или по буквенным индексам.
  • Используйте одиночные кавычки для строковых литералов внутри запроса.

Ограничения

  • Сложные SQL-конструкции имеют иной синтаксис и поддерживаются не как в полноценном SQL.
  • Ошибки в регистре и пробелах в строке запроса приводят к ошибкам разбора.
  • При локализации нужна аккуратность с разделителями и форматом дат.

Подробное объяснение

QUERY принимает источник данных и строку языка запросов. Внутри запроса указываются выражения select/where/group by/order by/having, которые обрабатываются на уровне массива.

Смысл страницы — показать рабочий сценарий, ограничения и поведение формулы в живой таблице. Например, можно выбрать имя и сумму только по оплаченным заказам, а затем отсортировать результат по сумме убыванию. Такая страница не дублирует базовый SELECT: она показывает практический шаг от выбора столбцов к условиям и упорядочиванию. В отличие от простого перечисления аргументов, здесь важно понимать, как формула меняет диапазон результата, что происходит при пустых строках и как она сочетается с другими функциями Google Таблиц.

Как пользоваться формулой

  1. Выберите диапазон и убедитесь, что первая строка — заголовки (если указано header=1).
  2. Соберите простой запрос для фильтрации и затем добавляйте группировку.
  3. Проверьте корректность кавычек и пробелов внутри строки.
  4. Тестируйте на ограниченном участке данных, затем расширяйте диапазон.

Историческая справка

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(A1:D100,"select A, C where B = 'Оплачен'",1)$

QUERY выполняет запрос к диапазону Google Таблиц на языке, похожем на SQL. Базовый SELECT выбирает нужные столбцы и строки по условию.

Excel и Google Workspace

Google Sheets: FILTER для точного отбора строк

$=FILTER(A2:F200, B2:B200="Продажа", C2:C200>0)$

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

Excel и Google Workspace

Google Sheets: SORT для многоуровневой сортировки

$=SORT(A2:G200, 3, TRUE, 2, FALSE)$

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