Если вы ведёте учёт в Google Таблицах, то скорее всего уже используете функции вроде «SUMIFS» или «FILTER» для анализа. Они справляются с базовыми задачами, но при более сложных сценариях — например, построение отчётов с множеством условий или фильтрация по переменным — таблица быстро обрастает вспомогательными столбцами и дублирующей логикой.
В таких случаях функция «QUERY» отлично берёт на себя всё сложное. Она позволяет работать с таблицей как с базой данных: делать выборки, группировки, развороты и подключать внешние фильтры. Если вы ещё не используете «QUERY», то, скорее всего, просто не раскрыли её потенциал.
Запрос | Пример | Действие |
SELECT | =QUERY(A1:D10; "SELECT A, C") | Вернёт столбцы «A» и «C» из диапазона |
WHERE | =QUERY(A1:D10; "SELECT A, B WHERE C > 100") | Вернёт столбцы «А» и «В», но только те строки, где значение в «C» больше 100 |
=QUERY(A1:D10; "SELECT A, B WHERE B =‘Обувь’") | Выберет и вернёт строки, где «В» является текстом «Обувь» | |
ORDER BY | =QUERY(A1:D10; "SELECT A, B ORDER BY B") | Сортирует по «B» в порядке возрастания
|
=QUERY(A1:D10; "SELECT A, B ORDER BY B DESC") | Сортирует по «B» в порядке убывания
| |
LIMIT | =QUERY(A1:D10; "SELECT A, B LIMIT 5") | Обработает все строки из диапазона, но вернёт только первые 5 строк |
OFFSET | =QUERY(A1:D10; "SELECT A, B OFFSET 3") | Пропустит первые 3 строки, вернёт остальные |
LABEL | =QUERY(A1:D10; "SELECT A, B LABEL A 'Имя', B 'Отел'") | Переименует столбцы «А» в «Имя» и «В» в «Отдел» |
FORMAT | =QUERY(A1:D10; "SELECT B FORMAT B '0.00'") | При возвращении числа будут округлены с двумя знаками после запятой |
GROUP BY | =QUERY(A1:D10; "SELECT A, SUM(B) GROUP BY A") | Группирует значения по столбцу «А». Например, сумму «B». У этого запроса есть и другие агрегирующие функции |
PIVOT | =QUERY(A1:D10; "SELECT A, SUM(D) GROUP BY A PIVOT B") | Значения в «C» станут столбцами, по «A» и суммам «B» |
IS NOT NULL и IS NULL | =QUERY(A1:С10; "SELECT A WHERE B IS NOT NULL") | Вернёт строки, где в «B» есть информация и пропустит те, где она отсутствует |
AND, OR | =QUERY(A1:C10; "SELECT A WHERE B > 50 AND C < 100") | Вернёт строки, где выполняются оба условия |
=QUERY(A1:C10; "SELECT A WHERE B > 50 OR C < 100") | Вернёт строки, где выполняется одно из условий | |
И другие |
Функция | Действие | Тип принимаемых данных | Тип возвращаемых данных |
AVG() | Возвращает среднее арифметическое значений | Числовой | Числовой |
SUM() | Возвращает сумму значений | Числовой | Числовой |
COUNT() | Возвращает количество значений | Любой | Числовой |
MAX() | Возвращает максимальное значение | Любой | Принимает тот же тип, что на входе |
MIN() | Возвращает минимальное значение | Любой | Принимает тот же тип, что на входе |
Тип | Синтаксис | Пример запроса |
Дата | date ‘ГГГГ-ММ-ДД’ | …WHERE A = date ‘2025-01-01’… |
Время | timeofday ‘ЧЧ:ММ:СС’ | …WHERE A < timeofday ‘12:30:00’… |
Дата + время | Datetime ‘ГГГГ-ММ-ДД ЧЧ:ММ:СС’ | …WHERE A > datetime ‘2025-01-01 10:00:00’… |
Диапазон | Комбинации с AND | …WHERE A >= date ‘2025-01-01’ AND A <= date ‘2025-01-31’… |
Функция | Описание | Пример |
year() | Возвращает год из даты | year(date ‘2025-06-16’) Вернёт «2025» |
month() | Возвращает номер месяца из даты | month(datetime ‘2025-06-01 15:20:45’) Вернёт «6» |
quarter() | Возвращает номер квартала из даты | quarter(date ‘2025-06-01’) Вернёт «2» |
dayOfWeek() | Возвращает номер дня недели из даты | dayOfWeek(date ‘2025-06-01’) Вернёт «7» |
day() | Возвращает день из даты | day(datetime ‘2025-06-01 15:20:45’) Вернёт «1» |
hour() | Возвращает часы из времени | hour(time ‘15:20:45’) Вернёт «15» |
minute() | Возвращает минуты из времени | minute(datetime ‘2025-06-01 15:20:45’) Вернёт «20» |
second() | Возвращает секунды из времени | second(time ‘15:20:45’) Вернёт «45» |
now() | Возвращает текущие дату и время в часовом поясе GTM, указанном на компьютере | now() Вернуло значение «2025-06-16 15:12:47» на момент написания |