> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-fbfa8bee.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Documentation sur les fonctions financières

# Fonctions financières

<Note>
  La documentation ci-dessous est générée à partir de la table système `system.functions`
</Note>

{/*AUTOGENERATED_START*/}

<div id="financialInternalRateOfReturn">
  ## financialInternalRateOfReturn
</div>

Introduit dans : v25.7.0

Calcule le taux de rendement interne (TRI) pour une série de flux de trésorerie se produisant à intervalles réguliers.
Le TRI est le taux d’actualisation pour lequel la valeur actuelle nette (NPV) est égale à zéro.

Le TRI cherche à résoudre l’équation suivante :

$$
\sum&#95;{i=0}^n \frac{cashflow_i}{(1 + irr)^i} = 0
$$

**Syntaxe**

```sql theme={null}
financialInternalRateOfReturn(cashflows[, guess])
```

**Arguments**

* `cashflows` — Tableau des flux de trésorerie. Chaque valeur représente un paiement (valeur négative) ou un revenu (valeur positive). [`Array(Int8/16/32/64)`](/reference/data-types/array) ou [`Array(Float*)`](/reference/data-types/array)
* `[, guess]` — Estimation initiale facultative (valeur constante) du taux de rendement interne (par défaut : 0.1). [`Float*`](/reference/data-types/float)

**Valeur renvoyée**

Renvoie le taux de rendement interne ou `NaN` si le calcul ne parvient pas à converger, si le tableau d'entrée est vide ou ne contient qu'un seul élément, si tous les flux de trésorerie sont nuls ou si d'autres erreurs de calcul se produisent. [`Float64`](/reference/data-types/float)

**Exemples**

**simple\_example**

```sql title=Query theme={null}
SELECT financialInternalRateOfReturn([-100, 39, 59, 55, 20])
```

```response title=Response theme={null}
0.2809484211599611
```

**simple\_example\_with\_guess**

```sql title=Query theme={null}
SELECT financialInternalRateOfReturn([-100, 39, 59, 55, 20], 0.1)
```

```response title=Response theme={null}
0.2809484211599611
```

<h2 id="financialInternalRateOfReturnExtended">
  financialInternalRateOfReturnExtended
</h2>

Introduit dans : v25.7.0

Calcule le taux de rendement interne étendu (XIRR) pour une série de flux de trésorerie survenant à des intervalles irréguliers. Le XIRR est le taux d'actualisation pour lequel la valeur actuelle nette (NPV) de l'ensemble des flux de trésorerie est égale à zéro.

Le XIRR cherche à résoudre l'équation suivante (exemple pour `ACT_365F`) :

$$
\sum_{i=0}^n \frac{cashflow_i}{(1 + rate)^{(date_i - date_0)/365}} = 0
$$

Les tableaux doivent être triés par date en ordre croissant. Les dates doivent être uniques.

**Syntaxe**

```sql theme={null}
financialInternalRateOfReturnExtended(cashflow, date [, guess, daycount])
```

**Arguments**

* `cashflow` — Un tableau de flux de trésorerie correspondant aux dates du second paramètre. [`Array(Int8/16/32/64)`](/reference/data-types/array) ou [`Array(Float*)`](/reference/data-types/array)
* `date` — Un tableau trié de dates uniques correspondant aux flux de trésorerie. [`Array(Date)`](/reference/data-types/array) ou [`Array(Date32)`](/reference/data-types/array)
* `[, guess]` — Facultatif. Estimation initiale (valeur constante) pour le calcul du XIRR. [`Float*`](/reference/data-types/float)
* `[, daycount]` —
  Convention de décompte des jours facultative (par défaut : 'ACT\_365F'). Valeurs acceptées :
* 'ACT\_365F' - Réel/365 fixe : utilise le nombre réel de jours entre les dates divisé par 365
* 'ACT\_365\_25' - Réel/365,25 : utilise le nombre réel de jours entre les dates divisé par 365,25
  [`String`](/reference/data-types/string)

**Valeur renvoyée**

Renvoie la valeur XIRR. Si le calcul ne peut pas être effectué, renvoie NaN. [`Float64`](/reference/data-types/float)

**Exemples**

**simple\_example**

```sql title=Query theme={null}
SELECT financialInternalRateOfReturnExtended([-10000, 5750, 4250, 3250], [toDate('2020-01-01'), toDate('2020-03-01'), toDate('2020-10-30'), toDate('2021-02-15')])
```

```response title=Response theme={null}
0.6342972615260243
```

**simple\_example\_with\_guess**

```sql title=Query theme={null}
SELECT financialInternalRateOfReturnExtended([-10000, 5750, 4250, 3250], [toDate('2020-01-01'), toDate('2020-03-01'), toDate('2020-10-30'), toDate('2021-02-15')], 0.5)
```

```response title=Response theme={null}
0.6342972615260243
```

**simple\_example\_daycount**

