XNPV() returnerar det aggregerade aktuella nettovärdet för en tablå av kassaflöden (som inte nödvändigtvis är periodisk), representerade av parvisa tal i pmt och date. Alla betalningar diskonteras utifrån ett 365-dagarsår.
Syntax:
XNPV(discount_rate, pmt,
date)
Returnerad datatyp: numeriska
Anteckning om informationSom standard formateras resultatet som valuta.
Formeln för att beräkna XNPV visas nedan:
där:
Pi= nettokassainflöden och -utflöden under en enstaka period i
d1= det första betalningsdatumet
di = det i:e betalningsdatumet
rate = rabattsats
Det aktuella nettovärdet, eller NPV (Net Present Value), används för att beräkna det aktuella totala värdet för en framtida ström av kassaflöden baserat på en räntesats. För att beräkna XNPV måste vi uppskatta framtida kassaflöden med motsvarande datum. Därefter tillämpar vi för varje betalning den effektiva diskonteringsräntan baserat på betalningsdatumet.
Att utföra XNPV-aggregeringen över en serie betalningar liknar att utföra en summaaggregering över dessa betalningar. Skillnaden är att varje belopp ändras (eller "diskonteras") beroende på vald diskonteringsränta (liknande räntesats) och hur långt in i framtiden betalningen ligger. Om XNPV utförs med parametern discount_rate satt till noll kommer XNPV att vara likvärdigt med en summering (betalningarna kommer inte att ändras innan de summeras). I allmänhet gäller att ju närmare noll discount_rate är satt, desto mer liknar XNPV-resultatet resultatet av en summaaggregering.
Argument
Argument
Beskrivning
discount_rate
discount_rate är den årliga ränta som betalningarna ska diskonteras med.
Ett värde på 0,1 anger en rabattsats på 10 %.
pmt
Betalningar. Uttrycket eller fältet som innehåller de kassaflöden som motsvarar det betalningsschema som anges i date. Positiva värden antas vara inflöden och negativa värden antas vara utflöden.
Anteckning om informationXNPV() diskonterar inte det första kassaflödet eftersom det alltid kommer att inträffa på startdatumet. Efterföljande betalningar rabatteras utifrån ett 365-dagarsår. Detta skiljer sig från NPV(), där även den första betalningen diskonteras.
date
Uttrycket eller fältet som innehåller de datascheman som motsvarar kassaflödesbetalningar som ges i pmt. Det första värdet används som startdatum för att beräkna tidsförskjutningar för framtida kassaflöden.
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.
Användning
XNPV() används vid finansiell modellering för beräkning av det aktuella nettovärdet (NPV) för en investeringsmöjlighet.
På grund av sin högre precision är XNPV att föredra framför NPV för alla typer av finansiella modeller.
Lokala inställningar
Om inget annat anges använder exemplen i detta ämne följande datumformat: MM/DD/ÅÅÅÅ. Datumformatet anges i SET DateFormat-satsen i datainläsningsskriptet. Förvald datumformatering kan vara annorlunda i ditt system, på grund av dina regionala inställningar och andra faktorer. Du kan ändra formaten i exemplen nedan så att det passar dina krav. Eller så kan du ändra formaten i ditt laddningsskript så att de matchar dessa exempel.
Standardregionalinställningar i appar baseras på de regionala systeminställningarna för datorn eller servern där Qlik Sense är installerad. Om Qlik Sense-servern du ansluter till är inställd på Sverige så kommer skriptredigeraren använda regionala inställningar för Sverige för datum, tid och valuta. Dessa regionala formatinställningar är inte relaterade till språket som visas i Qlik Sense användargränssnittet. Qlik Sense kommer att visas på samma språk som webbläsaren du använder.
Exempel 1 – enstaka betalning (skript)
Översikt
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
En datauppsättning med ett projekt och dess kassaflöde för ett år, i en tabell som heter CashFlow. Det initiala datumet för beräkningen är inställt till 1 juli 2022, med ett nettokassaflöde på 0. Efter ett år inträffar ett kassaflöde på 1000 USD.
En resident load från CashFlow-tabellen, som används för att beräkna XNPV-fältet för projektet i en tabell som heter XNPV.
En hårdkodad rabattsats på 10 % (0,1) används i XNPV-beräkningen.
En Group By-sats används för att gruppera alla betalningar för projektet.
Laddningsskript
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;
Resultat
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
PrjId
XNPV
Resultattabell
PrjId
XNPV
1
$909.09
Enligt formeln är XNPV-värdet för den första posten 0, och för den andra posten är XNPV-värdet 909,09 USD. Totalt XNPV är 909,09 USD.
Exempel 2 – flera betalningar (skript)
Översikt
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
En datauppsättning med ett projekt och dess kassaflöde för ett år, i en tabell som heter CashFlow.
En resident load från CashFlow-tabellen, som används för att beräkna XNPV-fältet för projektet i en tabell som heter XNPV.
En hårdkodad rabattsats på 10 % (0,1) används i XNPV-beräkningen.
En Group By-sats används för att gruppera alla betalningar för projektet.
Laddningsskript
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;
Resultat
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
PrjId
XNPV
Resultattabell
PrjId
XNPV
1
$1322.21
I det här exemplet erhålls en betalning på 1000 USD på slutet av det första året och en betalning på 500 USD erhålls på slutet av andra året. Med en rabattsats på 10 % per period blir effektiv XNPV 1322,21 USD.
Observerar att endast den första raden med data ska hänvisa till basdatumet för beräkningar. För resten av raderna spelar ordningen ingen roll, eftersom datumparametern används för att beräkna den förbrukade tiden.
Exempel 3 – flera betalningar och oregelbundna kassaflöden (skript)
Översikt
Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.
Laddningsskriptet innehåller:
Rabattsatser för två projekt som i en tabell som heter Project.
Kassaflöden för flera perioder för varje projekt efter projekt-ID och datum. Dates-fältet används för att beräkna hur länge respektive rabattsatsen tillämpas för kassaflödet. Bortsett från från den första posten (initialt kassaflöde och datum) spelar posternas ordning ingen roll och om den ändras påverkas inte beräkningarna.
Med en kombination av NoConcatenate, resident loads och Left Join-funktionen skapas en temporär tabell tmpNPV som kombinerar posterna i tabellerna Project och CashFlow till en platt tabell. Den här tabellen kommer att ha repeterade rabattsatser för varje kassaflöde.
En resident load från tmpNPV-tabellen, som används för att beräkna XNPV-fältet för varje projekt i en tabell som heter XNPV.
Den enstaka rabattsatsen som är kopplad till varje projekt hämtas med only()-funktionen och används i XNPV-beräkningen för varje projekt.
En Group By-sats som grupperar efter projekt-ID används för att gruppera alla betalningar och motsvarande datum för varje projekt.
För att undvika att syntetiska eller redundanta data laddas till datamodellen släpps tmpXNPV-tabellen på slutet av skriptet.
Laddningsskript
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;
Resultat
Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:
PrjId
XNPV
Resultattabell
PrjId
XNPV
1
$1735.54
2
$278.36
Projekt-ID har ett initialt kassaflöde på 0 USD den 1 juli 2021. Det finns två betalningar på 1000 USD som ska erhållas på slutet av två på varandra följande år, med en rabattsats på 10 % per period. Därför blir effektiv XNPV 1735.54 USD.
Projekt-ID 2 har ett initialt utflöde av 1000 USD (därför används minustecken) den 1 juli 2020. Efter två år förväntas en betalning på 500 USD. Efter två år förväntas ytterligare en betalning på 500 USD. Slutligen förväntas en betalning på 1000 USD den 1 juli 2024. Med rabattsatsen på 15 % blir effektiv XNPV 278,36 USD.
Om du hittar några fel på denna sida eller i innehållet – ett stavfel, ett steg som saknas eller ett tekniskt fel – berätta för oss så att vi kan blir bättre!