Как рассчитать месячный бюджет до текущего дня в Power Bi Desktop - PullRequest
0 голосов
/ 24 мая 2018

У меня бюджет с разбивкой по месяцам.Но мне нужно рассчитать это до текущего дня.Например:

    Budget**        PostDate**
Jan  $2,125,889     1/1/2018
Feb  $4,141,659     2/1/2018
Mar  $4,320,698     3/1/2018
Apr  $4,461,430     4/1/2018
May  $4,049,404     5/1/2018
     $19,099,080    

Общая сумма, указанная ниже, составляет 19 099 080 долл. США за все 5 месяцев этого года.Мне нужно:

1) рассчитать бюджет на день для текущего месяца 4 094 404/31 = 132 077,548

2) рассчитать, сколько дней уже прошло в текущем месяце:

     difference in days between the beginning of the month and today. = 24

3) рассчитать бюджет по текущему дню в текущем месяце:

     Budget Per Day * Days passed in this month = 132,077.548 * 24 = 
$ 3,169,861

4) Подвести итоги бюджета за предыдущие 4 месяца и бюджета по текущему дню:

    15,049,676 + 3,169,861 = 18,219,537

Также у меня естьпараметр Year в моем отчете.Так что цифры должны меняться в зависимости от года.

enter image description here

Я пытаюсь сделать это в одной мере, используя переменные.Мне удалось узнать количество дней в текущем месяце:

VAR DaysInCurrentMonth = 
        MAXX(Dates, DAY(EOMONTH(Dates[Date], 0))) 

Я застрял на том, как получить количество проходов в этом месяце.Как заменить "BegginingOfMonth" на дату, чтобы я мог использовать функцию DATEDIFF.

VAR DaysPassed = DATEDIFF ("BegginingOfMonth", EOMONTH (NOW (), 0), DAY)

Также пробовалиспользовать функцию DATE, но год будет динамичным.Это не позволит мне использовать год с даты таблицы.

ОБНОВЛЕНИЕ:

Алексис, спасибо за ваш ответ.Просто и понятно.Единственное, что он суммирует до конца года, это какой-либо способ получить сумму только до текущего дня?

enter image description here

Спасибо

1 Ответ

0 голосов
/ 24 мая 2018

Вот мера на текущий месяц, которая должна корректно сложиться:

MTD Budget = SUMX(Budget,
                  Budget[Budget] *
                  IF(MONTH(TODAY()) <= MONTH(Budget[PostDate], 1, BLANK()) *
                  IF(MONTH(TODAY()) = MONTH(Budget[PostDate]),
                     DIVIDE(DAY(TODAY()), DAY(EOMONTH(Budget[PostDate],0))), 1))

Это увеличивает бюджет только на текущий месяц.

...