# XNPV

Returns the present value for a schedule of cash flows that is not necessarily periodic.

## Syntax

```
XNPV(<table>, <values>, <dates>, <rate>)
```

### Parameters

Term | Definition |
---|---|

table | A table for which the values and dates expressions should be calculated. |

values | An expression that returns the cash flow value for each row of the table. |

dates | An expression that returns the cash flow date for each row of the table. |

rate | The discount rate to apply to the cash flow for each row of the table. |

## Return value

Net present value.

## Remarks

The value is calculated as the following summation:

$$\sum^{N}_{j=1} \frac{P_{j}}{(1 + \text{rate})^{\frac{d_{j} - d_{1}}{365}}}$$

Where:

- $P_{j}$ is the $j^{th}$ payment
- $d_{j}$ is the $j^{th}$ payment date
- $d_{1}$ is the first payment date

The series of cash flow values must contain at least one positive number and one negative number.

This function is not supported for use in DirectQuery mode when used in calculated columns or row-level security (RLS) rules.

## Example

The following calculates the present value of the CashFlows table:

```
= XNPV( CashFlows, [Payment], [Date], 0.09 )
```

Date | Payment |
---|---|

1/1/2014 | -10000 |

3/1/2014 | 2750 |

10/30/2014 | 4250 |

2/15/2015 | 3250 |

4/1/2015 | 2750 |

Present value = 2086.65