powered by simpleCommunicator - 2.0.27     © 2024 Programmizd 02
Map
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Power BI. Кросс-фильтрация
10 сообщений из 10, страница 1 из 1
Power BI. Кросс-фильтрация
    #40007858
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!

Есть заданные таблицы.
...
Рейтинг: 0 / 0
Power BI. Кросс-фильтрация
    #40007862
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Power BI эти таблицы привязал в двух вариантах. Первый вариант - задал одностороннюю кросс-фильтрацию, а во втором - двустороннюю.

1. В отчете на странице1 построил таблицу по варианту 1. И вставил два фильтра с полями "Справочник_ПродуктовыеГруппы"-"Продуктовая группа" и "Справочник_SKU"-"Продуктовая группа" . Пытаюсь понять разницу в использовании этих полей для фильтра.
- Если в фильтре "Справочник_ПродуктовыеГруппы"-"Продуктовая группа" выделить пункт "Продуктовая группа1" , то в фильтре "Справочник_SKU"-"Продуктовая группа" в списке присутствует один соответствующий пункт.
- Если в фильтре "Справочник_SKU"-"Продуктовая группа" выделить пункт "Продуктовая группа1" , то в фильтре "Справочник_ПродуктовыеГруппы"-"Продуктовая группа" в списке ничего не фильтруется.
Хотя для обоих вариантов в таблице верно фильтруется.

Я правильно понимаю, что в данном случае в фильтре для таблицы без разницы какое поле использовать? Или есть то, что в данном случае не учитывается какая-то логика расчета при выборе одного из двух полей?

2. В отчете на странице2 построил две матрицы по варианту 1 и 2. Вставил фильтры с этими же полями также по варианту 1 и 2.
- Если в фильтре "Справочник_ПродуктовыеГруппы"-"Продуктовая группа" выделить пункт "Продуктовая группа1" , то в фильтре "Справочник_SKU"-"Продуктовая группа" в списке присутствует один соответствующий пункт.
- Если в фильтре "Справочник_SKU"-"Продуктовая группа" выделить пункт "Продуктовая группа1" , то в фильтре "Справочник_ПродуктовыеГруппы"-"Продуктовая группа" в списке также присутствует один соответствующий пункт.
Хотя для обоих вариантов в таблице верно фильтруется.

Я правильно понимаю, что это и есть принцип работы двусторонней кросс-фильтрации?

3. В каких случаях целесообразно использовать одностороннюю кросс-фильтрацию, а в каких - двустороннюю?
...
Рейтинг: 0 / 0
Power BI. Кросс-фильтрация
    #40007907
Вакшуль Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,
По второму пункту.
ferzmikkЯ правильно понимаю, что это и есть принцип работы двусторонней кросс-фильтрации?
Да, это проявление двусторонней фильтрации

По третьем пункту.
ferzmikkВ каких случаях целесообразно использовать одностороннюю кросс-фильтрацию, а в каких - двустороннюю?
Как правило, общая рекомендация - использовать односторонюю фильтрацию. Чтобы прочуствовать почему так нужна практика.
Двунаправленные фильтры кажутся(оно так и есть) очень удобными сначала. Все делается вроде как быстро и весело. Но чем дальше, чем схема больше, чем сложнее задачи, тем больше вероятность, что то, что казалось благом вначале(двунаправленность), может обернуться проблемами в будущем. Однако есть случаи, когда без двунаправленной фильтрации просто невозможно.
Т.е. совет такой - начинайте всегда с односторонней фильтрации, и только там где упретесь в необходимость двусторонней фильтрации, тогда используйте ее. Т.е. всегда осознанно.
Я как-то раз бездумно использовал двустороннюю связь к таблице Users. Все было хорошо до поры до времени. Схема разрослась. А потом в один прекрасный момент мне понадобилось сделать отчет, который был несовместим со схемой с двусторонним фильтром. Если раньше двусторонний фильтр мне помагал, то в этом отчете он просто вредил. В результате мне пришлось обвешивать все мэжами, отключающими эту связь. А так как сама по себе бизнес задача была не из простых, то разработка превратилась в головную боль, и приходилось постоянно расплачиватся за неправильно организованную схему. Да, всегда можно вывернутся, можно вообще без связей все организовать, но лучше не создавать себе проблем

По первому пункту, сорри, вопрос не понял.
...
Рейтинг: 0 / 0
Power BI. Кросс-фильтрация
    #40007911
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вакшуль Сергей
По первому пункту, сорри, вопрос не понял.
Там у меня таблица и два фильтра "Продуктовая группа". Только они из разных таблиц. То есть используется два варианта полей: " Справочник_ПродуктовыеГруппы"-"Продуктовая группа" и "Справочник_SKU"-"Продуктовая группа" .

