De scriptfunctie XNPV() neemt specifieke datums die overeenkomen met elke kasstroom waarbij een andere korting dan het kortingstarief wordt toegepast. Deze verschilt van de functie NPV() aangezien NPV() alle tijdsperioden als gelijkwaardig beschouwt. Om deze reden is XNPV() preciezer dan NPV().
Syntaxis:
XNPV(discount_rate, pmt,
date)
Retourgegevenstypen: numeriek. Het resultaat wordt standaard geformatteerd als een valuta.
De formule om de XNPV te berekenen is:
waarbij:
Pi= Netto-ontvangsten/-uitgaven in cash gedurende één periode i
d1= de eerste betaaldatum
di = de ie betaaldatum
rate = kortingspercentage
De huidige nettowaarde of Net Present Value/ NPV, wordt gebruikt om de huidige totale waarde van een toekomstige stream van cashflows te berekenen. Om de NPV te berekenen, moeten we de toekomstige cashflows per periode berekenen en het correcte kortingstatief bepalen.
XNPV() neemt een kortingspercentage en meerdere waarden op volgorde van periode. Ontvangsten (inkomsten) zijn positief en uitgaven (toekomstige betalingen) worden als negatieve waarden beschouwd. Deze vinden plaats aan het einde van elke periode.
Argumenten
Argument
Beschrijving
discount_rate
discount_rate is het percentagetarief van de toegepaste korting.
Een waarde van 0,1 zou een kortingspercentage van 10% aangeven.
value
Dit veld bevat cashflowwaarden. De eerste waarde wordt vanaf het begin als de cashflow beschouwd en de bijbehorende datum wordt als referentie gebruikt voor het berekenen van de huidige waarde voor alle toekomstige cashflows.
InformatieXNPV() past geen korting toe op de aanvankelijke cashflow. De kortingen voor daaropvolgende betalingen zijn gebaseerd op een jaar van 365 dagen. Dit verschilt van de NPV(), waarbij korting op iedere betaling wordt toegepast.
date
Dit veld bevat de datum waarop de cashflow (value, de tweede parameter) heeft plaatsgevonden. De eerste waarde wordt gebruikt als begindatum voor het berekenen van de offsets voor toekomstige cashflows.
Beperkingen:
Als er tekstwaarden zijn, NULL-waarden en ontbrekende waarden in een of beide delen van een gegevenspaar, wordt het gegevenspaar genegeerd.
Wanneer gebruiken
XNPV() wordt gebruikt in financiële modellen voor het berekenen van de huidige nettowaarde (NPV) van een investeringskans.
Vanwege de grotere nauwkeurigheid wordt voor alle typen financiële modellen de voorkeur gegeven aan XNPV boven NPV.
Landinstellingen
Tenzij anders aangegeven, wordt in de voorbeelden in dit onderwerp de volgende datumindeling gebruikt: MM/DD/JJJJ. De datumopmaak wordt opgegeven in de opdracht SET DateFormat in uw script voor het laden van gegevens. De standaard datumindeling is mogelijk anders op uw systeem vanwege landinstellingen en andere factoren. U kunt de indelingen in de voorbeelden wijzigen zodat deze aansluiten op uw behoeften. Of u kunt de indelingen in uw load-script wijzigen zodat ze overeenkomen met deze voorbeelden.
Standaard landinstellingen in apps zijn gebaseerd op de regionale systeeminstellingen van de computer of server waarop Qlik Sense is geïnstalleerd. Als de Qlik Sense-server die u gebruikt is ingesteld op Zweden, gebruikt de editor voor laden van gegevens de Zweedse landinstellingen voor datums, tijd en valuta. Deze landinstellingen voor indelingen zijn niet gerelateerd aan de taal die wordt weergegeven in de gebruikersinterface van Qlik Sense. Qlik Sense wordt weergegeven in dezelfde taal als de browser die u gebruikt.
Voorbeeld 1 – Enkele betaling (script)
Overzicht
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat:
Een gegevensset van één project en de daarbij behorende cashflow voor één jaar in de tabel CashFlow. De begindatum voor de berekening is ingesteld op 1 juli 2022, met een nettocashflow van 0. Na één jaar, treedt een cashflow van $1000 op.
Een resident-load uit de tabel CashFlow die wordt gebruikt om het XNPV-veld te berekenen voor het project in de tabel XNPV.
Een vastgesteld kortingspercentage van 10% (0,1) wordt gebruikt in de berekening van de XNPV.
De opdracht Group By wordt gebruikt om alle betalingen voor het project te groeperen.
Load-script
CashFlow:
Load
*
Inline
[
PrjId,Dates,Values
1,'07/01/2022',0
1,'07/01/2023',1000
];
XNPV:
Load
PrjId,
XNPV(0.1,Values,Dates) as XNPV //Discount Rate of 10%
Resident CashFlow
Group By PrjId;
Resultaten
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
PrjId
XNPV
Resultatentabel
PrjId
XNPV
1
$909.09
Volgens formule, is de XNPV-waarde voor de eerste record 0 en voor de tweede is de XNPV-waarde $909,09. Daarmee is de totale XNPV $909,09.
Voorbeeld 2 – Meerdere betalingen (script)
Overzicht
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat:
Een gegevensset van één project en de daarbij behorende cashflow voor één jaar in de tabel CashFlow.
Een resident-load uit de tabel CashFlow die wordt gebruikt om het XNPV-veld te berekenen voor het project in de tabel XNPV.
Een vastgesteld kortingspercentage van 10% (0,1) wordt gebruikt in de berekening van de XNPV.
De opdracht Group By wordt gebruikt om alle betalingen voor het project te groeperen.
Load-script
CashFlow:
Load
*
Inline
[
PrjId,Dates,Values
1,'07/01/2022',0
1,'07/01/2024',500
1,'07/01/2023',1000
];
XNPV:
Load
PrjId,
XNPV(0.1,Values,Dates) as XNPV //Discount Rate of 10%
Resident CashFlow
Group By PrjId;
Resultaten
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
PrjId
XNPV
Resultatentabel
PrjId
XNPV
1
$1322.21
In dit voorbeeld wordt er aan het eind van het eerste jaar een betaling van $1000 ontvangen en een betaling van $500 aan het eind van het tweede jaar. Met een kortingspercentage van 10% per periode is de effectieve XNPV gelijk aan $1322,21.
Let op: alleen de eerste rij gegevens mag verwijzen naar de basisgegevens voor berekeningen. Voor de rest van de rijen is de volgorde niet belangrijk omdat de datumparameter wordt gebruikt om de verlopen periode te berekenen.
Voorbeeld 3 – Meerdere betalingen en onregelmatige cashflows (script)
Overzicht
Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuw tabblad.
Het load-script bevat:
Kortingstarieven voor twee projecten in de tabel Project.
Cashflows voor meerdere perioden per project op project-id en datums. Het Dates-veld wordt gebruikt om de duur te berekenen dat het kortingspercentage wordt toegepast op de cashflow. Met uitzondering van de eerste record (aanvankelijke cashflow en datum), is de volgorde van de records niet belangrijk en deze veranderen zou geen invloed moeten hebben op de berekeningen.
Door een combinatie van NoConcatenate, resident-loads en de functie Left Join te gebruiken, wordt een tijdelijke tabel, tmpNPV, aangemaakt die de records van de tabellen Project en CashFlow in één tabel combineert. In deze tabel worden de kortingstarieven voor iedere cashflow herhaald.
Een resident-load uit de tabel tmpNPV die wordt gebruikt om het XNPV-veld te berekenen voor elk project in de tabel XNPV.
Het kortingspercentage voor de enkele waarde dat bij elk project hoort, wordt opgehaald met de only() -functie en wordt gebruikt in de XNPV-berekening per project.
Een Group By-opdracht, gegroepeerd op project-id, wordt gebruikt om alle betalingen en bijbehorende datums voor elk project te groeperen.
Om te vermijden dat synthetische of overbodige gegevens in het gegevensmodel worden geladen, wordt de tabel tmpXNPV aan het einde van het script verwijderd.
Load-script
Project:
Load * inline [
PrjId,Discount_Rate
1,0.1
2,0.15
];
CashFlow:
Load
*
Inline
[
PrjId,Dates,Values
1,'07/01/2021',0
1,'07/01/2022',1000
1,'07/01/2023',1000
2,'07/01/2020',0
2,'07/01/2023',500
2,'07/01/2024',1000
2,'07/01/2022',500
];
tmpXNPV:
NoConcatenate Load *
Resident Project;
Left Join
Load *
Resident CashFlow;
XNPV:
Load
PrjId,
XNPV(Only(Discount_Rate),Values,Dates) as XNPV //Discount Rate will be 10% for Project 1 and 15% for Project 2
Resident tmpXNPV
Group By PrjId;
Drop table tmpXNPV;
Resultaten
Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:
PrjId
XNPV
Resultatentabel
PrjId
XNPV
1
$1735.54
2
$278.36
Project-id 1 heeft een aanvankelijke cashflow van $0 op 1 juli 2021. Er zijn twee betalingen van $1000 die aan het eind van twee achtereenvolgende jaren moeten worden ontvangen met een kortingspercentage van 10% per periode. Daarom is de effectieve NPV gelijk aan $1735,54.
Project-id 2 heeft een aanvankelijke uitgave van $1000 (vandaar het negatieve teken) op 1 juli 2020. Na twee jaar wordt een betaling van $500 verwacht. Na drie jaar wordt nog een betaling van $500 verwacht. Als laatste wordt op 1 juli 2024 een betaling van $1000 verwacht. Met het kortingspercentage van 15% is de effectieve XNPV gelijk aan $278,36.
Als u problemen ervaart op deze pagina of de inhoud onjuist is – een typfout, een ontbrekende stap of een technische fout – laat het ons weten zodat we dit kunnen verbeteren!