Вычисление скользящего среднего и использование для пропущенных значений

#powerbi #dax

#powerbi #dax

Вопрос:

Я пытаюсь построить модель в PowerBI, которая прогнозирует будущие значения на основе определенных входных данных. Проблема, с которой я сталкиваюсь, заключается в том, что в некоторых моих данных отсутствуют строки, и мне также нужно использовать последнее значение данных в качестве значения для следующего периода, к которому я добавлю дополнительные (вычисленные) значения. Я использовал индекс, который начинается с -5 и проходит через 30, и добавил столбец даты, выраженный как Today() Index . Данные выглядят следующим образом:

 Index |  Date Index |  Values |
------------------------------
 -6        11/4       2     
 -5        11/5       5
 -4        11/6       7  
 -3        11/7      
 -2        11/8       5
 -1        11/9       4
  0        11/10        <-- This is today
  1        11/11
  2        11/12
 ...
  
  

Мне нужно, чтобы данные выглядели так:

    Index |  Date Index |  Values |
------------------------------
   -6        11/4       2     
   -5        11/5       5
   -4        11/6       7  
   -3        11/7       4.667
   -2        11/8       5
   -1        11/9       4
    0        11/10      4  <-- This is today
    1        11/11      4
    2        11/12      4
    ...
  

У меня есть формула Dax:

  Values = 
       If(
          AND(
              SUMX(
                   Filter(
              Table 2,Table 2[Date]='Summary Table'[Date Index]
                          ),
                   Table 2[Initial Values]
                   )=0,
              'Summary Table'[Date Index]<Today()
               ),
               Calculate(
                         Averagex(
                                  Table 2,Table 2[Initial Values]
                                  ),
                         DATESINPERIOD(
                                       Table 2[Date],Today()-1,5,DAY
                                       )
                         ),
               SUMX(
                    Filter(
                           Table 2,Table 2[Date]='Summary Table'[Date Index]
                           ),
                    Table 2[Initial Values]
                    )
            )
  

Обратите внимание, что я извлекаю свои значения из другой таблицы, таблицы 2, в которой есть несколько дат со значениями, которые я суммирую в этой сводной таблице по дате. По какой-то причине формула заполняет неверное среднее значение для пропущенных значений и не извлекает последнее значение (с сегодняшнего дня ()-1) до конца данных. Любая помощь или совет будут оценены!

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

1. Я попытался отформатировать ваш dax forumula, используя daxformatter.com , но это выдало ошибку, и мне пришлось добавить одинарные кавычки вокруг имени таблицы 2. Я поместил отформатированную версию в pastebin. Вы можете проверить его на правильность, а затем отредактировать свой пост, чтобы заменить формулу DAX, чтобы сделать ваш вопрос более понятным. pastebin.com/V9vgSpYy

2. Привет @sergiom, спасибо за совет. Я отформатировал код DAX, чтобы сделать его немного более читаемым. Функция работает в моем запросе, но, как указано, она возвращает неправильное среднее число и не выводит значения.