В данном случае для фильтра можно использовать любое из этих двух полей? Или разница все таки есть, что по разному влияют на таблицу в каких то случаях?
...
Рейтинг: 0 / 0
Power BI. Кросс-фильтрация
    #40007916
Вакшуль Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,
Все зависит от данных. Если как у вас, когда таблица В1_Справочник_ПродуктовыеГруппы содержит те же продуктовые группы, что и таблица В1_Справочник_SKU, то результат фильтрации таблицы В1_Факты_Продажи будет один и тот же.
Но если таблица В1_Справочник_ПродуктовыеГруппы не будет содержать записи для "Продуктовая группа1", а таблица В1_Справочник_SKU будет содержать такую группу, то естественно результат наложения фильтра Продуктовая группа = "Продуктовая группа1"на эти две таблицы, будет разный: при фильтрации В1_Справочник_SKU записи в В1_Факты_Продажи будут, а при фильтрации В1_Справочник_ПродуктовыеГруппы - нет
...
Рейтинг: 0 / 0
Power BI. Кросс-фильтрация
    #40007971
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть измененные заданные таблицы.
...
Рейтинг: 0 / 0
Power BI. Кросс-фильтрация
    #40007972
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно ли в Power BI сделать следующее?
- Если присутствует пусто, то Power BI при обновлении сразу предупреждает об этом.
- C помощью функции DAX вместо пусто отображались сами SKU (и в матрице, и в фильтре). Похоже функция RELATEDTABLE не подходит.
...
Рейтинг: 0 / 0
Power BI. Кросс-фильтрация
    #40007973
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для второго варианта не получается активировать двустороннюю связь. Почему так?
...
Рейтинг: 0 / 0
Power BI. Кросс-фильтрация
    #40007979
ferzmikk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Power BI. Кросс-фильтрация
    #40008009
Вакшуль Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ferzmikk,
ferzmikkДля второго варианта не получается активировать двустороннюю связь. Почему так?
Зайдите в окно "Edit relationship" для этой связи и попробуйте установить флажок "Make this relationship active". У вас не получится, но вы получите сообщение почему так. Суть в том, если так сделать, то получится, что: В2_Справочник_Годы фильтрует В2_Факты_Продажи2, которая в свою очередь фильтрует В2_Справочник_SKU, которая в свою очередь фильтрует В2_Факты_Продажи1, которая в свою очередь фильтрует исходную таблицу В2_Справочник_Годы. Т.е. В2_Справочник_Годы в итоге фильтрует сама себя. Нерабочий вариант.

ferzmikk- Если присутствует пусто, то Power BI при обновлении сразу предупреждает об этом.
- C помощью функции DAX вместо пусто отображались сами SKU (и в матрице, и в фильтре). Похоже функция RELATEDTABLE не подходит.
Сначала должен возникнуть вопрос почему появились Blank values. В документации есть раздел детально объясняющий этот концепт. Но с ходу найти его не могу. Нашел только вот это:
https://docs.microsoft.com/ru-ru/power-bi/transform-model/desktop-relationships-understand#strong-relationships
У вас в таблице В2_Факты_Продажи2 есть три значения, которых нет в таблице В2_Справочник_SKU, которая находится в связи находится на стороне один. Такая ситуация по ссылке, что я дал, называется "referential integrity violation".
А конкретней:
>The blank virtual rows are effectively Unknown Members. Unknown members represent referential integrity violations where the "many" side value has no corresponding "one" side value.
И там же следом они пишут, что нужно делать:
>Ideally these blanks should not exist, and they can be eliminated by cleansing or repairing the source data.

С помощью Power Query при формировании справочника/dimension (таблица на стороне "один") нужно обеспечить ему полный набор значений. Так вы избежите появлений Blank values

По вопросу "Если присутствует пусто, то Power BI при обновлении сразу предупреждает об этом.". При обновлении, это когда? Как только закончилось выполнение рефреша датасета? Допустим, в 3 часа ночи когда закончилось обновление?
Вы просто не в том направлении смотрите. Если у вас хорошо сделана модель, то вот таких blank values быть не должно

>C помощью функции DAX вместо пусто отображались сами SKU (и в матрице, и в фильтре)
вот я и говорю, что добавьте потерянные значение в справочник, используя Power Query
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Power BI. Кросс-фильтрация
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (0):
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]