XNPV() restituisce il valore attuale netto aggregato per una programmazione di flussi di cassa (non necessariamente periodici) rappresentati da coppie di numeri in pmt e date. Tutti i pagamenti sono scontati in base ad un anno composto da 365 giorni.
Sintassi:
XNPV(discount_rate, pmt,
date)
Tipo di dati restituiti: numerico
Nota informaticaPer impostazione predefinita, il risultato sarà formattato come valuta.
La formula per calcolare l'XNPV è mostrata di seguito:
dove:
Pi= Flussi di cassa netti in entrata e in uscita durante un singolo periodo i
d1= la data del primo pagamento
di = la data del io pagamento
rate = tasso di sconto
Il valore attuale netto, o VAN, viene utilizzato per calcolare il valore totale attuale di una serie futura di flussi di cassa tenendo in considerazione un tasso di sconto. Per calcolare l'XNPV, è necessario stimare flussi di cassa futuri con date corrispondenti. In seguito, per ogni pagamento, si applica il tasso di sconto composto in base alla data del pagamento.
Eseguire un'aggregazione XNPV su una serie di pagamenti è simile a eseguire un'aggregazione Sum sugli stessi pagamenti. La differenza è che ogni importo viene modificato (o "scontato") in base al tasso di sconto scelto (simile al tasso di interesse) e a quanto tempo nel futuro avviene il pagamento. Eseguire XNPV con il parametro discount_rate impostato su zero renderà XNPV equivalente a un'operazione Sum (i pagamenti non verranno modificati prima di essere sommati). In generale, più discount_rate si avvicina allo zero, più il risultato di XNPV assomiglierà a quello di un'aggregazione Sum.
Argomenti
Argomento
Descrizione
discount_rate
discount_rate è il tasso annuale in base al quale dovrebbero essere scontati i pagamenti.
Un valore di 0,1 indica un tasso di sconto del 10%.
pmt
Pagamenti. L'espressione o il campo contenente i flussi di cassa corrispondenti alla programmazione di pagamento fornita in date. I valori positivi sono considerati flussi in entrata, mentre quelli negativi sono considerati flussi in uscita.
Nota informaticaXNPV() non sconta il flusso di cassa iniziale, dato che avrà sempre luogo alla data di inizio. I pagamenti successivi sono scontati in base ad un anno composto da 365 giorni. È differente da NPV(), dove anche il primo pagamento viene scontato.
date
L'espressione o il campo contenente la programmazione di date corrispondente ai pagamenti con flusso di cassa forniti in pmt. Il primo valore viene utilizzato come data di inizio per il calcolo dei differimenti temporali per i flussi di cassa futuri.
Quando si lavora con questa funzione, si applicano le seguenti limitazioni:
Se una o entrambe le parti di una coppia di dati includono valori di testo, valori NULL e valori mancanti, l'intera coppia di dati verrà ignorata.
Casi di utilizzo
XNPV() è utilizzato nella modellistica finanziaria per calcolare il valore attuale netto (VAN) di un'opportunità di investimento.
Grazie alla sua maggiore precisione, l'XNPV è preferito al VAN per tutti i tipi di modelli finanziari.
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.
Le impostazioni regionali predefinite delle app si basano sulle impostazioni regionali del sistema del computer o del server in cui risulta installato Qlik Sense. Se il server Qlik Sense a cui si accede è impostato in Svezia, l'editor caricamento dati utilizzerà le impostazioni regionali svedesi per date, ora e valuta. Queste impostazioni di formato regionale non riguardano la lingua visualizzata nell'interfaccia utente Qlik Sense. Qlik Sense verrà visualizzato nella stessa lingua del browser utilizzato.
Esempio 1 - Pagamento singolo (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 un anno, in una tabella denominata CashFlow. La data iniziale per il calcolo è fissata al 1° luglio 2022, con un flusso di cassa netto pari a 0. Dopo un anno, si verifica un flusso di cassa di 1000 dollari.
Un caricamento residente dalla tabella CashFlow, utilizzato per calcolare il campo XNPV del progetto in una tabella denominata XNPV.
Nel calcolo del XNPV viene utilizzato un tasso di sconto fisso del 10% (0,1).
Un'istruzione Group By viene utilizzata per raggruppare tutti i pagamenti del progetto.
Script di caricamento
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;
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
PrjId
XNPV
Tabella dei risultati
PrjId
XNPV
1
$909.09
Secondo la formula, il valore XNPV per il primo record è 0, mentre per il secondo record il valore XNPV è di $909,09. Pertanto, il valore XNPV totale è $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 un anno, in una tabella denominata CashFlow.
Un caricamento residente dalla tabella CashFlow, utilizzato per calcolare il campo XNPV del progetto in una tabella denominata XNPV.
Nel calcolo del XNPV viene utilizzato un tasso di sconto fisso del 10% (0,1).
Un'istruzione Group By viene utilizzata per raggruppare tutti i pagamenti del progetto.
Script di caricamento
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;
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
PrjId
XNPV
Tabella dei risultati
PrjId
XNPV
1
$1322.21
In questo esempio, alla fine del primo anno si riceve un pagamento di $1000 dollari e alla fine del secondo anno se ne riceve uno di $500. Con un tasso di sconto del 10% per periodo, l'XNPV effettivo è pari a $1322,21.
Notare che solo la prima riga di dati deve fare riferimento alla data base per i calcoli. Per il resto delle righe, l'ordine non è importante, poiché il parametro della data viene utilizzato per calcolare il periodo trascorso.
Esempio 3 - Pagamenti multipli e flussi di cassa irregolari (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 in una tabella denominata Project.
Flussi di cassa per più periodi per ogni progetto per ID progetto e Date. Il campo Dates viene utilizzato per calcolare la durata per la quale il tasso di sconto viene applicato al flusso di cassa. A parte il primo record (flusso di cassa iniziale e data), l'ordine dei record non è importante e la sua modifica non dovrebbe influire sui calcoli.
Utilizzando una combinazione di NoConcatenate, caricamenti residenti e la funzione Left Join, viene creata una tabella temporanea, tmpNPV, che combina i record delle tabelle Project e CashFlow in una tabella piatta. In questa tabella i tassi di sconto saranno ripetuti per ogni flusso di cassa.
Un caricamento residente dalla tabella tmpNPV, utilizzato per calcolare il campo XNPV per ciascun progetto in una tabella denominata XNPV.
Il tasso di sconto a valore singolo associato a ciascun progetto viene recuperato tramite la funzione only() e utilizzato nel calcolo XNPV per ciascun progetto.
Un'istruzione Group By, raggruppata per ID progetto, viene utilizzata per raggruppare tutti i pagamenti e le date corrispondenti per ogni progetto.
Per evitare che vengano caricati dati sintetici o ridondanti nel modello di dati, la tabella tmpXNPV 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,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;
Risultati
Caricare i dati e aprire un foglio. Creare una nuova tabella e aggiungere tali campi come dimensioni:
PrjId
XNPV
Tabella dei risultati
PrjId
XNPV
1
$1735.54
2
$278.36
Il progetto ID 1 ha un flusso di cassa iniziale di 0 dollari il 1° luglio 2021. Sono previsti due pagamenti di 1.000 dollari da ricevere alla fine di due anni successivi, a un tasso di sconto del 10% per periodo. Pertanto, il valore XNPV effettivo è pari a $1735.54.
Il progetto ID 2 ha un'uscita iniziale di $1.000 (quindi il segno negativo) il 1° luglio 2020. Dopo due anni è previsto un pagamento di $500. Dopo 3 anni è previsto un altro pagamento di $500. Infine, il 1° luglio 2024 è previsto un pagamento di $1.000. Con un tasso di sconto del 15%, l'XNPV effettivo è pari a $278,36.
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!