# VAN Funzione script

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.

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 è:

![Formula per il calcolo del VAN.](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-npv-formula.png)

dove:

* `R``t`= 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.<br><br>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/DD/YYYY. 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 nelle applicazioni 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'Qlik Sense interfaccia utente. Qlik Sense verrà visualizzato nella stessa lingua del browser che stai utilizzando.

## Esempio 1 - Pagamento singolo (script)

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/FinancialAggregationFunctions/NPV.htm)

#### Script di caricamento e risultati

Panoramica

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

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

| ID progetto | NPV |
| --- | --- |
| 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)

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/FinancialAggregationFunctions/NPV.htm)

#### Script di caricamento e risultati

Panoramica

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

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

| ID progetto | NPV |
| --- | --- |
| 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)

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/FinancialAggregationFunctions/NPV.htm)

#### Script di caricamento e risultati

Panoramica

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

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

| ID progetto | NPV |
| --- | --- |
| 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)

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/FinancialAggregationFunctions/NPV.htm)

#### Script di caricamento e risultati

Panoramica

Aprire l'Editor caricamento dati e aggiungere lo script di caricamento sotto in una nuova sezione.

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

| ID progetto | NPV | =only(Indice\_di\_redditività) |
| --- | --- | --- |
| 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.

## Ulteriori informazioni

* [Drop table](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/drop-table.htm)

* [group by](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Load.htm#group_by)

* [Join](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/Join.htm)

* [Max Funzione script](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/AggregationFunctions/max.htm)

* [NoConcatenate](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptPrefixes/NoConcatenate.htm)

* [VAN - Funzione per grafici](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/FinancialAggregationFunctionsInCharts/npv.htm)

* [Only Funzione script](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/AggregationFunctions/only.htm)

* [Resident LOAD](https://help.qlik.com/it-IT/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/load-data-from-previously-loaded-table.htm#Resident)