Изменить значения столбца на основе выбора слайсера - PullRequest
0 голосов
/ 09 мая 2018

Используя рабочий стол PowerBI, я создал небольшую таблицу (называемую TimeSelector) с тремя элементами: день, неделя и месяц

Table example

Идея состоит в том, чтобы использовать содержимое этой таблицы для создания среза с тремя вариантами

Slicer

Таким образом, выбор одного из этих параметров должен изменить способ использования дат в таблицах. Например, выбор Дня приведет к следующей таблице:

DayTable

При выборе Недели будет получено следующее:

WeekTable

Etc ..

Я попытался написать новую меру с учетом выбранного элемента слайсера, но он не работает:

DayWeekMonthSelection = IF(CONTAINS(TimeSelector;TimeSelector[DayWeekMonth];"Month");
                           MONTH(VALUES('uptime_downtime'[Uptime_date])))

Это только первая часть формулы, в качестве начала проверяется только опция месяца.

Есть идеи, как это сделать?

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

Чтобы предложить другую перспективу:

Подход, который я использую, заключается в том, чтобы иметь отдельную таблицу в базе данных, содержащую метаданные о дате, которая называется date_lookup.

2 поля в этой таблице: FirstDateOfMonth & FirstDateOfWeek.

Некоторые из других полей: lastDateOfMonth & LastDateOfWeek, также DayOfWeek.

Используя эти поля, я могу легко представить визуальные элементы, сгруппированные по месяцам или неделям.

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

Основная причина, по которой нам нужно хранить эти метаданные, заключается в том, что финансовым годом нашей компании является июль - июнь. Поэтому нам необходимо иметь в наличии правильный финансовый год, который хранится в виде поля в таблице date_lookup. У меня также есть поля, обозначающие праздничные дни ...

0 голосов
/ 09 мая 2018

Это интересный вопрос, но я не уверен, как сделать именно то, что вы просите, поэтому я предложу альтернативу.(Изменение меры на основе выбора среза не является слишком сложным, но я не уверен, что это хороший способ поменять поле / измерение.)


Вместо создания отдельной таблицы для вашегоСрезы, другой возможный подход заключается в создании иерархии дат .Часто при перетаскивании столбца даты в поле строк или столбцов автоматически создается иерархия дат с указанием года / квартала / месяца / даты, но, поскольку вам нужна неделя, а не квартал, давайте создадим ее вручную.

Сначала, создайте пару вычисленных столбцов для недели и месяца.Например:

Month = FORMAT(uptime_downtime[Date], "mmm")
Week = WEEKNUM(uptime_downtime[Date])

Теперь щелкните правой кнопкой мыши по дате в полях и выберите «Новая иерархия».Теперь это должно выглядеть следующим образом:

New Hierarchy

Теперь перетащите столбцы Month и Week на Date Hierarchy, а затем переставьте их в соответствующиезаказ:

Full Hierarchy

Теперь вы можете использовать эту иерархию в матрице и использовать кнопки перехода вверх и вниз

Drill Up or Down

для получения различных группировок:

date week month

...