La fonction de script XNPV() prend des dates spécifiques correspondant à chaque flux de trésorerie faisant l'objet d'une remise en dehors du taux de remise. Elle est différente de la fonction NPV(), car la fonction NPV() suppose que toutes les périodes sont égales. C'est pourquoi la fonction XNPV() est plus précise que la fonction NPV().
XNPV(discount_rate, pmt,
date)
numérique Par défaut, le résultat sera formaté sous forme de devise.
La formule pour calculer XNPV est la suivante :
où :
Pi= entrées/sorties de flux de trésorerie nettes au cours d'une seule période i
d1= première date de paiement
di = ie date de paiement
rate = taux de remise
La valeur Net Present Value, or NPV, est utilisée pour calculer la valeur totale actuelle de flux de trésorerie futurs. Pour calculer la valeur NPV, nous devons estimer les flux de trésorerie futurs pour chaque période et déterminer le taux de remise correct.
XNPV() prend une taux de remise et plusieurs valeurs triées par période. Les entrées (revenus) sont positives et les sorties (paiements futurs) sont supposées être des valeurs négatives. Ces derniers se produisent à la fin de chaque période.
Arguments
Argument
Description
discount_rate
discount_rate est le taux de pourcentage de remise appliqué.
Une valeur égale à 0.1 indique un taux de remise de 10 %.
value
Ce champ contient les valeurs de flux de trésorerie. La première valeur est supposée être le flux de trésorerie de départ, et la date correspondante est utilisée comme référence pour calculer la valeur présente pour tous les flux de trésorerie futurs.
Note InformationsXNPV() n'applique pas de remise au flux de trésorerie initial. Les paiements ultérieurs font l'objet d'une remise en fonction d'une année de 365 jours. Cela est différent de NPV(), où chaque paiement fait l'objet d'une remise.
date
Ce champ contient la date du flux de trésorerie (value, le deuxième paramètre). La première valeur est utilisée comme date de début pour calculer les décalages des flux de trésorerie futurs.
En présence de valeurs de texte et de valeurs NULL et en l'absence de valeurs pour une part et/ou l'autre part d'une paire de données, la paire de données toute entière sera ignorée.
Cas d'utilisation
La valeur XNPV() est utilisée dans la modélisation financière pour calculer la valeur Net Present Value (NPV - Valeur actuelle nette) d'une opportunité d'investissement.
En raison de sa plus grande précision, la valeur XNPV est préférée à la valeur NPV pour tous les types de modèles financiers.
Paramètres régionaux
Sauf indication contraire, les exemples de cette rubrique utilisent le format de date suivant : MM/JJ/AAAA. Le format de date est indiqué dans l'instruction SET DateFormat de votre script de chargement de données. Le format de date par défaut peut être différent dans votre système en raison de vos paramètres régionaux et d'autres facteurs. Vous pouvez modifier les formats utilisés dans les exemples ci-dessous en fonction de vos besoins. Ou vous pouvez modifier les formats utilisés dans votre script de chargement pour qu'ils correspondent à ceux de ces exemples.
Les paramètres régionaux par défaut des applications sont basés sur les paramètres système régionaux de l'ordinateur ou du serveur sur lequel Qlik Sense est installé. Si le serveur Qlik Sense auquel vous accédez est configuré sur la Suède, l'éditeur de chargement de données utilisera les paramètres régionaux suédois pour les dates, l'heure et la devise. Ces paramètres de format régionaux ne sont pas liés à la langue affichée dans l'interface utilisateur Qlik Sense. Qlik Sense sera affiché dans la même langue que celle du navigateur que vous utilisez.
Exemple 1 – un seul paiement (script)
Vue d'ensemble
Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à un nouvel onglet.
Le script de chargement contient :
Ensemble de données d'un projet et son flux de trésorerie pour un an, dans une table appelée CashFlow. La date initiale du calcul est définie sur le 1er juillet 2022, avec un flux de trésorerie net égal à 0. Au bout d'un an, on a un flux de trésorerie de 1 000 $.
Chargement résident de la table CashFlow, utilisé pour calculer le champ XNPV du projet dans une table appelée XNPV.
Taux de remise codé en dur de 10 % (0,1), utilisé dans le calcul XNPV.
Une instruction Group By est utilisée pour regrouper l'ensemble des paiements du projet.
Script de chargement
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;
Résultats
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
PrjId
XNPV
Tableau de résultats
PrjId
XNPV
1
$909.09
Conformément à la formule, la valeur XNPV du premier enregistrement est 0, et, pour le deuxième enregistrement, la valeur XNPV est de 909,09 $. Ainsi, la valeur XNPV totale est de 909,09 $.
Exemple 2 – plusieurs paiements (script)
Vue d'ensemble
Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à un nouvel onglet.
Le script de chargement contient :
Ensemble de données d'un projet et son flux de trésorerie pour un an, dans une table appelée CashFlow.
Chargement résident de la table CashFlow, utilisé pour calculer le champ XNPV du projet dans une table appelée XNPV.
Taux de remise codé en dur de 10 % (0,1), utilisé dans le calcul XNPV.
Une instruction Group By est utilisée pour regrouper l'ensemble des paiements du projet.
Script de chargement
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;
Résultats
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
PrjId
XNPV
Tableau de résultats
PrjId
XNPV
1
$1322.21
Dans cet exemple, un paiement de 1 000 $ est reçu à la fin de la première année et un paiement de 500 $ à la fin de la deuxième année. Avec un taux de remise de 10 % par période, la valeur XNPV effective est égale à 1 322,21 $.
Notez que seule la première ligne de données doit faire référence à la date de base pour les calculs. Pour le reste des lignes, l'ordre n'a pas d'importance, car le paramètre date est utilisé pour calculer la période écoulée.
Exemple 3 – plusieurs paiements et flux de trésorerie irréguliers (script)
Vue d'ensemble
Ouvrez l'éditeur de chargement de données et ajoutez le script de chargement ci-dessous à un nouvel onglet.
Le script de chargement contient :
Taux de remise pour deux projets dans une table appelée Project.
Flux de trésorerie pour plusieurs périodes pour chaque projet par ID de projet et dates. Le champ Dates est utilisé pour calculer la durée pendant laquelle le taux de remise est appliqué au flux de trésorerie. À l'exception du premier enregistrement (flux de trésorerie initial et date initiale), l'ordre des enregistrements n'a pas d'importance et sa modification ne devrait pas avoir d'impact sur les calculs.
Via une combinaison de NoConcatenate, de chargements résidents et de la fonction Left Join, une table temporaire, tmpNPV, est créée, combinant les enregistrements des tables Project et CashFlow en une seule table uniforme. Les taux de remise de cette table sont répétés pour chaque flux de trésorerie.
Chargement résident de la table tmpNPV, utilisé pour calculer le champ XNPV de chaque projet dans une table appelée XNPV.
Le taux de remise de valeur unique associé à chaque projet est récupéré via la fonction only() et utilisé dans le calcul XNPV pour chaque projet.
Une instruction Group By, effectuant un regroupement par ID de projet, est utilisée pour regrouper tous les paiements et dates correspondantes pour chaque projet.
Pour éviter le chargement de toute donnée synthétique ou redondante dans le modèle de données, la table tmpXNPV est abandonnée à la fin du script.
Script de chargement
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;
Résultats
Chargez les données et ouvrez une feuille. Créez une table et ajoutez ces champs comme dimensions :
PrjId
XNPV
Tableau de résultats
PrjId
XNPV
1
$1735.54
2
$278.36
L'ID de projet 1 a un flux de trésorerie initial de 0 $ le 1er juillet 2021. Deux paiements de 1 000 $ doivent être reçus à la fin de deux années consécutives, à un taux de remise de 10 % par période. Par conséquent, la valeur XNPV effective est égale à 1 735,54 $.
L'ID de projet 2 a un flux sortant initial de 1 000 $ (d'où le signe négatif) le 1er juillet 2020. Au bout de deux ans, un paiement de 500 $ est prévu. Au bout de trois ans, un autre paiement de 500 $ est prévu. Pour finir, le 1er juillet 2024, un paiement de 1 000 $ est prévu. Avec le taux de remise de 15 %, la valeur XNPV effective est égale à 278,36 $.
Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – dites-nous comment nous améliorer !