# XIRR - scriptfunctie

XIRR() retourneert het geaggregeerde interne opbrengstpercentage (jaarlijks) voor een schema van cashflows (niet noodzakelijk periodiek) die worden gerepresenteerd door getallenparen in pmt en date, die worden herhaald over een aantal records zoals vastgelegd door een group by-clausule. De kortingen voor alle betalingen zijn gebaseerd op een jaar van 365 dagen.

De XIRR-functionaliteit van Qlik (de functies XIRR() en RangeXIRR()) gebruiken de volgende vergelijking, als oplossing voor de `Rate`-waarde, om de juiste XIRR-waarde te bepalen:

`XNPV(Rate, pmt, date) = 0`

De vergelijking wordt opgelost met een vereenvoudigde versie van de Newton-methode.

Syntaxis:

XIRR(pmt, date )

Retourgegevenstypen: numeriek

Argumenten

| Argument | Beschrijving |
| --- | --- |
| pmt | Betalingen. De uitdrukking of het veld met de cashflows die horen bij het betalingenschema dat is gegeven in date. |
| date | De uitdrukking of het veld met het datumschema dat hoort bij de cashflowbetalingen die zijn gegeven in pmt. |

Als u werkt met deze functie, gelden de volgende beperkingen:

* Als een of beide delen van een gegevenspaar tekstwaarden NULL-waarden of ontbrekende waarden bevat, wordt het hele gegevenspaar genegeerd.

* Voor deze functie is ten minste één geldige negatieve en één geldige positieve betaling vereist (met bijbehorende geldige datums). Als deze betalingen niet zijn opgegeven, wordt er een NULL-waarde geretourneerd.

Deze onderwerpen kunnen u helpen bij het werken met deze functie:

