Требуется решение в измерении DAX в Power BI с датами и срезами

#date #calendar #powerbi #dax

Вопрос:

Мне нужна мера, которая рассчитает сумму плана продаж, деленную на количество дней в месяце, которое выбрано в слайсере? чтобы получить ежедневный план продаж на этот месяц

Затем мне нужно умножить этот ежедневный план продаж на количество дней, выбранных в срезе диапазона, чтобы получить сумму этого диапазона

Например: я выбрал диапазон с 01/01/21 по 07/01/21/ И у меня есть квота на январь 310$

Поэтому мне нужна мера, которая вычислит 310/31 = 10, а затем мне нужно, чтобы ее умножили на 7 дней, которые находятся в слайсере, и получили 70

Я пытаюсь применить это, но получаю неправильный результат:

 VAR minselectdate = CALCULATE(MIN('calendar'[Date]),ALLSELECTED('calendar'))

VAR maxselectdate = CALCULATE(MAX('calendar'[Date]),ALLSELECTED('calendar'))

VAR StartPeriod = EOMONTH(minselectdate,-1) 1

VAR EndPeriod = EOMONTH(maxselectdate, 0)

VAR Currdate = LASTDATE('calendar'[Date])

VAR Plan = CALCULATE(SUM('Все_отчет1_Квоты'[Квота месяц]),DATESBETWEEN('calendar'[Date],StartPeriod,EndPeriod))

VAR datesperiod = COUNTROWS(DATESBETWEEN('calendar'[Date],StartPeriod,EndPeriod))

VAR planondate = DIVIDE(Plan,datesperiod)

VAR Result = ALCULATE(SUMX(VALUES('calendar'[Date]),planondate),DATESBETWEEN('calendar'[Date], minselectdate,Currdate))

Return

Result
 

Комментарии:

1. Я пытаюсь применить это, но получаю неправильный результат

2. Какой неправильный результат? Каков ожидаемый результат? Без просмотра модели данных никто не сможет вам помочь. Неужели ты этого не понимаешь?

3. Поэтому мне нужна мера, которая вычислит 310/31 = 10, а затем мне нужно, чтобы ее умножили на 7 дней, которые находятся в слайсере, и получили 70

Ответ №1:

Я вижу, у вас есть таблица календаря. Я предполагаю, что он имеет отношение к вашей таблице планов и содержит информацию о месяцах.

Если ваш фильтр находится в календаре[Дата] и в вашем календаре есть информация за месяц, вы можете сделать все это в такой мере, как:

 DailyPlanAmount = 
CALCULATE (
    SUM ( Plan[PlanAmount] ) / COUNTROWS ( 'Calendar' ),
    ALL ( 'Calendar'[Date] ),
    VALUES ( 'Calendar'[MonthYear] )
)
    * COUNTROWS ( 'Calendar' )
 

Мы подсчитываем суммы плана и используем функцию «Все», чтобы удалить все фильтры по дате, заменив их фильтром по месяцу. Затем мы отсчитываем строки (вне нашего фильтра) в таблице календаря, чтобы получить количество дней, и умножаем это на наш результат.

введите описание изображения здесь