```sql title=Query theme={null}
SELECT round(financialInternalRateOfReturnExtended([100000, -110000], [toDate('2020-01-01'), toDate('2021-01-01')], 0.1, 'ACT_365_25'), 6) AS xirr_365_25
```

```response title=Response theme={null}
0.099785
```

<div id="financialNetPresentValue">
  ## financialNetPresentValue
</div>

Introduit dans : v25.7.0

Calcule la valeur actuelle nette (NPV) d'une série de flux de trésorerie, en supposant des intervalles de temps égaux entre chaque flux.

Variante par défaut (`start_from_zero` = true) :

$$
\sum&#95;{i=0}^{N-1} \frac{values_i}{(1 + rate)^i}
$$

Variante compatible avec Excel (`start_from_zero` = false) :

$$
\sum&#95;{i=1}^{N} \frac{values_i}{(1 + rate)^i}
$$

**Syntaxe**

```sql theme={null}
financialNetPresentValue(rate, cashflows[, start_from_zero])
```

**Arguments**

* `rate` — Le taux d’actualisation à appliquer. [`Float*`](/reference/data-types/float)
* `cashflows` — Tableau de flux de trésorerie. Chaque valeur représente un paiement (valeur négative) ou un revenu (valeur positive). [`Array(Int8/16/32/64)`](/reference/data-types/array) ou [`Array(Float*)`](/reference/data-types/array)
* `[, start_from_zero]` — Paramètre booléen facultatif indiquant s’il faut commencer le calcul de la VAN à partir de la période `0` (true) ou de la période `1` (false, compatible avec Excel). Par défaut : true. [`Bool`](/reference/data-types/boolean)

**Valeur renvoyée**

Renvoie la valeur actuelle nette sous la forme d’une valeur de type Float64. [`Float64`](/reference/data-types/float)

**Exemples**

**default\_calculation**

```sql title=Query theme={null}
SELECT financialNetPresentValue(0.08, [-40000., 5000., 8000., 12000., 30000.])
```

```response title=Response theme={null}
3065.2226681795255
```

**calcul\_compatible\_Excel**

```sql title=Query theme={null}
SELECT financialNetPresentValue(0.08, [-40000., 5000., 8000., 12000., 30000.], false)
```

```response title=Response theme={null}
2838.1691372032656
```

<h2 id="financialNetPresentValueExtended">
  financialNetPresentValueExtended
</h2>

Introduit dans : v25.7.0

Calcule la valeur actuelle nette étendue (XNPV) pour une série de flux de trésorerie survenant à des intervalles irréguliers. XNPV prend en compte la date exacte de chaque flux de trésorerie lors du calcul de la valeur actuelle.

Équation XNPV pour `ACT_365F` :

$$
XNPV=\sum_{i=1}^n \frac{cashflow_i}{(1 + rate)^{(date_i - date_0)/365}}
$$

Les tableaux doivent être triés par date en ordre croissant. Les dates doivent être uniques.

**Syntaxe**

```sql theme={null}
financialNetPresentValueExtended(rate, cashflows, dates[, daycount])
```

**Arguments**

* `rate` — Le taux d'actualisation à appliquer. [`Float*`](/reference/data-types/float)
* `cashflows` — Tableau de flux de trésorerie. Chaque valeur représente un paiement (valeur négative) ou un revenu (valeur positive). Doit contenir au moins une valeur positive et une valeur négative. [`Array(Int8/16/32/64)`](/reference/data-types/array) ou [`Array(Float*)`](/reference/data-types/array)
* `dates` — Tableau de dates correspondant à chaque flux de trésorerie. Doit avoir la même taille que le tableau cashflows. [`Array(Date)`](/reference/data-types/array) ou [`Array(Date32)`](/reference/data-types/array)
* `[, daycount]` — Convention de décompte des jours (optionnelle). Valeurs acceptées : `'ACT_365F'` (par défaut) — Réel/365 fixe, `'ACT_365_25'` — Réel/365,25. [`String`](/reference/data-types/string)

**Valeur renvoyée**

Renvoie la valeur actuelle nette sous forme de valeur Float64. [`Float64`](/reference/data-types/float)

**Exemples**

**Utilisation de base**

```sql title=Query theme={null}
SELECT financialNetPresentValueExtended(0.1, [-10000., 5750., 4250., 3250.], [toDate('2020-01-01'), toDate('2020-03-01'), toDate('2020-10-30'), toDate('2021-02-15')])
```

```response title=Response theme={null}
2506.579458169746
```

**Utilisation d'une convention de décompte des jours différente**

```sql title=Query theme={null}
SELECT financialNetPresentValueExtended(0.1, [-10000., 5750., 4250., 3250.], [toDate('2020-01-01'), toDate('2020-03-01'), toDate('2020-10-30'), toDate('2021-02-15')], 'ACT_365_25')
```

```response title=Response theme={null}
2507.067268742502
```

<div id="related-resources">
  ## Ressources connexes
</div>

* [Vidéo sur les fonctions financières de ClickHouse](https://www.youtube.com/watch?v=BePLPVa0w_o)
