Excel и Google Workspace / Формулы Google Таблиц
QUERY WHERE и ORDER BY в Google Таблицах
QUERY позволяет писать запросы к диапазону почти как SQL: фильтрация, сортировка, группировка и агрегация в одной формуле.
Формула
Обозначения
- $data$
- таблица или диапазон данных
- $query$
- строка запроса с select, where и order by
- $headers$
- число строк заголовков
Условия применения
- Диапазон в первом аргументе должен быть корректным и включать заголовки или указать header=0/1.
- Запрос нужно писать как строку в кавычках; имена столбцов берутся по заголовкам или по буквенным индексам.
- Используйте одиночные кавычки для строковых литералов внутри запроса.
Ограничения
- Сложные SQL-конструкции имеют иной синтаксис и поддерживаются не как в полноценном SQL.
- Ошибки в регистре и пробелах в строке запроса приводят к ошибкам разбора.
- При локализации нужна аккуратность с разделителями и форматом дат.
Подробное объяснение
QUERY WHERE и ORDER BY в Google Таблицах стоит рассматривать не как отдельный трюк, а как способ сделать таблицу устойчивой к обновлению данных. Пользователь меняет исходный диапазон, а расчетный лист сам пересобирает нужный результат: отбор, сортировку, поиск, импорт или обработку ошибок. Главный риск в таких формулах — незаметное расхождение размеров диапазонов, неверная ссылка или слишком широкая область расчета. Поэтому перед применением проверяют, какие строки входят в источник, что считается пустым значением и как формула поведет себя при добавлении новых данных. В рабочей таблице лучше начинать с небольшого проверочного диапазона, убедиться в правильности выдачи, а затем расширять формулу на весь массив. Если результат будет использоваться в отчете, рядом полезно оставить короткую подпись: источник данных, критерий отбора и ожидаемый порядок строк. Такой подход делает формулу понятной не только автору файла. Через месяц другой человек сможет увидеть, откуда берется результат, почему часть строк не попала в выдачу и где менять условие без переписывания всей таблицы.
Как пользоваться формулой
- Выберите диапазон и убедитесь, что первая строка — заголовки (если указано header=1).
- Соберите простой запрос для фильтрации и затем добавляйте группировку.
- Проверьте корректность кавычек и пробелов внутри строки.
- Тестируйте на ограниченном участке данных, затем расширяйте диапазон.
Историческая справка
QUERY WHERE и ORDER BY в Google Таблицах относится к современному этапу развития электронных таблиц, когда файл стал не просто сеткой для ручного ввода, а небольшим инструментом обработки данных. Облачные таблицы усилили эту роль: несколько человек могут менять источник, а формулы сразу пересчитывают отчетную выдачу. Такие функции появились как ответ на практические задачи офисной аналитики: убрать повторы, подтянуть внешний диапазон, отсортировать массив, обработать ошибку поиска или описать выборку запросом. Они не заменяют базы данных и скрипты, но закрывают широкий слой ежедневных задач без программирования. Исторически здесь важна не биография одного автора, а развитие самой модели таблиц: от одиночных ячеек и ручного копирования к массивам, динамическим диапазонам и связям между файлами.
Историческая линия формулы
Для «QUERY WHERE и ORDER BY в Google Таблицах» корректнее говорить не об одном авторе, а о развитии Google Таблиц и офисной аналитики. Современная запись =QUERY(A1:D100,"select A, C where B = 'Оплачен' order by D desc",1) является учебной или прикладной формой более широкой расчетной традиции: она закрепилась в курсах, справочниках, стандартах и рабочих методиках. Если в источниках упоминаются конкретные исследователи, их вклад стоит понимать как часть истории метода, а не как единственное авторство этой страницы.
Пример
Пример: в таблице есть столбец дат A, менеджеров B и выручки C; формулу проверяют на первых пяти строках, а затем расширяют на рабочий диапазон. Для расчета «QUERY WHERE и ORDER BY в Google Таблицах» сначала формулируют вопрос: нужно фильтрацию и сортировку проще описать одной строкой запроса. Затем делают короткую таблицу исходных величин: data — таблица или диапазон данных; query — строка запроса с select, where и order by; headers — число строк заголовков. После этого подставляют данные в запись =QUERY(A1:D100,"select A, C where B = 'Оплачен' order by D desc",1), не меняя базу сравнения, период, единицы измерения или выбранную модель. Если формула возвращает долю, ее читают как часть от 1 и только затем переводят в проценты; если получается сила, давление, сумма, объем или координата, результат записывают с исходной единицей. Рабочая проверка — открыть ячейку с формулой после копирования и убедиться, что ссылки, разделители и диапазоны указывают на нужный лист. Финальная самопроверка состоит из двух шагов: повторить расчет на одной строке или одном объекте и мысленно изменить главный параметр. Если направление изменения противоречит смыслу задачи, значит ошибка возникла раньше — в выборе данных, единиц или самой формулы.
Частая ошибка
В расчете «QUERY WHERE и ORDER BY в Google Таблицах» нельзя начинать с механической подстановки в =QUERY(A1:D100,"select A, C where B = 'Оплачен' order by D desc",1). Сначала проверьте, что обозначения прочитаны по смыслу этой страницы: data — таблица или диапазон данных; query — строка запроса с select, where и order by; headers — число строк заголовков. Чаще всего ломаются границы диапазона, локаль с запятыми и точками с запятой, текстовые даты, лишние пробелы, скрытые ошибки импорта и ссылки на чужой лист. Еще одна слабая точка — правдоподобный, но чужой ответ: он может получиться, если взять данные из соседней строки, другого периода, другого листа, другой группы опыта или другой системы единиц. Надежное исправление одно: выписать «символ — значение — единица — источник», выполнить подстановку без раннего округления и только потом сокращать запись для финального ответа.
Практика
Задачи с решением
Сводка продаж по региону и менеджеру
Условие. 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
- Microsoft Support: Excel functions by category - https://support.microsoft.com/en-us/office/excel-functions-by-category-5f91f4e9-7b42-46d2-9bd1-63f26a86c0eb
Связанные формулы
Excel и Google Workspace
QUERY в Google Таблицах: базовый SELECT
QUERY выполняет запрос к диапазону Google Таблиц на языке, похожем на SQL. Базовый SELECT выбирает нужные столбцы и строки по условию.
Excel и Google Workspace
FILTER для точного отбора строк
Функция FILTER возвращает все строки из диапазона, которые удовлетворяют условиям. Это удобно для отфильтрованных отчётов, без ручной сортировки и промежуточных формул.
Excel и Google Workspace
SORT для многоуровневой сортировки
С помощью SORT можно сортировать диапазон сразу по нескольким колонкам с отдельным направлением сортировки для каждого ключа.