У меня есть расчет NPV, который я сделал вручную, потому что функция XNPV, похоже, не работает.

Созданная мною мера NPV выглядит так:

'Data'[Undiscounted Value] / (1+'Discount Rate'[Discount Rate Value])^([Component]/12)

Я обнаружил, что ошибка моих вычислений заключается в части меры [Компонент]. Расчет [Компонент] выглядит следующим образом:

IF(TODAY() > LASTDATE('Data'[Date]), BLANK(),
DATEDIFF(TODAY(), LASTDATE('Data'[Date]), MONTH))

Расчет [Компонент] предназначен для определения количества месяцев для расчета NPV. Я делю на 12, потому что у меня годовая учетная ставка, но мои данные указаны в месяцах.

Приведенный выше расчет отлично работает на линейной / гистограмме. Я проверил месяцы выборочно, чтобы убедиться, что значения правильно дисконтированы.

ПРОБЛЕМА возникает, когда я пытаюсь ОБЪЕДИНЯТЬ данные. Другими словами, он отлично работает на линейной диаграмме, но когда я просто помещаю расчет в визуальный элемент карты, он использует LASTDATE для компонента и выполняет расчет, используя сумму всех недисконтированных значений. Другими словами, он делает что-то вроде этого:

 SUM ('Data'[Undiscounted Value] ) / (1+'Discount Rate'[Discount Rate Value])^(MAX(Component) /12)

А затем выдаёт неверный результат.

Предполагается, что он просто берет сумму всех дисконтированных значений. Таким образом, вычисление выполняется месяц за месяцем, а затем складываются все месяцы, но вместо этого добавляются значения без скидки, а затем дисконтируется в течение 36 месяцев.

Мой ВОПРОС: есть ли альтернативная функция, которая сообщила бы Power BI не использовать ПОСЛЕДНЮЮ ДАТУ, а вместо этого перебирать каждый месяц (строку), а затем СУММ

0
SUMguy 16 Дек 2017 в 02:37

1 ответ

Лучший ответ

Я бы предложил следующую структуру решения:

  SUMX( 
      VALUES( 'Data'[Month] )
      , CALCULATE( NPV )
      )

Это позволит рассчитать скидку за каждый месяц перед их суммированием. Возможно, вам также придется скорректировать формулу [Component].

0
DAX0110 16 Дек 2017 в 06:45