Power BI: как выполнять анализ сценариев, когда селектор «ищет» выбранное значение из слайсера и получает значения из этой строки - PullRequest
0 голосов
/ 21 марта 2019

Я следовал нескольким учебникам по анализу сценариев и что делать, если анализ в Power BI. Эти примеры мне вполне понятны, и я немного понимаю, как они работают. Например это (https://community.powerbi.com/t5/Community-Blog/Scenario-Analysis-What-Ifs-Tips-amp-Techniques-For-Power-BI/ba-p/559653).

В этом примере они создают таблицу, которая содержит значения для различных сценариев

5% 10% 15% 20%

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

category - trend rise
low         5%
medium      10%
high        15%
very high   20%

На другом столе у ​​меня есть:

Value - Item - trend_default
10       A      0.3
15       A      0.2
20       B      0.4
25       B      0.15
35       C      0.10
30       C      0.05

Теперь с помощью слайсера я хочу сначала выбрать ни один, один или все элементы, после чего я хочу выбрать, какой рост тренда я хочу применить к выбранным элементам (низкий, средний, высокий или очень высокий). Если я выберу только элемент A, то элементы B и C будут использовать их значение trend_default в расчете.

1 Ответ

1 голос
/ 21 марта 2019

ОРИГИНАЛЬНЫЙ ОТВЕТ

Вы можете создать свою отключенную таблицу с несколькими столбцами, как в вашем примере.

Затем создайте меру, основанную на выбранном значении этой таблицы. Что-то вроде:

Value + Trend Rise = 
    VAR Multiplier = 
        1 + IF ( 
            HASONEVALUE ( 'Scenario - Trend'[Category] ),
            VALUES ( 'Scenario - Trend'[Trend Rise] ),
            0
        )
    RETURN
        SUM ( 'Demo Fact Table'[Value] ) * Multiplier

См. https://pwrbi.com/so_55281950/ для рабочего примера файла PBIX

ОБНОВЛЕНИЕ, НА ОСНОВЕ РЕДАКЦИОННОГО ВОПРОСА:

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

Item Chooser = 
    SUMMARIZECOLUMNS ( 
        'Demo Fact Table'[Item]
    )

Теперь вы можете использовать меру:

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]
                )
            )
        )

Это должно быть просто изменить, если вы хотите вернуть значение тренда по умолчанию для элемента из таблицы связанных элементов.

Обновлен файл примера: https://pwrbi.com/so_55281950-2/

...