Предположим, вы хотите создать срез, в котором вы выбираете дату и хотите отображать итоги за месяц, за квартал и за год в виде отдельных метрик.
Вместо того, чтобы вручную писать логику для этих метрик за текущий период, вы можете просто написать:
TotalMTD = CALCULATE ( [Total], DATESMTD ( 'Date'[Date] )
TotalQTD = CALCULATE ( [Total], DATESQTD ( 'Date'[Date] )
TotalYTD = CALCULATE ( [Total], DATESYTD ( 'Date'[Date] )
Вместо того, чтобы писать что-то вроде этого:
TotalQTD =
VAR SelectedDate =
SELECTEDVALUE ( 'Date'[Date] )
VAR QuarterStart =
EOMONTH ( SelectedDate, - MOD ( MONTH ( SelectedDate ) - 1, 3 ) - 1 )
RETURN
CALCULATE (
[Total],
'Date'[Date] <= SelectedDate,
'Date'[Date] > QuarterStart
)
Многие другие примеры использования тайм-интеллекта см. здесь:
https://www.daxpatterns.com/standard-time-related-calculations/
Я постоянно создаю такие вещи: i.stack.imgur.com/tTVCm.png
круто, спасибо, не могли бы вы показать то же самое, как выглядит фильтр/слайсер даты? Это что-то, где кто-то может ввести start_date? Дата окончания? Выбрать из различных «дат контрольно-пропускного пункта»? По сути, мне просто любопытно, чем это отличается от статического расчета выполнения YEAR(NOW()) - NOW()
, например, для YTD.
В этом случае срез предназначен только для даты окончания (из раскрывающегося списка), поскольку дата начала зависит от показателя. Ваше предложение не сработает, так как это целое число минус дата и время.
Ясно, тогда это будет так, если я правильно понимаю (используя эквивалент SQL) -- imgur.com/a/7GFmuJI ?
Что-то вроде того. Я думаю, что YEAR по-прежнему возвращает целое число, а не дату в SQL, верно?
да, точно. Я не уверен, является ли это частью стандарта ISO, но я знаю, что mysql позволяет сравнивать и приводить (?) Целое число к году: imgur.com/a/wzcWOgZ.
спасибо, не могли бы вы показать график или что-то вроде того, как вышеизложенное может выглядеть в Excel или PowerBI?