La funzione script NPV() prende un tasso di sconto e più valori ordinati per periodo. I flussi in entrata (redditi) sono positivi e i flussi in uscita (pagamenti futuri) sono considerati valori negativi per questi calcoli. Si verificano alla fine di ogni periodo.
Il Valore Attuale Netto, o VAN, viene utilizzato per calcolare il valore totale attuale di un flusso di cassa futuro. Per calcolare il VAN, dobbiamo stimare i flussi di cassa futuri per ogni periodo e determinare il tasso di sconto corretto. La funzione script NPV applica un tasso di sconto e più valori ordinati in base al periodo. I flussi in entrata (redditi) sono positivi e i flussi in uscita (pagamenti futuri) sono considerati valori negativi per questi calcoli. Si verificano alla fine di ogni periodo.
Sintassi:
NPV(discount_rate, value)
Tipo di dati restituiti: numerico. Per impostazione predefinita, il risultato sarà formattato come valuta.
La formula per calcolare il valore attuale netto è:
dove:
Rt= Flussi di cassa netti in entrata e in uscita durante un singolo periodo t
i = Tasso di sconto o rendimento che si potrebbe ottenere con investimenti alternativi
t = Numero di periodi del timer
Argomenti
Argomento
Descrizione
discount_rate
discount_rate è il tasso percentuale di sconto applicato.
Un valore di 0,1 indica un tasso di sconto del 10%.
value
Questo campo contiene i valori di più periodi ordinati in base al periodo. Il primo valore viene assunto come flusso di cassa alla fine del periodo 1, e così via.
Limiti:
La funzione NPV() presenta le seguenti limitazioni:
I valori di testo, i valori NULL e i valori mancanti vengono ignorati.
I valori del flusso di cassa devono essere in ordine di periodo crescente.
Casi di utilizzo
NPV() è una funzione finanziaria utilizzata per verificare la redditività del progetto e per ricavare altre misure. Questa funzione è utile quando i flussi di cassa sono disponibili come dati non elaborati.
Impostazioni locali
Se non diversamente specificato, gli esempi di questo argomento utilizzano il seguente formato di data: MM/GG/AAAA. Il formato della data viene specificato nell'istruzione SET DateFormat nello script di caricamento dei dati. La formattazione predefinita della data potrebbe essere diversa nel proprio sistema, a causa delle impostazioni regionali e di altri fattori. È possibile modificare i formati degli esempi seguenti in base alle proprie esigenze. In alternativa, è possibile modificare i formati nel proprio script di caricamento per adattarli a questi esempi. Per ulteriori informazioni, vedere Modifica delle impostazioni internazionali per la creazione di app e script.
Le impostazioni regionali predefinite nelle app si basano sul profilo utente. Queste impostazioni di formato regionale non riguardano la lingua visualizzata nell'interfaccia utente Qlik Cloud. Qlik Cloud verrà visualizzato nella stessa lingua del browser utilizzato.
Aprire l'editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.
Lo script di caricamento contiene:
Un set di dati di un progetto e del suo flusso di cassa per un periodo, che viene caricato in una tabella denominata CashFlow.
Un caricamento residente dalla tabella CashFlow, utilizzato per calcolare il campo NPV del progetto in una tabella denominata NPV.
Un tasso di sconto fisso del 10%, utilizzato per il calcolo del VAN.
Un'istruzione Group By, utilizzata per raggruppare tutti i pagamenti del progetto.
Script di caricamento
CashFlow:
Load
*
Inline
[
PrjId,PeriodId,Values
1,1,1000
];
NPV:
Load
PrjId,
NPV(0.1,Values) as NPV //Discount Rate of 10%
Resident CashFlow
Group By PrjId;
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
PrjId
NPV
Tabella dei risultati
PrjId
VAN
1
$909.09
Per un singolo pagamento di $1000 da ricevere alla fine di un periodo, con un tasso di sconto del 10% per periodo, il VAN è pari a $1000 diviso per (1 + tasso di sconto). Il VAN effettivo è pari a $909,09.
Esempio 2 - Pagamenti multipli (script)
Panoramica
Aprire l'editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.
Lo script di caricamento contiene:
Un set di dati di un progetto e del suo flusso di cassa per più periodi, che viene caricato in una tabella denominata CashFlow.
Un caricamento residente dalla tabella CashFlow, utilizzato per calcolare il campo VAN del progetto in una tabella denominata NPV.
Nel calcolo del VAN viene utilizzato un tasso di sconto fisso del 10% (0,1).
Un'istruzione Group By, utilizzata per raggruppare tutti i pagamenti del progetto.
Script di caricamento
CashFlow:
Load
*
Inline
[
PrjId,PeriodId,Values
1,1,1000
1,2,1000
];
NPV:
Load
PrjId,
NPV(0.1,Values) as NPV //Discount Rate of 10%
Resident CashFlow
Group By PrjId;
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
PrjId
NPV
Tabella dei risultati
PrjId
VAN
1
$1735.54
Per pagamenti di $1000 dollari da ricevere alla fine di due periodi, con un tasso di sconto del 10% per periodo, il VAN effettivo è pari a $1735,54.
Esempio 3 - Pagamenti multipli (script)
Panoramica
Aprire l'editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.
Lo script di caricamento contiene:
Tassi di sconto per due progetti, che vengono caricati in una tabella denominata Project.
Flussi di cassa per più periodi per ogni progetto per ID progetto e ID periodo. Questo ID periodo può essere utilizzato per ordinare i record nel caso in cui i dati non siano ordinati.
La combinazione di NoConcatenate, caricamenti residenti e la funzione Left Join per creare una tabella temporanea, tmpNPV. La tabella combina i record di Project e delle tabelle CashFlow in una tabella piatta. In questa tabella i tassi di sconto saranno ripetuti per ogni periodo.
Un caricamento residente dalla tabella tmpNPV, utilizzato per calcolare il campo VAN per ciascun progetto in una tabella denominata NPV.
Il tasso di sconto a valore singolo associato a ciascun progetto. Questo dato viene recuperato con la funzione only() e viene utilizzato nel calcolo del VAN per ogni progetto.
Un'istruzione Group By, utilizzata per raggruppare tutti i pagamenti per ciascun progetto in base all'ID progetto.
Per evitare che vengano caricati dati sintetici o ridondanti nel modello di dati, la tabella tmpNPV viene eliminata alla fine dello script.
Script di caricamento
Project:
Load * inline [
PrjId,Discount_Rate
1,0.1
2,0.15
];
CashFlow:
Load
*
Inline
[
PrjId,PeriodId,Values
1,1,1000
1,2,1000
1,3,1000
2,1,500
2,2,500
2,3,1000
2,4,1000
];
tmpNPV:
NoConcatenate Load *
Resident Project;
Left Join
Load *
Resident CashFlow;
NPV:
Load
PrjId,
NPV(Only(Discount_Rate),Values) as NPV //Discount Rate will be 10% for Project 1 and 15% for Project 2
Resident tmpNPV
Group By PrjId;
Drop table tmpNPV;
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
PrjId
NPV
Tabella dei risultati
PrjId
VAN
1
$2486.85
2
$2042.12
L'ID progetto 1 prevede di ricevere pagamenti di $1000 alla fine di tre periodi, con un tasso di sconto del 10% per periodo. Pertanto, il VAN effettivo è pari a 2486,85 dollari.
L'ID progetto 2 prevede due pagamenti di $500 e altri due pagamenti di $1000 in quattro periodi con un tasso di sconto del 15%. Pertanto, il VAN effettivo è pari a $2042.12.
Esempio 4 - Esempio di redditività del progetto (script)
Panoramica
Aprire l'editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova scheda.
Lo script di caricamento contiene:
Tassi di sconto e investimenti iniziali (periodo 0) per due progetti, caricati in una tabella denominata Project.
Flussi di cassa per più periodi per ogni progetto per ID progetto e ID periodo. Questo ID periodo può essere utilizzato per ordinare i record nel caso in cui i dati non siano ordinati.
La combinazione di NoConcatenate, caricamenti residenti e la funzione Left Join per creare una tabella temporanea, tmpNPV. La tabella combina i record di Project e delle tabelle CashFlow in una tabella piatta. In questa tabella i tassi di sconto saranno ripetuti per ogni periodo.
Il tasso di sconto a valore singolo associato a ciascun progetto, che viene recuperato con la funzione only() e utilizzato nel calcolo del VAN per ciascun progetto.
Un caricamento residente dalla tabella tmpNPV viene utilizzato per calcolare il campo VAN per ciascun progetto in una tabella denominata NPV.
Per calcolare l'indice di redditività del progetto viene creato un campo aggiuntivo che divide il VAN per l'investimento iniziale di ogni progetto.
Una dichiarazione di raggruppamento per ID progetto viene utilizzata per raggruppare tutti i pagamenti per ogni progetto.
Per evitare che vengano caricati dati sintetici o ridondanti nel modello di dati, la tabella tmpNPV viene eliminata alla fine dello script.
Script di caricamento
Project:
Load * inline [
PrjId,Discount_Rate, Initial_Investment
1,0.1,100000
2,0.15,100000
];
CashFlow:
Load
*
Inline
[
PrjId,PeriodId,Values,
1,1,35000
1,2,35000
1,3,35000
2,1,30000
2,2,40000
2,3,50000
2,4,60000
];
tmpNPV:
NoConcatenate Load *
Resident Project;
Left Join
Load *
Resident CashFlow;
NPV:
Load
PrjId,
NPV(Only(Discount_Rate),Values) as NPV, //Discount Rate will be 10% for Project 1 and 15% for Project 2
NPV(Only(Discount_Rate),Values)/ Only(Initial_Investment) as Profitability_Index
Resident tmpNPV
Group By PrjId;
Drop table tmpNPV;
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
PrjId
NPV
Creare la seguente misura:
=only(Profitability_Index)
Tabella dei risultati
PrjId
VAN
=only(Profitability_Index)
1
$87039.82
0.87
2
$123513.71
1.24
Il progetto ID 1 ha un VAN effettivo di $87039,82 e un investimento iniziale di $100.000. Pertanto, l'indice di redditività è pari a 0,87. Poiché è inferiore a 1, il progetto non è redditizio.
Il progetto ID 2 ha un VAN effettivo di $123513,71 e un investimento iniziale di $100.000. Pertanto, l'indice di redditività è pari a 1.24. Poiché è superiore a 1, il progetto è redditizio.
Se riscontri problemi con questa pagina o con il suo contenuto – un errore di battitura, un passaggio mancante o un errore tecnico – facci sapere come possiamo migliorare!