Записки охотника

Нюансы выбора значения в срезе

Мелкие радости
Рвав-рвав, сегодня я — собака-мечтатель!

А поскольку я мелкий эгоист (мелкий в плане размера, а не эгоизма!), то в связи с существующим настроением начинаю реализовывать свою мечту:
уря-уря, мы начинаем публиковать контент под названием «Мелкие радости», который был неосторожно обещан в статье Использование мер в качестве переключателя.
Спешу напомнить, что здесь планируется размещать материал о неких хитростях по принципу «Мелочь, а приятно».
Итак, поехали, 1-я заметка представлена ниже.

Пример:

Есть таблица, содержащая некий список проектов и ответственного менеджера:

Таблица
Проекты

Задача:

Вывести количество проектов по каждому менеджеру при помощи элемента «Карточка».

Рвав-рвав, вроде бы, все просто :-)

Решение:

  • Создаем фильтр по менеджеру.
  • Создаем карточку для менеджера.
  • Создаем карточку для количества проектов, значение которой можно посчитать различными способами, например, следующей мерой:

Количество проектов =
COUNTROWS ( 'Проекты' )

  • Или при помощи свойства «Количество» на значении элемента.

  • При фильтрации данных кажется, что все отлично, начинаем радоваться, поскольку у 1-го менеджера (Иванова Константина) 3 проекта, а у 2-го (Петрова Романа) — 2 проекта:

Срез
Фильтр менеджера 1

Срез
Фильтр менеджера 2

  • Однако, как только пользователь не выберет ничего, то выяснится, что радость была преждевременной, поскольку, несмотря на правильное общее количество проектов — «5», в карточке менеджера будет отображено значение, равное:
— «Иванов Константин», если в свойствах значения элемента стоит дефолтный вариант «Первый» (см. рисунок);
— «Петров Роман», если в свойствах значения элемента стоит вариант «Последний».

Срез
Отсутствие фильтров: стандарт

  • Возможным выходом из этой ситуации является дополнительная настройка среза, а именно включение опции «Единичное выделение», но тогда значения в карточках будут всегда отфильтрованы по умолчанию в разрезе выбранного менеджера, что «не есть хорошо».
  • Другим вариантом выхода из описанной ситуации является, например, вывод текстового предупреждения для пользователя о том, что ему необходимо выбрать конкретное значение в срезе. Реализовать этот вариант можно при помощи следующей меры:

Отображение менеджера =
VAR _Manager =
    VALUES ( 'Проекты'[Менеджер проекта] )
VAR _QuantityRows =
    COUNTROWS _Manager )
VAR _Result =
    IF _QuantityRows > 1"Укажите менеджера"_Manager )
RETURN
    _Result

  • Далее следует поместить меру "Отображение менеджера" в соответствующую карточку:

Срез
Отсутствие фильтров: модификация

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

Рвав-рвав, на этом все, пойду на праздник, авось, чего перепадет…
Ваш Смайл

P. S. Безмерно уважаемые двуногие предложили еще более изящный вариант:


Отображение менеджера =

SELECTEDVALUE ('Проекты'[Менеджер проекта], "Несколько менеджеров")