XIRR - skriptfunktion
XIRR() returnerar den aggregerade internräntan (per år) för en tablå av kassaflöden (som inte nödvändigtvis är periodisk), representerad av parvisa tal i pmt och date itererade över ett antal poster enligt vad som definierats i en group by-sats. Alla betalningar diskonteras utifrån ett 365-dagarsår.
Qliks XIRR-funktionalitet (XIRR()- och RangeXIRR()-funktionerna) använder följande ekvation för att lösa värdet Rate och fastställa korrekt XIRR-värde:
XNPV(Rate, pmt, date) = 0
Ekvationen löses med en förenklad version av Newton-metoden.
Syntax:
XIRR(pmt, date )
Returnerad datatyp: numeriska
Argument | Beskrivning |
---|---|
pmt |
Betalningar. Uttrycket eller fältet som innehåller de kassaflöden som motsvarar det betalningsschema som anges i date. |
date | Uttrycket eller fältet som innehåller de datascheman som motsvarar kassaflödesbetalningar som ges i pmt. |
När du arbetar med den här funktionen gäller följande begränsningar:
-
Textvärden, NULL-värden och saknade värden i någon eller båda delarna av ett datapar resulterar i att hela dataparet ignoreras.
-
Denna funktion kräver minst en giltig negativ och minst en giltig positiv betalning (med motsvarande giltiga datum). Om dessa betalningar inte anges returneras ett NULL-värde.
Dessa ämnen kan hjälpa dig att arbeta med den här funktionen:
-
XNPV - skriptfunktion: använd den här funktionen för att beräkna det aggregerade aktuella nettovärdet för ett schema med kassaflöden.
-
RangeXIRR - skript- och diagramfunktion: RangeXIRR() är den ekvivalenta intervallfunktionen för XIRR()-funktionen.
Den underliggande algoritmen som används av den här funktionen varierar mellan olika versioner av För klienthanterat Qlik Sense. Mer information om de senaste uppdateringarna av algoritmen finns i supportartikeln Korrigeringar och uppdateringar av XIRR-funktioner.
Exempel
Tolkning av XIRR-returvärdet
XIRR-funktionen används vanligtvis för att analysera en investering där det finns en utgående (negativ) betalning i början och sedan en serie mindre inkomstbetalningar (positiva) senare. Här är ett förenklat exempel med endast en negativ och en positiv betalning:
Cashflow:
LOAD * inline [
Date|Payments
2023-01-01|-100
2024-01-01|110
] (delimiter is '|');
Vi gör en första betalning på 100 och får tillbaka 110 efter exakt ett år. Detta motsvarar en avkastningsgrad på 10 % per år. XIRR(Payments, Date) returnerar ett värde på 0,1.
Returvärdet för XIRR-funktionen kan vara positivt eller negativt. När det gäller en investering visar ett negativt resultat att investeringen är en förlust. Vinst- eller förlustbeloppet kan beräknas helt enkelt genom att göra en summering av betalningsfältet.
I exemplet ovan lånar vi ut våra pengar i ett år. Avkastningsgraden kan ses som en ränta. Det är också möjligt att använda XIRR:s funktion när du är på den andra sidan av transaktionen (t.ex. om du är låntagare i stället för långivare).
Ta det här exemplet:
Cashflow:
LOAD * inline [
Date|Payments
2023-01-01|100
2024-01-01|-110
] (delimiter is '|');
Detta är samma sak som i det första exemplet, men i omvänd form. Här lånar vi 100 euro i ett år och betalar tillbaka dem med 10 % ränta. I det här exemplet ger XIRR-beräkningen 0,1 (10 %), samma värde som i det första exemplet.
Observera att vi i det första exemplet fick en vinst på 10 och i det andra exemplet en förlust på 10, men att returvärdet för XIRR-funktionen är positivt för båda dessa exempel. Detta beror på att XIRR-funktionen beräknar den dolda räntan i transaktionen, oavsett vilken sida du är på i transaktionen.
Begränsningar med flera lösningar
Qliks XIRR-funktion definieras av följande ekvation, där värdet Rate löses:
XNPV(Rate, pmt, date) = 0
Det är ibland möjligt att denna ekvation har fler än en lösning. Detta är känt som "multipel IRR-problemet" och orsakas av ett icke-normalt kassaflöde (även kallat okonventionellt kassaflöde). Följande laddningsskript visar ett exempel på detta:
Cashflow:
LOAD * inline [
Date|Payments
2021-01-01|-200
2022-01-01|500
2023-01-01|-250
] (delimiter is '|');
I detta exempel finns det en negativ lösning och en positiv lösning (Rate= -0,3 och Rate= 0,8). XIRR() kommer att returnera 0,8.
När Qliks XIRR-funktion söker efter en lösning börjar den vid Rate = 0 och ökar värdet stegvis tills den hittar en lösning. Om det finns fler än en positiv lösning returneras den första lösningen. Om den inte kan hitta en positiv lösning kommer den att återställa Rate tillbaka till noll och börja söka efter en lösning i den negativa riktningen.
Observera att ett "normalt" kassaflöde garanterat har endast en lösning. Ett "normalt" kassaflöde innebär att alla betalningar med samma tecken (positiva eller negativa) ingår i en kontinuerlig grupp.