Как применить условие CONTAINS к иерархическим категориям для создания анализа сценариев в Power BI - PullRequest
1 голос
/ 25 марта 2019

Опираясь на решение, данное @olly ( Power BI: как выполнять анализ сценариев, когда селектор «ищет» выбранное значение из слайсера и получает значения из этой строки ) & file: https://pwrbi.com/so_55281950-2/

В файле примера создается анализ «что если» или анализ сценария.Используются два слайсера, один из которых выбирает сценарий, а другой выбирает объекты, к которым применяется сценарий.@Olly предоставил умное решение, чтобы справиться с ситуацией:

Value + Trend = 
SUMX ( 
    'Demo Fact Table';
    'Demo Fact Table'[Value] * 
        ( 1 +
            IF ( 
                ISFILTERED ( 'Item Chooser'[Item] ) &&
                CONTAINS ( 
                    'Item Chooser';
                    'Item Chooser'[Item];
                    'Demo Fact Table'[Item]
                ) && 
                HASONEVALUE ( 'Scenario - Trend'[Category] );
                VALUES ( 'Scenario - Trend'[Trend Rise] );
                'Demo Fact Table'[trend_default]
            )
        )
    )

Опираясь на это решение, я пытался применить ту же логику, но для своей конкретной проблемы.В моей задаче у меня есть не только один слой «категорий», а иерархия из 3 уровней.Как бы я продолжил применять одно и то же решение, если бы мои категории имели иерархию?Таким образом, из моего слайсера я бы выбрал три вещи: Category1, Year и Category2, которые будут давать trend_rise для выбора.и применил бы это, примените этот trend_rise к выбранным (4-ым срезам) строкам, т.е. (элемент A, B или / и C)

category1      -   Year - Category2 - trend rise
POSITIVE-trends    2018   low         5%
POSITIVE-trends    2018   high        5%
POSITIVE-trends    2017   low         5%
NEGATIVE-trends    2017   very high   -5%
NEUTRAL-trends     2018   low         0%
POSITIVE-trends    2018   high        5%
NEUTRAL-trends     2017   low         5%
NEUTRAL-trends     2016   very high   15%

1 Ответ

2 голосов
/ 25 марта 2019

Вам понадобится лишь небольшая подстройка к показателю, чтобы проверить, имеет ли поле trend_rise одно значение, и если да, то используйте его, в противном случае используйте значение по умолчанию:

Value + Trend = 
SUMX ( 
    'Demo Fact Table',
    'Demo Fact Table'[Value] * 
        ( 1 +
            IF ( 
                ISFILTERED ( 'Item Chooser'[Item] ) &&
                CONTAINS ( 
                    'Item Chooser',
                    'Item Chooser'[Item],
                    'Demo Fact Table'[Item]
                ) && 
                HASONEVALUE ( 'Scenario - Trend'[Trend Rise] ),
                VALUES ( 'Scenario - Trend'[Trend Rise] ),
                'Demo Fact Table'[trend_default]
            )
        )
    )

Теперь вы можете использоватьсрезы во всех столбцах таблицы сценариев.

См. https://pwrbi.com/so_55332313/ для обработанного файла примера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...