QUERY cортировка чисел из диапазона по возрастанию
Для быстрой динамической сортировки ряда чисел и данных, соответствующих им, применяется запрос QUERY по следующей кляузе:
=QUERY(A14:B38;"select * order by B asc")
- A14:B38 — диапазон с данными, состоящий из 2х столбцов: Наименование категорий и суммы.
- Запрос «select *…» тип извлечения данных, где * (звездочка) диктует правило отображения всех данных из 2х столбцов.
- Кляуза order by B asc — задает тип сортировки по столбцу B, в котором суммы, с правилом по возрастанию (asc).
QUERY cортировка чисел из диапазона по убыванию
Аналогичный прием QUERY запроса, с правилом сортировки чисел и соответствующим им данным из соседнего столбца, по убыванию:
=QUERY(A14:B38;"select * order by B desc")
Где диапазон с данными остался тот же, а вот кляуза поменяла оператор — desc (сортировка данных по убыванию).
Как вы уже заметили, принцип сортировки ничем не отличается от условий, предлагаемых функцией SORT. Просто функция QUERY может так же, помимо еще множества обработок, и уместна в более широком спектре обработки данных.
QUERY сортировка данных, реальный пример в Google таблицах
На реальном проекте стоит задача: отсортировать данные категорий и соответствующие им суммы в порядке убывания, для построения гистограммы в визуальном отчете.
=QUERY(Данные;"select L, SUM(E) where P = " &'Аналитика'!B126& " and O = " &VLOOKUP('Аналитика'!D126;'Справочник'!T:U;2;0)& " and I = 'Расходы' group by L order by SUM(E) desc label L '', SUM(E) '' format SUM(E) '#,##0.00 "&'Настройки'!$D$13&"' ")
- Данные — именованный диапазон с данными, откуда извлекаются категории и суммы к ним.
- L, SUM(E) — столбцы из диапазона (L — название категории; SUM(E) — сумма значений из столбца E, соответствующий категориям из столбца L).
- P — раскрывающийся список с выбором года.
- O — раскрывающийся список с месяцем, который через функцию VLOOKUP подбирается из диапазона, расположенного в листе: Справочник.
- group by L — кляуза группировки данных по столбцу L.
- order by SUM(E) desc — кляуза сортировки данных по убыванию по столбцу SUM(E).
- label L ‘ ‘, SUM(E) ‘ ‘ — кляуза заголовков столбцов L и SUM(E). В данном случае — вместо заголовков пустые строки.
- format SUM(E) — кляуза, задающая формат чисел в столбце SUM(E).
После аналогичной фильтрации через запрос QUERY получим вот такой красивый график.