Годовое процентное изменение в Power BI

Я пытаюсь рассчитать годовое процентное изменение в Power BI с помощью DAX, и здесь мне нужна помощь. Это мой источник данных в Power BI:  введите описание изображения здесь

Затем я рассчитал среднюю арендную плату по этой формуле (для типа «студия»):

AVGRentStudio = CALCULATE(AVERAGE('Rental Trend'[Rent]),'Rental Trend'[Type] = "Studio")

И я получил табличное представление средних значений:  введите описание изображения здесь

Теперь я хотел бы рассчитать годовое процентное изменение (к предыдущему году).

Это то, что я пробовал, но результат не точен.

RentChange =
CALCULATE (
    IF (
        HASONEVALUE ( 'Rental Trend'[Year] ),
        DIVIDE (
            SUM ( 'Rental Trend'[Rent] ),
            CALCULATE (
                SUM ( 'Rental Trend'[Rent] ),
                'Rental Trend'[Year]
                    = FORMAT ( VALUES ( 'Rental Trend'[Year] ) - 1, BLANK () )
            )
        )
    )
        - 1,
    'Rental Trend'[Type] = "Studio"

Может ли кто-нибудь помочь, как рассчитать годовое процентное изменение?

Спасибо


person Laki    schedule 20.08.2018    source источник


Ответы (2)


Один из способов сделать это:

Мера 1:

Average Rent Studio =
CALCULATE ( AVERAGE ( 'Rental Trend'[Rent] ), 'Rental Trend'[Type] = "Studio" )

Мера 2:

Average Rent Studio Previous Year =
VAR Current_Year = MAX ( 'Rental Trend'[Year] )
RETURN
    CALCULATE ( [Average Rent Studio], 'Rental Trend'[Year] = Current_Year - 1 )

Мера 3:

Average Rent Studio Y/Y Change = 
DIVIDE([Average Rent Studio], [Average Rent Studio Previous Year])

Как это работает: меры 1 и 3 просты. в мере 2 вам сначала нужно захватить текущий год (это максимальный год в данном контексте фильтра) и сохранить его в переменной. Затем пересчитайте арендную плату за студию, используя 1 год до сохраненного года.

person RADO    schedule 20.08.2018

@Rado У меня возникла идея, основанная на твоем ответе.

Мера 1 (за предыдущий год):

AVG Rent Studio PY = CALCULATE(IF(HASONEVALUE('Rental Trend'[Year]), CALCULATE(AVERAGE('Rental Trend'[Rent]), 'Rental Trend'[Year] = FORMAT(VALUES('Rental Trend'[Year]) - 1, BLANK()), 'Rental Trend'[Type] = "Studio")))

Мероприятие 2 (выбранный год):

VG Rent Studio CY = IF(HASONEVALUE('Rental Trend'[Year]), CALCULATE(AVERAGE('Rental Trend'[Rent]), 'Rental Trend'[Type] = "Studio"))

Мера 3 (изменение от года к году):

Y/Y Rent Change = 1 - DIVIDE([AVG Rent Studio PY],[AVG Rent Studio CY])

Могу ли я сделать это решение динамическим, чтобы отображать изменения от года к году в зависимости от выбора типа - Studio, 1BDR, 2BDR?

Спасибо

person Laki    schedule 21.08.2018