Запрос Google Таблиц - Сортировать по дате; Пробелы / пустые значения внизу

Возникла проблема при выполнении запроса в Google Таблицах. Результаты запроса формулы массива верны, но столбец, используемый для упорядочивания результатов (Col1), состоит как из пустых / пустых ячеек, так и из дат. Таким образом, при упорядочивании по этому столбцу пустые / нулевые значения отображаются первыми перед датами. Возможно ли, чтобы даты были ранжированы первыми, а пустые / пустые ячейки опустились вниз?

Заказ по DESC не сработает, так как я хотел бы, чтобы в первую очередь указывались более ранние даты. Кроме того, пустые / пустые ячейки также не могут быть полностью исключены из результатов (например, они соответствуют задачам без крайних сроков, но все же должны быть указаны).

В настоящее время я использую следующую формулу:

= ARRAYFORMULA ((ЗАПРОС ({ДИАПАЗОН ДАННЫХ}, "ВЫБРАТЬ Col1, ГДЕ Col2 = X ИЛИ Col3 = X ORDER BY Col1 LIMIT 10", 0))

Кажется, есть простой способ добиться этого, но я не могу найти ничего по этой теме на других форумах. Любая помощь будет принята с благодарностью.


person StonePanda    schedule 16.03.2018    source источник


Ответы (1)


Используйте SORT ()

Я считаю, что для вашего примера вы могли бы заставить его работать так:

=SORT(ARRAYFORMULA((QUERY({DATA RANGE},"SELECT Col1 WHERE Col2 = X OR Col3 = X",0)), 1, 1) (не проверено)

Если ваш LIMIT 10 важен, я думаю, вы могли бы обернуть все это в другой запрос и повторно добавить LIMIT.

Иллюстрированный пример

Диапазон, требующий запроса и сортировки

 введите описание изображения здесь

Формула

Простая версия, определяющая диапазон, в котором опускается заголовок:

=SORT(QUERY(A2:B7, "select *"), 1, 1)

Версия, обрабатывающая заголовки:

={A1:B1;SORT(QUERY(tabname!A2:B7, "select *"), 1, 1)}

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

Запрошенные и отсортированные результаты

 введите описание изображения здесь

Разбивка компонентов формулы

Массив {[range 1]; [range 2]}

SORT () SORT([range], [column to sort on], [sort ascending - true/false or 1/0)

Query () QUERY([range], "[query]")

person 2xj    schedule 02.04.2019