Проблемы фильтрации Power BI с помощью матрицы - PullRequest
0 голосов
/ 05 августа 2020

Кто-нибудь может мне помочь.

См. Прикрепленные изображения.

Матрица в Power BI будет отфильтрована в зависимости от выбранного месяца (изображение слева). При выборе «Январь» в матрице при развертывании Location R100 есть значения для 06 января, 27 января, что является правильным. Но мне не нужно показывать 13 и 21 января, потому что на эти даты нет запланированных сессий. Как я могу этого добиться?

Для локаций Дель-Пасо мне не нужно отображать январские даты, так как в эти даты в этих локациях не проводились сеансы.

Примеры фактических данных

Образ PowerBI

Взаимосвязи табличных моделей SSAS

Январь

июнь

SSAS 2017, версии PBI за сентябрь 2019 г.

Источник данных для отчета Power BI с сервера SSAS.

Спасибо,

Вамси

1 Ответ

0 голосов
/ 06 августа 2020

Матрица показывает строки только в том случае, если есть результат для этой строки. Вы можете подумать: это 0, поэтому результата нет. Но это неправильно: 0 тоже допустимый результат. Чтобы удалить строку, вы должны убедиться, что результат пуст, также известный как NULL в базах данных и BLANK в DAX.

Поскольку вы не опубликовали DAX своих мер, некоторые предложения:

  • Удалите нули из исходных данных. Не уверен, что у вас есть доступ к данным, но вы можете заменить 0 нулевыми / пустыми значениями либо в PowerQuery, либо в SQL.
  • Мы не можем видеть исходные данные (что означают данные в как выглядит таблица фактов?), но я предполагаю, что именно в этом и заключается настоящая «проблема».
  • Внесите поправку в меру. Не самое красивое решение, но работает. псевдокод:
VAR _Show = COUNT ( 'Fact'[ID] )
RETURN
IF ( _Show = 0 , BLANK(), _Show)

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

Изменить:

Вы уже заменили BLANKS на 0 и включили «Показывать элементы без данных». Тогда указанная выше мера не принесет никакой пользы.

Предложение:

  • Отключите «Показывать элементы без данных»!

Новая мера :

(при условии, что DimStatus [Description] находится в столбце

# Count = 
// Orginal Measure: Count Unique IDs
VAR __COUNTROSTER = DISTINCTCOUNT('FactJobClubOrientation'[RosterID])

// Second Measuse: Count Regardless of show or no show, to see if there was a session
VAR __COUNTALLROSTER = CALCULATE(DISTINCTCOUNT('FactJobClubOrientation'[RosterID]), ALL('DimStatus'[Description]))

RETURN
// If there was a sesssion, show the measure with 0 instead of blanks
IF ( __COUNTALLROSTER > 0 , IF ( ISBLANK(__COUNTROSTER) , 0 , __COUNTROSTER))

Третье предложение:

Вы хотите, чтобы все локации отображались с 0, если нет показа. Я включил проверку ISINSCOPE для DimDate, чтобы он не показывал 0 при сворачивании местоположения.

# Count = 
// Orginal Measure: Count Unique IDs
VAR __COUNTROSTER = DISTINCTCOUNT('FactJobClubOrientation'[RosterID])

// Second Measuse: Count Regardless of show or no show, to see if there was a session
VAR __COUNTALLROSTER = CALCULATE(DISTINCTCOUNT('FactJobClubOrientation'[RosterID]), ALL('DimStatus'[Description]))

// Third: Show 0 for all locations, if there's no session.
VAR __NOROSTER = IF ( NOT ISINSCOPE('DimDate'[SessionDate]) , CALCULATE( 0 , ALL(DimLocation)))

RETURN
// If there was a sesssion, show the measure with 0 instead of blanks
IF ( __COUNTALLROSTER > 0 , IF ( ISBLANK(__COUNTROSTER) , 0 , __COUNTROSTER), __NOROSTER)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...