Мне нужно создать 3 меры для отдельного подсчета MerchantName в DimMerchant за последний месяц, последние 3 месяца и последний год заданной относительной даты.
Пример:
Для DateValue = 1 апреля 2024 г. (тип даты ММддигггг)
LM: подсчет торговцев на 01.03.2024
L3M: подсчет торговцев на 01.03.2024, 01.02.2024 и 01.01.2024.
LY: количество торговцев с 01.03.2024 по 01.04.2024.
MerchantInternal# мера (текущая попытка):
CALCULATE(
DISTINCTCOUNTNOBLANK('DimMerchant'[MerchantName]),
FactTransaction
)
Табличные отношения:
Пример ввода данных для тестирования:
@AmiraBedhiafi, спасибо, что заметили. Добавлены примеры данных для трех таблиц DimMerchant, DimMerchant и FactTransaction.
Взгляните на DAX Функции Time Intelligence.
Вот пример того, как могут выглядеть ваши меры:
// base measure
# Merchant =
CALCULATE(
DISTINCTCOUNTNOBLANK(DimMerchant[MerchantHK]),
FactTransaction
)
// Last Month or Previous Month
# Merchant LM = CALCULATE([# Merchant], PREVIOUSMONTH(DimDate[DateValue]))
// Last 3 months (not including current selected month)
# Merchant L3M =
CALCULATE(
[# Merchant],
DATESINPERIOD(DimDate[DateValue], MAX(DimDate[DateValue]) - 1, -3, MONTH)
)
// Last 12 months (not including current selected month)
# Merchant LY =
CALCULATE(
[# Merchant],
DATESINPERIOD(DimDate[DateValue], MAX(DimDate[DateValue]) - 1, -12, MONTH)
)
Привет, Сэм, спасибо за решение. Это работает :) Вскоре отмечу его как ответ, но у меня есть еще 1 вопрос (не эксперт по DAX). В случае, если мне также нужно вычислить, что первая транзакция продавца произошла в данном году (т. е.: для 202403 года, найдите мне продавцов, у которых была первая транзакция в 2024 году, а затем посчитайте соответственно lm , l3m, l12m. Я пытаюсь: CALCULATE( [MerchantInternal#], YEAR(MIN(DimDate[DateValue])) = YEAR(DimDate[DateValue]), DATESINPERIOD(DimDate[DateValue], MAX(DimDate[DateValue]), -12, MONTH)) Но, похоже, это не так полностью правильный.
Можете ли вы предоставить набор данных, соответствующий вашей модели данных?