У меня есть таблица данных.ниже и нужно вернуть значение за предыдущий год и ту же неделю, чтобы я мог рассчитать единицы и процентную разницу для каждой недели.Это сокращенная версия таблицы.У меня есть дополнительные столбцы, для которых мне нужно выполнить аналогичные вычисления.
FileDate Units UnitsLY WeekNum Year UnitsYOY%
1/22/2019 0:00 3751 2890 4 2019
1/15/2019 0:00 3518 2625 3 2019
1/8/2019 0:00 4075 2590 2 2019
1/1/2019 0:00 4349 2982 1 2019
WeekNum = WeekNum(PaymentsByWeek[FileDate])
Year = Year(PaymentsByWeek[FileDate])
UnitsLY, WeekNum и Year - это вычисляемые поля на основе Filedate.Я хотел бы рассчитать изменение единицы YOY и процентное изменение для каждой конкретной недели.
UnitsLY = IF (
HASONEVALUE ( 'Calendar'[CalendarYear] )
&& HASONEVALUE ('Calendar'[WeekNumberOfYear] ), CALCULATE(
Max(PaymentsByWeek[Units]),
FILTER (
ALL ( 'Calendar' ),
'Calendar'[CalendarYear] = VALUES ( 'Calendar'[CalendarYear] )-1
&& 'Calendar'[WeekNumberOfYear] = VALUES ( 'Calendar'[WeekNumberOfYear] )
) ) )
PaymentsByWeek), PaymentsByWeek[Year] = PaymentsByWeek[Year] -1 && 'PaymentsByWeek'[WeekNum]=thisweek ))
Приведенная ниже формула дает мне «круговую зависимость была обнаружена».Я также попытался поместить вычисление UnitsLY в формулу, но проблема все еще та же.
UnitsYOY% = DIVIDE (PaymentsByWeek [Units] - [UnitsLY], [UnitsLY])
Наконец-то япробовал это с помощью Vars, но он возвращает все значения нулей
UnitsYOY% = var week= (PaymentsByWeek[WeekNum]) var lastyear =( PaymentsByWeek[Year] -1) var ly =( CALCULATE( sum(PaymentsByWeek[Units]) ,
FILTER('PaymentsByWeek'
,'PaymentsByWeek'[WeekNum] =week && PaymentsByWeek[year]= lastyear ))) Return Divide(PaymentsByWeek[Units]-ly ,ly)
Как рассчитать единицу и процентное изменение между конкретными неделями?