Страницы: 1 2 След.
RSS
PP/ PBI Снятие фильтра страницы по периодам для создания графика
 
День добрый. Помогите разобраться с фильтрами.
Во вложении скрин ежемесячного отчета, период которого выбирается фильтрами (год, Месяц) на самой странице.

При этом нужно чтобы на странице формировался график (помесячный) за 12 месяцев от заданного фильтром на странице периода.

Понимаю что нужно создать меру в Pivot, попробовал ALL чтобы снять заданный фильтр - не работает
Код
fact = CALCULATE(sum(Report_IL[факт]), DATEADD(ALL('calendar'[Дата]), 12, month))

ЗЫ В модели данных имеется таблица календаря, который используется при создании всех визуализаций.

UPD
С DATEADD я конечно же намудрил, даже если ее убираю - все также не снимаются фильтры Срезов для формирования графика (((
Код
fact = CALCULATE(sum(Report_IL[факт]), ALL('calendar'[Дата]))
Изменено: mitox - 15.07.2020 12:01:20
 
Цитата
mitox написал:
период которого выбирается фильтрами (год, Месяц) на самой странице.
1. на скрине у вас нет фильтров страницы.
2. Вы сбрасываете фильтр со столбца Дата, а у вас стоит фильтр на столбец Год и столбец Месяц. Сбросьте со всего календаря, что ли. ALL('calendar')
F1 творит чудеса
 
Максим Зеленский, На странице нет фильтров, я имел в виду про Визуализации "Срез" ("Год" и "Месяц"). Даже если я прописываю меру сбрасывая весь календарь - она не пробивается через срез и оставляет на графике только один месяц.
Код
fact = CALCULATE(sum(Report_IL[факт]), ALL('calendar'))
Может "срез" не победим в BI? ))))
 
Цитата
mitox написал:
"срез" не победим в BI?
попробуйте рецепт отсюда - тема
Соблюдение правил форума не освобождает от модераторского произвола
 
buchlotnik, Да, рецепт помог. Спасибо.
 
Прежде чем задать вопрос я просмотрел данное видео. В нем показано что фильтр среза в Экселе снимается ALL. И был уверен что в Power BI понятие визуализации "срез" идентично понятию "срез" в Эксель. Или я его невнимательно просмотрел?
 
Цитата
mitox написал:
чтобы на странице формировался график (помесячный) за 12 месяцев от заданного фильтром на странице периода.
Вот этот момент я пропустил.
Вы задаете период январь 2020, вам нужно, чтобы график был выведен с 02.19 по 01.20?
F1 творит чудеса
 
Максим Зеленский, В любом случае спасибо. Как оказалось Power BI накладывает свои функциональные ограничения (со стороны настроек визуализаций) на функции Power Pivot.
 
mitox, не должно такого быть... впрочем, как скажете.
F1 творит чудеса
 
Цитата
Максим Зеленский написал:
не должно такого быть... впрочем, как скажете.
Извиняюсь (я не настолько самонадеян) - я не увидел знак вопроса в вашем сообщении и поспешил с выводом. Хотелось быть знать истину.
Цитата
Максим Зеленский написал:
Вы задаете период январь 2020, вам нужно, чтобы график был выведен с 02.19 по 01.20?
Диаграмма нужна за последние 12 календарных месяцев от крайнего выбранного периода.

UPD. Сижу уже три часа с этим не простым вопросом - как снять ограничения в мере наложенные срезом минуя "Изменение взаимодействия" м/у визуализациями. Буду читать еще. Завтра вернусь на работу и продолжу.
Изменено: mitox - 17.07.2020 16:05:21
 
без примера у вас нет другого выхода., увы
F1 творит чудеса
 
Максим Зеленский,
Пусть будет простейшая модель. Одна таблица фактов по Валовому доходу, справочник компаний, календарь. Нужно чтобы было два среза, один для выбора компании, второй по календарю (как показан на скрине). Валовый доход по выбранным периодам суммируется в визуализации карточка, а в графике отражаются 12 месяцев от крайней выбранной даты.
 
Максим Зеленский, Правильно ли я понимаю что должна использоваться функция ALLEXCEPT, снимающая все фильтры кроме указанных?

В данном случае должен сняться фильтр по выбранной компании. В срезе по Предприятиям я использую наименование из справочника, который связан с таблицей фактов по "ID_Company", соответственно мне нужно снять фильтры кроме фильтра на срезе Предприятия, в таблице фактов это связь через Sales_Dish_RKeeper[ID_Company], но не работает.
Код
Мера 1 = CALCULATE(SUM(Sales_Dish_RKeeper[Сумма]), ALLEXCEPT (Sales_Dish_RKeeper, Sales_Dish_RKeeper[ID_Company]))

