Ошибка вычисления отклонения от года к году «EARLIER / EARLIEST» относится к более раннему контексту строки, который не существует - PullRequest
0 голосов
/ 27 сентября 2018

При попытке вычислить дисперсию год за годом (безуспешно в течение 2 дней) я получаю следующее сообщение об ошибке:

EARLIER / EARLIEST относится к более раннему контексту строки, который не существует.

YOY Variance = var PreviousYearPrinBal = CALCULATE(SUM(Deals[Principal Balance]),FILTER(ALL(Deals[Close Date].[Year]),Deals[Close Date].[Year] = EARLIER(Deals[Close Date].[Year])))
return
if(PreviousYearPrinBal = BLANK(), BLANK(), Deals[PrincipalBalance] - PreviousYearPrinBal)

В другом вопросе SO существует другой подход, который дает мне следующую ошибку:

Столбец, указанный в вызове функции 'SAMEPERIODLASTYEAR'не относится к типу DATE.Это не поддерживается.

yoy = CALCULATE([PrincipalBalance], SAMEPERIODLASTYEAR(Deals[Close Date].[Year]))

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

enter image description here

И вот что я ожидаю в результате.

enter image description here

Я пытался опубликовать этот вопрос в сообществе Power BI, но пока не получил ответа. Рассчитать дисперсию в годовом исчислении.

ОБРАЗЕЦ РЕАЛЬНЫХ ДАННЫХ:

enter image description here

1 Ответ

0 голосов
/ 27 сентября 2018

1) Создан столбец разницы между годом и годом (вычисляемый столбец)

Year = YEAR(Table1[Date])
Year Difference = Table1[Year] - Min(Table1[Year])

2) Создан отклонение (мера)

Variance = 

   Var current_YearDifference = SELECTEDVALUE(Table1[Year Difference])  

   Var Current_PrincipalBalance = CALCULATE(SUM(Table1[Principal Balance]),FILTER(ALL(Table1), Table1[Year Difference] = (current_YearDifference)))                                            

   Var Previous_PrincipalBalance = CALCULATE(SUM(Table1[Principal Balance]),FILTER(ALL(Table1), Table1[Year Difference] = (current_YearDifference - 1)))                                  

Return if(current_YearDifference <> 0, (Current_PrincipalBalance - Previous_PrincipalBalance), 0)

3) Окончательно создано отклонение в терминахПроцент (мера),

Variance in terms of Percentage = 

   Var current_YearDifference = SELECTEDVALUE(Table1[Year Difference])  

   Var Current_PrincipalBalance = CALCULATE(SUM(Table1[Principal Balance]),FILTER(ALL(Table1), Table1[Year Difference] = (current_YearDifference)))                                 

   Var Previous_PrincipalBalance = CALCULATE(SUM(Table1[Principal Balance]),FILTER(ALL(Table1), Table1[Year Difference] = (current_YearDifference - 1)))                                  

Return if(current_YearDifference <> 0, ((Current_PrincipalBalance - Previous_PrincipalBalance) / Previous_PrincipalBalance), 0)

Мой конечный результат

Final Output on the Power BI Dashboard

Главный баланс имеет функцию SUM, выбранную на панели значенийтаблицы результатов, где год не суммируется.

Моя лучшая практика

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

Пожалуйста, дайте мне знать, помогает это или нет.

...