Financial DAX functions
DAX has borrowed many financial functions straight from Excel. Of these, two are applicable to this chapter's case study in particular: XNPV
and XIRR
. The X
in the name of these functions suggests that they are table aggregations, and indeed, the first argument of each is a table.
XNPV
can be used to calculate the NPV of a table of cash flows:
XNPV(CashFlowTable, <value>, <date>, Rate)
Note that the cash flows do not need to be in the table: you provide the values of the cash flows as an expression that is evaluated in row context on the CashFlowTable
. Similarly, an expression returning a date is evaluated for each row. This means that discounting is done on a daily basis, and the (annual) n value from the formulas in the previous section is calculated (for the mth row in the table) as:
The XIRR
value tries to approximate the IRR for a table of cash flows:
XIRR(CashFlowTable, <value>, <date>)
Like...