* [XNPV - scriptfunctie](https://help.qlik.com/nl-NL/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/FinancialAggregationFunctions/XNPV.htm): gebruik deze functie om de geaggregeerde huidige nettowaarde te berekenen voor een schema met cashflows.

* [RangeXIRR - script- en diagramfunctie](https://help.qlik.com/nl-NL/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/RangeFunctions/RangeXIRR.htm): RangeXIRR() is de bijbehorende bereikfunctie voor de XIRR()‑functie.

Informatie

Binnen verschillende versies van Qlik Sense met clientbeheer bestaan er variaties op het onderliggende algoritme dat door deze functie wordt gebruikt. Voor meer informatie over recente updates van het algoritme, raadpleegt u het ondersteuningsartikel [XIRR-functie herstellen en bijwerken](https://community.qlik.com/t5/Member-Articles/XIRR-function-Fix-and-Update/ta-p/2049021).

## Voorbeeld

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/FinancialAggregationFunctions/XIRR.htm)

#### Load-script en resultaten

Overzicht

Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuwe sectie.

Het load-script bevat:

* Transactiegegevens voor een reeks cashflows.

* Het gebruik van de XIRR() functie om het interne jaarlijkse opbrengstpercentage voor deze cashflows te berekenen.

Load-script

```
Cashflow:
LOAD 2013 as Year, * inline [
Date|Payments
2013-01-01|-10000
2013-03-01|3000
2013-10-30|4200
2014-02-01|6800
] (delimiter is '|');
 
Cashflow1:
LOAD Year,XIRR(Payments, Date) as XIRR2013  Resident Cashflow Group By Year;
```

Resultaten

Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:

* `Year`

* `XIRR2013`

Resultatentabel

| Jaar | XIRR2013 |
| --- | --- |
| 2013 | 0.5385 |

## De XIRR-retourwaarde interpreteren

De XIRR-functionaliteit wordt meestal gebruikt om een investering te analyseren met een uitgaande (negatieve) betaling in het begin en later een aantal kleinere binnenkomende (positieve) betalingen. Hieronder ziet u een vereenvoudigd voorbeeld met één negatieve en één positieve betaling:

`Cashflow:` `LOAD * inline [` `Date|Payments` `2023-01-01|-100` `2024-01-01|110` `] (delimiter is '|');` ` `

We voeren eerst een betaling van 100 uit en precies één jaar later ontvangen we 110 terug. Dit vertegenwoordigt een opbrengstpercentage van 10% per jaar. `XIRR(Payments, Date)` retourneert een waarde van 0.1.

De retourwaarde van de XIRR-functionaliteit kan positief of negatief zijn. In het geval van een investering geeft een negatief resultaat aan dat er sprake is van verlies. De hoeveelheid winst of verlies kan worden berekend door een sum-aggregatie uit te voeren voor de betalingsvelden.

In het bovenstaande voorbeeld lenen we één jaar geld uit. Het opbrengstpercentage kan als rente worden beschouwd. U kunt de XIRR-functionaliteit ook gebruiken als u zich aan de andere kant van de transactie bevindt (bijvoorbeeld als u de lener in plaats van de geldschieter bent).

Neem het volgende voorbeeld:

`Cashflow:` `LOAD * inline [` `Date|Payments` `2023-01-01|100` `2024-01-01|-110` `] (delimiter is '|');` ` `

dit voorbeeld is hetzelfde als hierboven, maar dan omgedraaid. Hier lenen we 100 voor één jaar en we betalen het terug met 10% rente. In dit voorbeeld geeft de XIRR-functionaliteit 0.1 (10%), dezelfde waarde als in het eerste voorbeeld.

In het eerste voorbeeld ontvingen we een winst van 10 en in het tweede voorbeeld hadden we een verlies van 10, maar de retourwaarde van de XIRR-functionaliteit is in beide voorbeelden positief. Dit komt doordat de XIRR-functionaliteit de verborgen rente van de transactie berekend, ongeacht aan welke kant van de transactie u zich bevindt.

## Beperkingen met meerdere uitkomsten

DE XIRR-functionaliteit van Qlik wordt gedefinieerd door de volgende vergelijking waarin de `Rate`-waarde wordt opgelost:

`XNPV(Rate, pmt, date) = 0`

bij deze vergelijking is er meer dan één uitkomst mogelijk. Dit wordt ook wel het 'meervoudig IRR-probleem' genoemd en dit wordt veroorzaakt door een ongewone cashflowstroom (ook wel een niet-conventionele cashflow genoemd). Het volgende load-script is hier een voorbeeld van:

`Cashflow:` `LOAD * inline [` `Date|Payments` `2021-01-01|-200` `2022-01-01|500` `2023-01-01|-250` `] (delimiter is '|');` ` `

In dit voorbeeld is er een negatieve uitkomt en een positieve uitkomst (`Rate` = -0.3 en `Rate` = 0.8). XIRR() geeft 0.8.

Als de XIRR-functionaliteit van Qlik zoekt naar een uitkomst, is het startpunt `Rate` = 0 en wordt het tarief in stappen verhoogd totdat de uitkomst is gevonden. Als er meer dan één positieve uitkomst mogelijk is, wordt de eerste uitkomst gegeven. Als er geen positieve uitkomst wordt gevonden, wordt `Rate` teruggezet naar nul en wordt er gezocht naar een negatieve uitkomst.

Bij een 'normale' cashflowstream is er gegarandeerd maar één uitkomst mogelijk. Een 'normale' cashflowstream betekent dat alle betalingen met hetzelfde teken (positief of negatief) zich in een onafgebroken groep bevinden.

## Meer informatie

* [XNPV - scriptfunctie](https://help.qlik.com/nl-NL/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/FinancialAggregationFunctions/XNPV.htm)
* [RangeXIRR - script- en diagramfunctie](https://help.qlik.com/nl-NL/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/RangeFunctions/RangeXIRR.htm)
* [XIRR-functie herstellen en bijwerken](https://community.qlik.com/t5/Member-Articles/XIRR-function-Fix-and-Update/ta-p/2049021)