Die Funktion XNPV() gibt den aggregierten Nettobarwert einer Reihe geplanter (nicht unbedingt regelmäßig erfolgender) Geldflüsse zurück, repräsentiert durch die Wertepaare in pmt und date. Alle Beträge werden auf ein 365-Tage-Jahr hochgerechnet.
Syntax:
XNPV(discount_rate, pmt,
date)
Rückgabe Datentyp: numerisch
InformationshinweisStandardmäßig wird das Ergebnis als Währung formatiert.
Die Formel zum Berechnen von XNPV wird unten gezeigt:
Dabei gilt:
Pi= eingehende und ausgehende Nettozahlungsströme während eines einzelnen Zeitraums i
d1= das erste Zahlungsdatum
di = das ite Zahlungsdatum
rate = Diskontierungsrate
Der Nettobarwert (Net Present Value, NPV) dient zum Berechnen des aktuellen Gesamtwerts von zukünftigen Geldflüssen bei einer bestimmten Diskontierungsrate. Zum Berechnen des XNPV müssen wir zukünftige Geldflüsse mit entsprechenden Datumswerten schätzen. Danach wenden wir für jede Zahlung die Gesamtdiskontierungsrate basierend auf dem Zahlungsdatum an.
Die XNPV-Aggegierung über eine Reihe von Zahlungen gleicht einer Summenaggregierung über diese Zahlungen. Der Unterschied besteht darin, dass jeder Betrag abgeändert („diskontiert“) wird – abhängig von der gewählten Diskontierungsrate (ähnlich einem Zinssatz) und abhängig davon, wie weit in der Zukunft die Zahlung liegt. Wenn für XNPV der Parameter discount_rate auf Null festgesetzt ist, entspricht XNPV einer Summenoperation (die Zahlungen werden vor dem Summieren nicht geändert). Generell gilt: Je näher discount_rate bei null liegt, desto stärker gleicht das XNPV-Ergebnis dem einer Summenaggregierung.
Argumente
Argument
Beschreibung
discount_rate
discount_rate ist die jährliche Rate, um die die Zahlungen diskontiert werden sollen.
Ein Wert von 0,1 gibt eine Diskontierungsrate von 10 % an.
pmt
Zahlungen. Die Formel oder das Feld mit den Cashflows, die den Zahlungszeitpunkten in date entsprechen. Positive Werte gelten als Zahlungseingänge, negative Werte als Zahlungsausgänge.
InformationshinweisXNPV() diskontiert den anfänglichen Geldfluss nicht, da diese immer am Startdatum stattfindet. Anschließende Zahlungen werden auf ein 365-Tage-Jahr hochgerechnet. Das ist anders als bei NPV(), wo auch die erste Zahlung diskontiert wird.
date
Die Formel oder das Feld mit den Zeitpunkten, die den Cashflow-Zahlungen in pmt entsprechen. Der erste Wert wird als Startdatum für die Berechnung des Versatzes für zukünftige Geldflüsse verwendet.
Bei der Arbeit mit dieser Funktion gelten die folgenden Einschränkungen:
Textwerte, NULL-Werte und fehlende Werte in einem oder beiden Teilen eines Wertepaars führen dazu, dass das Wertepaar ignoriert wird.
Verwendung
XNPV() wird in der Finanzmodellierung zum Berechnen des Nettobarwerts (Net Present Value, NPV) einer Investitionsmöglichkeit verwendet.
Aufgrund seiner höheren Präzision wird XNPV bei allen Typen von Finanzmodellen gegenüber NPV bevorzugt.
Regionaleinstellungen
Sofern nicht anders angegeben, verwenden die Beispiele in diesem Thema das folgende Datumsformat: MM/TT/JJJJ. Das Datumsformat wird in der Anweisung SET DateFormat in Ihrem Datenladeskript angegeben. Das Standarddatumsformat in Ihrem System kann aufgrund Ihrer regionalen Einstellungen und anderer Faktoren abweichen. Sie können die Formate in den Beispielen unten Ihren Anforderungen entsprechend ändern. Sie können auch die Formate in Ihrem Ladeskript entsprechend den Beispielen ändern.
Die standardmäßigen regionalen Einstellungen in Apps basieren auf den regionalen Systemeinstellungen der Computer oder Server, auf denen Qlik Sense installiert ist. Wenn der Qlik Sense-Server, auf den Sie zugreifen, auf Schweden festgelegt ist, verwendet der Dateneditor die schwedischen regionalen Einstellungen für Datums-, Uhrzeit- und Währungsangaben. Diese Einstellungen im regionalen Format hängen nicht mit der Sprache zusammen, die in der Benutzeroberfläche von Qlik Sense angezeigt wird. Qlik Sense wird in der gleichen Sprache wie der von Ihnen verwendete Browser angezeigt.
Beispiel 1 – Einmalige Zahlung (Skript)
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Ein Datensatz für ein Projekt und dessen Geldfluss für ein Jahr wird in eine Tabelle namens CashFlow geladen. Das anfängliche Datum für die Berechnung ist auf den 1. Juli 2022 mit einem Nettogeldfluss von 0 festgelegt. Nach einem Jahr findet ein Geldfluss von $1000 statt.
Ein Resident Load aus der Tabelle CashFlow wird verwendet, um das XNPV-Feld für das Projekt in der Tabelle XNPV zu berechnen.
Eine feste Diskontierungsrate von 10 % (0,1) wird in der XNPV-Berechnung verwendet.
Ein Group By-Befehl wird verwendet, um alle Zahlungen für das Projekt zu gruppieren.
Ladeskript
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;
Ergebnisse
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:
PrjId
XNPV
Ergebnistabelle
PrjId
XNPV
1
$909.09
Entsprechend der Formel ist der XNPV-Wert für den ersten Datensatz 0 und für den zweiten Datensatz $909,09. Somit beträgt der gesamte XNPV $909,09.
Beispiel 2 – Mehrere Zahlungen (Skript)
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Ein Datensatz für ein Projekt und dessen Geldfluss für ein Jahr wird in eine Tabelle namens CashFlow geladen.
Ein Resident Load aus der Tabelle CashFlow wird verwendet, um das XNPV-Feld für das Projekt in der Tabelle XNPV zu berechnen.
Eine feste Diskontierungsrate von 10 % (0,1) wird in der XNPV-Berechnung verwendet.
Ein Group By-Befehl wird verwendet, um alle Zahlungen für das Projekt zu gruppieren.
Ladeskript
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;
Ergebnisse
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:
PrjId
XNPV
Ergebnistabelle
PrjId
XNPV
1
$1322.21
In diesem Beispiel wird am Ende des ersten Jahres eine Zahlung von $1000 und am Ende des zweiten Jahres eine Zahlung von $500 erhalten. Mit einer Diskontierungsrate von 10 % pro Zeitraum entspricht der effektive XNPV $1322,21.
Beachten Sie, dass nur die erste Datenzeile auf das Basisdatum für Berechnungen verweisen sollte. Für die restlichen Zeilen ist die Reihenfolge nicht wichtig, da der Datumsparameter zum Berechnen des verstrichenen Zeitraums verwendet wird.
Beispiel 3 – Mehrere Zahlungen und unregelmäßige Geldflüsse (Skript)
Übersicht
Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in eine neue Registerkarte ein.
Das Ladeskript umfasst:
Diskontierungsraten für zwei Projekte werden in eine Tabelle namens Project geladen.
Es erfolgen Geldflüsse für mehrere Zeiträume für jedes Projekt nach Projekt-ID und Datum. Das Feld Dates wird verwendet, um die Dauer zu berechnen, für die die Diskontierungsrate auf den Geldfluss angewendet wird. Abgesehen vom ersten Datensatz (anfänglicher Geldfluss und Datum) ist die Reihenfolge der Datensätze nicht wichtig, und eine Änderung dürfte keine Auswirkung auf die Berechnungen haben.
Mit einer Kombination aus NoConcatenate, Resident Loads und der Funktion Left Join wird eine temporäre Tabelle tmpNPV erstellt, in der die Datensätze aus den Tabellen Project und CashFlow in einer flachen Tabelle kombiniert werden. In dieser Tabelle werden Diskontierungsraten für jeden Geldfluss wiederholt.
Ein Resident Load aus der Tabelle tmpNPV wird verwendet, um das Feld XNPV für jedes Projekt in der Tabelle XNPV zu berechnen.
Die Diskontierungsrate mit einem einzelnen Wert für jedes Projekt wird anhand der Funktion only() abgerufen und in der XNPV-Berechnung für jedes Projekt verwendet.
Ein Group By-Befehl, der nach Projekt-ID gruppiert, wird zum Gruppieren aller Zahlungen für jedes Projekt und der entsprechenden Datumswerte verwendet.
Um zu verhindern, dass synthetische oder redundante Daten in das Datenmodell geladen werden, wird die Tabelle tmpXNPV am Ende des Skripts verworfen.
Ladeskript
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;
Ergebnisse
Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:
PrjId
XNPV
Ergebnistabelle
PrjId
XNPV
1
$1735.54
2
$278.36
Projekt-ID 1 hat einen anfänglichen Geldfluss von $0 am Juli 1. 2021. Es sollen zwei Zahlungen von $1000 am Ende von zwei aufeinanderfolgenden Jahren mit einer Diskontierungsrate von 10 % pro Zeitraum erhalten werden. Daher entspricht der effektive XNPV $1735,54.
Projekt-ID 2 hat einen anfänglichen ausgehenden Geldfluss von $1000 (daher das negative Vorzeichen) am 1. Juli 2020. Nach zwei Jahren wird eine Zahlung von $500 erwartet. Nach drei Jahren wird eine weitere Zahlung von $500 erwartet. Abschließend wird am 1. Juli 2024 eine Zahlung von $1000 erwartet. Mit einer Diskontierungsrate von 15 % entspricht der effektive XNPV $278,36.
Wenn Sie Probleme mit dieser Seite oder ihren Inhalten feststellen – einen Tippfehler, einen fehlenden Schritt oder einen technischen Fehler –, teilen Sie uns bitte mit, wie wir uns verbessern können!