Ошибка в том, что Вы в мере Median аргументом DATESINPERIOD('Date'[Date], MAX('Date'[Date]), -4,YEAR) убиваете фильтр по месяцу в матрице, и получаете таблицу VALUES('Date'[Year Month]) за 4 года до MAX('Date'[Date]). Может так попробовать:
Код
AVG_for_YEAR =
var _max_date = MAX('Date'[Date])
var _datesInPer = DATESBETWEEN('Date'[Date];DATE(YEAR(_max_date);1;1);DATE(YEAR(_max_date);12;31))
var _sales = CALCULATE(
'#measures'[Sales Amount]; 'Date'[ClosePeriodMonth] = TRUE();
_datesInPer)
var _months = CALCULATE(
DISTINCTCOUNT('Date'[Year Month]);'Date'[ClosePeriodMonth] = TRUE();
_datesInPer)
RETURN DIVIDE(_sales; _months; 0)
И тогда мера Медиана:
Код
Median =
var tab = ADDCOLUMNS(VALUES('Date'[Year Month]); "@Val"; '#measures'[Season Index])
var res = MEDIANX(FILTER(tab; [@Val] <> BLANK());[@Val])
return res
Median =
var _max_date = MAX('Date'[Date])
var _min_date = CALCULATE(MIN('Date'[Date]);ALL('Date'))
var _month = MONTH(_max_date)
var _datesInPer = DATESBETWEEN('Date'[Date]; _min_date;_max_date)
var tab = CALCULATETABLE( ADDCOLUMNS(VALUES('Date'[Year Month]); "@Val"; '#measures'[Season Index]);_datesInPer; MONTH('Date'[Date]) = _month)
var res = MEDIANX(FILTER(tab; [@Val] <> BLANK());[@Val])
return res