Post-Image

Мелкие радости - избавляемся от Blank / Пусто

Рвав-рвав, я сегодня – собака-уничтожитель!

Перед вами – 4-я заметка из нашего цикла “Мелкие радости”, и мы сегодня поговорим о том, как избавиться от значений типа “Blank” (“Пусто”) в некоторых визуальных элементах, которые появляются в результате фильтрации данных.

Пример:

  • Имеется набор данных, содержащий исходную информацию в разрезе количества (столбец “Количество”) и номенклатуры (столбец “Название”, имеющий значения “Груши” и “Яблоки”), а также номенклатурный справочник, содержащий более полную номенклатуру, чем в исходном наборе (значение “Апельсины”):

    blog_006_screen_1

  • Существует визуальный фильтр, построенный согласно номенклатурному справочнику, то есть содержащий 3 значения: “Апельсины”, “Груши” и “Яблоки”.

  • Данные связаны между собой при помощи однонаправленной связи “Один-ко-многим”:

    blog_006_screen_2

    Задача:

    Поскольку фильтр построен на основании номенклатурного справочника, то при выборе значения “Апельсины”, элемент “Card” (“Карточка”) в стандартном исполнении отобразит значение “Blank” (“Пусто”), что может создать определенные неудобства в восприятии данных. Так как количество – значение числовое, требуется заменить значение “Blank” (“Пусто”) на “0”.

    Решение:

  • При построении элемента “Card” (“Карточка”) необходимо использовать меру, а не столбец “Количество” с данными исходного набора значений, или, в других случаях – рассчетный столбец. Применение меры позволит не использовать вшитый алгоритм рассчета при построении визуализации.

  • Для более наглядной иллюстрации вшитый алгоритм подсчета количества единиц номенклатуры в визуальном элементе элемент “Card” (“Карточка”) можно заменить на аналогичный расчет при помощи меры, формула которой будет выглядеть следующим образом:

    Вид по умолчанию =
    SUM ( 'Dataset'[Количество] )

  • При выборе в фильтре значения, равного “Апельсины”, мера, описанная выше, отобразит значение, равное “Blank” (“Пусто”):

    blog_006_screen_3

  • Модифицировать работу указанного алгоритма можно, дополнительно используя функцию ISBLANK, конструкция меры при этом слегка усложнится, и примет следующий вид:

    Модифицированный вид =
    VAR _Quantity =
        SUM ( 'Dataset'[Количество] )
    VAR _Result =
        IF ( ISBLANK ( _Quantity ); 0; _Quantity )
    RETURN
        _Result

    blog_006_screen_4

    Рвав-рвав, как говорится, “The End”, а применять данную фишечку, по мнению скромного меня, нужно везде, где возможно, так как, в конечном итоге, значение “Blank” (“Пусто”) плохо влияет на восприятие информации - раз, и портит итоговый дизайн - два.

    Ваш Смайл

    P.S. Собака Смайл получил feedback, предложили формулу типа: SUM() + 0. В принципе да, работает, но вместо 0 в решении с использованием ISBLANK можно также написать что-то тектовое, и это также будет работать, Смайл старается делать универсальные штуки, а не точечные решения :-)