Страницы: 1
RSS
Power BI. Выделение строк произвольным цветом в матрице
 
Всем привет.
Имеется файлик с перечнем партнёров, статуса счёта и сумм. Раньше клепал сводную для отчётности в Excel, решил перевести в Power BI. Для наглядности подсвечивал строки исходя из долгов/оплат, как в примере во вложении.
Перейдя в Power BI не обнаружил инструментов для подобных своевольностей в сводной (точнее, в матрице). Поиск в похожих ветках также не дал ответа. Теперь задаюсь вопросом, можно ли вообще произвольно подкрашивать строки в матрице, исходя из статуса счетов? То есть напротив "ждём оплаты" значения должны быть окрашены в красный, "оплачена" - в зелёный.

Спасибо!
 
Shunbom,
Создайте меру, значение  которой, к примеру, положительно в случае оплачена и отрицательно в случае ждем оплаты:
Код
Цвет фона :=
IF (
    HASONEVALUE ( 'Лист1'[Статус] ),
    CALCULATE ( SUM ( 'Лист1'[Сумма] ), 'Лист1'[Статус] = "оплачена" )
        - CALCULATE ( SUM ( 'Лист1'[Сумма] ), 'Лист1'[Статус] = "ждём оплаты" )
)

И примените условное форматирование к Сумма:
Изменено: surkenny - 27.03.2022 00:14:46
 
, спасибо за решение, но почему-то у меня работает не совсем правильно.

Я так понимаю, что Повер БИ считает, что если какого-то значения больше, то в такой цвет и красит (то есть "ждём оплаты" - 2 шт., "оплачена" - 1 шт., красит в красный). Есть мысли, почему так может быть?
Код
Цвет фона = 
IF(
    HASONEVALUE ('Претензии ТК'[Статус]),
        CALCULATE (SUM ('Претензии ТК'[Выставлено в ТК]),'Претензии ТК'[Статус]="оплачена")
        - CALCULATE (SUM ('Претензии ТК'[Выставлено в ТК]),'Претензии ТК'[Статус]="ждём оплаты")
)
 
Shunbom, ошибку в мере допустил. Не дайте изменить контекст фильтра по статусу:
Код
Цвет фона =
IF (
    HASONEVALUE ( 'Лист1'[Статус] ),
    CALCULATE (
        SUM ( 'Лист1'[Сумма] ),
        KEEPFILTERS ( 'Лист1'[Статус] = "оплачена" )
    )
        - CALCULATE (
            SUM ( 'Лист1'[Сумма] ),
            KEEPFILTERS ( 'Лист1'[Статус] = "ждём оплаты" )
        )
)

Или еще проще:
Код
Цвет фона =
IF (
    HASONEVALUE ( 'Лист1'[Статус] ),
    IF ( VALUES ( 'Лист1'[Статус] ) = "оплачена", 1, -1 )
)
    * SIGN ( SUM ( 'Лист1'[Сумма] ) )

Условное форматирование:
Изменено: surkenny - 27.03.2022 12:31:43
 
, оно, спасибо! :)

Только добавлю, что второй вариант не подходит конкретно в этой задаче, если я правильно его понял, потому что кроме этих двух статусов есть ещё промежуточные. Но на ус намотал.
 
Цитата
Shunbom написал:
второй вариант не подходит конкретно в этой задаче, если я правильно его понял, потому что кроме этих двух статусов есть ещё промежуточные
Да для любого количества статусов подойдет. Неуказанные вообще выделяться не будут. Можно даже еще сократить:
Код
Цвет фона = 
IF (
    HASONEVALUE ( 'Лист1'[Статус] ),
    SWITCH (
        VALUES ( 'Лист1'[Статус] ),
        "оплачена", 1,
        "ждём оплаты", 2,
        "статус3", 3
    )
)

Страницы: 1
Наверх