Пробовал оставлять только фильтр в самом справочнике "company", также не получается (((
Код
Мера 2 = CALCULATE(SUM(Sales_Dish_RKeeper[Сумма]), ALLEXCEPT (company, company[Company]))
 
Хм. Я же еще наложил на срезе периодов фильтр с 2018 по 2020 год, так как Календарь начинается с 1899 года.

mitox, Создал файл в Power BI
 
mitox,  доброго вечера. Пишу с телефона, могу посоветовать следующее. В календаре создайте доп. столбец "порядковый номер месяца", в котором каждый месяц будет иметь уникальный номер, т.е. первый год это будут с 1 по 12, второй год с 13 по 24 и.т.д. Далее создаёте меру, которая высчитывает максимальный порядковый номер месяца с учётом налагаемых фильтров. После этого остаётся создать меру, в которой указываем диапазон от полученного результата предыдущей меры минус 12 месяцев.
Изменено: Vladimir Chebykin - 18.07.2020 22:20:09
 
Туго мне дается снятие фильтров. Мне удается снять фильтр со среза периодов если срезы состоят из дат таблицы фактов...
Скрытый текст
...если же я в срез положу данные из календаря, то их я снять не могу - не могу понять необходимую логику кода
Изменено: mitox - 19.07.2020 05:35:44
 
mitox, смотрите так нужно?
 
Vladimir Chebykin, Работает (!), но нужен срез как отображен в скрине на сообщении #12
Вот такой... Буду премного благодарен если поможете...
Изменено: mitox - 20.07.2020 11:57:56
 
я не знаю, как сделать в фильтре иерархию. Попробуйте в моем примере ее сделать и приложить.
 
Цитата
Vladimir Chebykin написал:
и приложить.
Он есть в файле на второй странице "Срез из календаря"
UPD Приложил
Изменено: mitox - 20.07.2020 12:24:13
 
Цитата
mitox написал:
но нужен срез как отображен в скрине
не, с таким видом среза не получается перенастроить алгоритм расчета.
Во-первых, задача оказалась не такой простой, как может показаться на первый взгляд.. Удалось победить только с помощью дополнительного календаря (правда я сделал "пвседо" календарь с помощью второй связи). Для того, чтобы реализовать такой же алгоритм, но с Вашим фильтром по году и месяцу, нужно переделывать календарь, где ключ связи будет по году и месяцу, а не по дате. Тогда можно меры переделать, а подругому не получится. По крайней мере мыслей у меня на этот счет больше нет.
 
Vladimir Chebykin, В любом случае спасибо. Значит есть ограничения между срезами Power BI и функциям DAX что не радует (((
 
Что-то вы меня сильно смущаете, коллеги. Пойду посмотрю файл
F1 творит чудеса
 
Цитата
mitox написал:
есть ограничения между срезами Power BI и функциям DAX что не радует
нет там никаких особенных ограничений. Просто задача не совсем тривиальная.
Изменено: Vladimir Chebykin - 20.07.2020 13:12:52
 
Цитата
Vladimir Chebykin написал:
не получается перенастроить алгоритм расчета.
а не, получилось, во вложении.
П.С. Надеюсь, Максим З. предложит свое решение, потому что мое мне не нравится!
Изменено: Vladimir Chebykin - 20.07.2020 13:51:11
 
Всё там логично делает Power BI. Вы хотите одновременно и учитывать фильтр по календарю, и игнорировать его. Естественно, оно не дает так делать: если вы отключите влияние среза на визуал, вы уже не сможете прочесть выбранные на нем значения. Если оставите и срез, и ось по одной таблице - будет та же история: сброс фильтров с календаря будет работать и там, и там.
Проще всего в данной ситуации (для конкретно такой задачи) сделать, как написал Vladimir Chebykin, копию календаря (без связи с другими таблицами), и использовать в срезе год и месяц из неё.
Например, так:
Код
calendar2 =
DISTINCT (
    SELECTCOLUMNS (
        'calendar',
        "Год", 'calendar'[Год],
        "мес", 'calendar'[Мес],
        "№Мес", 'calendar'[№Мес],
        "порядковый № месяца", 'calendar'[порядковый № месяца]
    )
)

или можно просто
Код
calendar2 = calendar

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

В гистограмму пихнуть вот такую меру:
Код
Сумма за 12 мес = 
VAR _lm =
    CALCULATE (
        MAX ( 'calendar2'[порядковый № месяца] ),
        ALLSELECTED ( 'calendar2' )
    )
RETURN
    CALCULATE (
        SUM ( 'Sales_Dish_RKeeper'[Сумма] ),
        'calendar'[порядковый № месяца] > _lm - 12,
        'calendar'[порядковый № месяца] <= _lm
    )

обратите внимание, где какой календарь используется.

Если этот срез должен еще и влиять обычным образом на другие визуалы, там уже можно начинать мудрить с активнысми/неактивными связями и комбинациями того, откуда срез, а откуда ось
F1 творит чудеса
 
Vladimir Chebykin, Спасибо большое.

ЗА Что обидно, я также пробовал поправить сам, но не обратил внимание на очередность Год и Месяц и что их нужно соблюсти в двух мерах.
 
Vladimir Chebykin, долго смотрел на меру. Потом долго удивлялся. Потом понял и прям... ну скажем так, это очень оригинальное решение :)

Во-первых, USERELATIONSHIP тут не нужен, будет работать и без него, и без второй связи.
Во-вторых, я думаю, когда вы поймете, почему это работает в этом конкретном файле без USERELATIONSHIP, вы тоже будете удивляться  :D
F1 творит чудеса
 
Цитата
Максим Зеленский написал:
когда вы поймете, почему это работает в этом конкретном файле без USERELATIONSHIP, вы тоже будете удивляться
проверил - работает :D А логика была следующая: когда я допер, что мне нужны альтернативные даты, чтобы
Цитата
Максим Зеленский написал:
одновременно и учитывать фильтр по календарю, и игнорировать его.
я подумал, что второй справочник будет выходом для данной ситуации. Но заметил, что ТС в календаре уже имеет две иерархии (блин, я еще долго ругался про себя, зачем вторая дата в календаре - только мешает, т.к. по невнимательности в меру не те столбцы вставляешь :) - а в данном конкретном случае по случайности очень даже пригодилось). Итак я решил использовать вторую иерархию дат, но даже не проверил, что это напрямую прекрасно работает: достаточно развести иерархии дат в фильтре и гистограмме и правильно их в мерах указать.
Максим, еща раз спасибо за науку!
 
Цитата
Vladimir Chebykin написал:
достаточно развести иерархии дат в фильтре и гистограмме и правильно их в мерах указать.
а теперь отключаем автоиерархию дат и наблюдаем результат :)
F1 творит чудеса
Страницы: 1 2 След.
Наверх