XNPV() retourneert de geaggregeerde huidige nettowaarde voor een schema van cashflows (niet noodzakelijk periodiek) die worden gerepresenteerd door getallenparen in pmt en date. De kortingen voor alle betalingen zijn gebaseerd op een jaar van 365 dagen.
Syntaxis:
XNPV(discount_rate, pmt,
date)
Retourgegevenstypen: numeriek
InformatieHet resultaat wordt standaard geformatteerd als een valuta.
De formule om de XNPV te berekenen wordt hieronder getoond:
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 met een kortingspecentage te berekenen. Om de XNPV te berekenen moeten we de toekomstige cashflows met bijbehorende datums inschatten. Hierna passen we voor elke betaling het samengestelde kortingspercentage op basis van de betalingsdatum toe.
Het uitvoeren van de XNPV-aggregatie voor een reeks betalingen is vergelijkbaar met het uitvoeren van een sum-aggregatie voor die betalingen. Het verschil is dat elk bedrag wordt aangepast (of dat korting wordt toegepast) op basis van het gekozen kortingspercentage (vergelijkbaar met het rentepercentage) en hoe ver in de toekomst de betaling wordt uitgevoerd. Als u XNPV uitvoert met de parameter discount_rate ingesteld op nul, wordt de XNPV gelijkgesteld aan de sum-bewerking (de betalingen worden niet aangepast voordat ze bij elkaar worden opgeteld). Over het algemeen geldt dat hoe dichter de waarde van discount_rate bij nul ligt, hoe meer het XNPV-resultaat overeenkomt met dat van een sum-aggregatie.
Argumenten
Argument
Beschrijving
discount_rate
discount_rate is het jaartarief waarmee korting op betalingen wordt toegepast.
Een waarde van 0.1 zou een kortingspercentage van 10% aangeven.
pmt
Betalingen. De uitdrukking of het veld met de cashflows die horen bij het betalingenschema dat is gegeven in date. Positieve waarden worden als ontvangsten beschouwd en negatieve waarden als uitgaven.
InformatieXNPV() past geen korting toe op de initiële cashflow omdat dit altijd gebeurt op de begindatum. De kortingen voor daaropvolgende betalingen zijn gebaseerd op een jaar van 365 dagen. Dit verschilt van de NPV(), waarbij ook korting op de eerste betaling wordt toegepast.
date
De uitdrukking of het veld met het datumschema dat hoort bij de cashflowbetalingen die zijn gegeven in pmt. De eerste waarde wordt gebruikt als begindatum voor het berekenen van de tijdverschuivingen voor toekomstige cashflows.
Als u werkt met deze functie, gelden de volgende beperkingen:
Als een of beide delen van een gegevenspaar tekstwaarden, NULL-waarden of ontbrekende waarden bevatten, wordt het hele 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 gegevensverzameling 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!