0
Ваша корзина

Красивая сортировка периодов в Datalens. Практический урок.

Красивая сортировка дат в Datalens

В этом уроке я покажу вам, как в DataLens в таблице-чарте сделать красивое отображение дат при группировке, например, по кварталам. 

ВАЖНО. Но обратите внимание, что указанный в уроке метод не будет, к сожалению, работать на всех чартах. Например, в графиках и диаграммах. Там пока нет решения для красивого отображения периодов.

Задача

Предположим, что у нас есть некий набор данных с датой продажи и городом. И нам нужно отобразить эти данные в таблице поквартально. Но так, чтобы кварталы отображались красиво. Например, 1Q 2023.

Добавьте описание

Решение

Первое, что приходит в голову, – это использовать функцию Datetrunc(). Ведь именно она группирует даты в разную размерность (год, квартал и т.д.).


Описание

Возвращает дату, округленную по аргументу unit.

DATETRUNC( datetime, unit [ , number ] )

 Давайте создадим поле с такой функцией и посмотрим, что получится. 

Прописываем формулу, согласно синтаксису функции.

Добавьте описание

И видим, что даты хоть и сгруппировались по кварталам, но визуально это выглядит очень неудобно. Если перенести это на график, то все будут просто видеть первый месяц квартала. И каждый раз надо вспоминать, что же это за квартал. 

Добавьте описание

Поэтому давайте сделаем по-другому.

Вместо Datetrunc() используем несколько функций:

  1. Определим номер квартала в дате
  2. Определим номер года в дате
  3. Соединим это в одну строку.

Это будет выглядеть вот так:

С помощью функции конкатенация мы объединяем в одну строку номер квартала, затем букву Q, которая обозначает, что это квартал, и год. Получается красивое и читабельное отображения квартала.

CONCAT(QUARTER([Date]),"Q ", YEAR([Date]))

Описание CONCAT

Объединяет произвольное количество строк. При использовании нестроковых типов происходит преобразование в строку и объединение.

CONCAT( arg_1, arg_2, arg_3 [ , ... ] ) 

Описание MONTH

Возвращает номер месяца в году в указанной дате datetime.

MONTH( datetime )

Описание YEAR

Возвращает номер года в указанной дате datetime.

YEAR( datetime )

Теперь давайте выведем это на таблицу-чарт и посмотрим, что получится.

Да, наши кварталы отображаются красиво, но обратите внимание на сортировку. Так как поле Квартал у нас является текстовым, то и сортируется оно по правилам текста. То есть данные будут идти по первым цифрам. Сначала все первые кварталы за все года, потом вторые кварталы и т.д.

Так как же сделать так, чтобы наши кварталы расположились в нужной хронологии?

Казалось бы, можно добавить поле Date в сортировку и настроить хронологию именно таким образом. Но тогда наши строки размножатся, так как у поля Date нет группировки по кварталу, и он выводит все даты, какие есть.

Тогда можно пойти на небольшую хитрость. Давайте вернемся в датасет и снова создадим поле с функцией Datetrunc(), как мы делали в начале.

И теперь снова отсортируем нашу таблицу по этому новому полю. Ура, теперь наши строки отсортированы в нужном хронологическом порядке и красивым отображением кварталом.

Совет. А если в датасете сделать Параметр, то с его помощью можно вообще сделать настраиваемую размерность. Если пользователь выбирает Год, то данные будут группировать по годам, а Q, например, будет меняться на Y.

Если хотите узнать, как это сделать, то пишите в комментариях, сделаю отдельный урок на эту тему.

Также ниже можно скачать урок в формате PDF.

Задать вопросы и обсудить волнующие темы про аналитику данных теперь можно на нашем форуме.

Если вам понравился урок, подписывайтесь на канал или группу и ставьте лайки. А также пишите в комментариях свои кейсы или вопросы. Самые интересные мы обязательно разберем.

Мы в социальных сетях

Поделиться

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Подпишись на новости!

Подпишись на наш Телеграм-канал, чтобы вовремя узнавать о новых выпусках.


А также увидеть еще больше полезного контента!

Он будет закрыт в 20 секунд