Die Skriptfunktion XNPV() zieht bestimmte Datumsangaben für jeden Cashflow heran, der zusätzlich zum Diskontsatz diskontiert wird. Sie unterscheidet sich von der Funktion NPV(), da NPV() annimmt, dass alle Zeiträume gleich sind. Aus diesem Grund ist XNPV() genauer als NPV().
Syntax:
XNPV(discount_rate, pmt,
date)
Rückgabe Datentyp: numerisch. Standardmäßig wird das Ergebnis als Währung formatiert.
Die Formel zum Berechnen von XNPV lautet:
Dabei gilt:
Pi= eingehende und ausgehende Nettogeldflüsse 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. Zur Berechnung des NPV müssen die zukünftigen Geldflüsse für jeden Zeitraum geschätzt und die korrekte Diskontierungsrate bestimmt werden.
XNPV() enthält eine Diskontierungsrate und mehrere Werte, sortiert nach Zeitraum. Eingehende Geldflüsse (Einnahmen) sind positive Werte, ausgehende Geldflüsse (zukünftige Zahlungen) sind negative Werte. Sie finden am Ende jedes Zeitraums statt.
Argumente
Argument
Beschreibung
discount_rate
discount_rate ist der Prozentsatz des angewendeten Rabatts.
Ein Wert von 0,1 gibt eine Diskontierungsrate von 10 % an.
value
Dieses Feld enthält Geldflusswerte. Der erste Wert wird als Geldfluss zu Beginn angenommen, und das entsprechende Datum wird als Referenz für die Berechnung des Barwerts für alle zukünftigen Geldflüsse verwendet.
InformationshinweisXNPV() diskontiert den anfänglichen Geldfluss nicht. Anschließende Zahlungen werden auf ein 365-Tage-Jahr hochgerechnet. Das ist anders als bei NPV(), wo jede Zahlung diskontiert wird.
date
Dieses Feld enthält das Datum, an dem der Geldfluss (value, der zweite Parameter) stattfand. Der erste Wert wird als Startdatum für die Berechnung des Versatzes für zukünftige Geldflüsse verwendet.
Beschränkungen:
Wenn Textwerte, NULL-Werte und fehlende Werte in einem oder beiden Teilen eines Datumpaars vorhanden sind, wird das Datenpaar ignoriert.
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!