Скажем, сегодня 22 мая, я хочу динамически рассчитать продажи с начала года за последние пять лет. 2024: продажи с 01.01.24 по 22.05.24. 2023: продажи с 01.01.23 по 22.05.23 2022: продажи с 01.01.22 по 22.05.22. и так далее.
Я попробовал несколько формул DAX, но мне удалось получить данные о продажах только за весь май предыдущего года, но я хочу просуммировать их только на текущую дату. Заранее спасибо!
5 разных значений
Я добавил 2 меры в ответ. Вы можете создать остальные три, следуя той же логике. надеюсь, что это сработает.





вы можете создать меры, как показано ниже:
YearSumOne =
var endDateYearOne = today()
var startDateYearOne = startofyear(endDateYearOne)
return
calculate(
sum(yourTableName(salesColumnName)),
filter(
all(yourTableName),
and(
yourTableName(Date) >= startDateYearOne,
yourTableName(Date) <= endDateYearOne
)
)
)
YearSumTwo =
var endDateYearTwo = dateadd(today(),-1,year)
var startDateYearTwo = startofyear(endDateYearTwo)
return
calculate(
sum(yourTableName(salesColumnName)),
filter(
all(yourTableName),
and(
yourTableName(Date) >= startDateYearTwo,
yourTableName(Date) <= endDateYearTwo
)
)
)
Теперь вы можете создать меру rest Three, следуя приведенной выше логике.
Вам нужна только дата начала, поэтому можно использовать даты между.
YTD Sales =
CALCULATE(
SUM('Sales'[SalesAmount]),
DATESBETWEEN(
'Date'[Date],
DATE(YEAR(TODAY()), 1, 1),
TODAY()
)
)
возможно, вы можете попытаться создать столбец флагов в таблице дат.
flag =
IF (
YEAR ( TODAY () ) - YEAR ( 'Date'[Date] ) < 5
&& MONTH ( 'Date'[Date] ) <= MONTH ( TODAY () )
&& DAY ( 'Date'[Date] ) <= DAY ( TODAY () ),
"y"
)
тогда все нужные вам даты будут отмечены как «y»
вам нужно 5 отдельных значений за последние 5 лет? или нужно 1 окончательное значение СУММ за 5 лет?