XIRR - funzione per grafici
XIRR() restituisce il tasso di rendimento interno aggregato (annuale) per una programmazione di flussi di cassa (non necessariamente periodici) rappresentati da coppie di numeri nelle espressioni date da pmt e date ripetuti sulle dimensioni dei grafici. Tutti i pagamenti sono scontati in base ad un anno composto da 365 giorni.
La funzionalità XIRR di Qlik (funzioni XIRR() e RangeXIRR()) utilizza la seguente equazione, risolvendo il valore Rate, per determinare il valore XIRR corretto:
XNPV(Rate, pmt, date) = 0
l'equazione viene risolta usando una versione semplificata del metodo Newton.
Sintassi:
XIRR([TOTAL [<fld {,fld}>]] pmt, date)
Tipo di dati restituiti: numerico
Argomento | Descrizione |
---|---|
pmt |
Pagamenti. L'espressione o il campo contenente i flussi di cassa corrispondenti alla programmazione di pagamento fornita in date. |
date | L'espressione o il campo contenente la programmazione di date corrispondente ai pagamenti con flusso di cassa forniti in pmt. |
TOTAL |
Se la parola TOTAL viene riportata prima degli argomenti della funzione, il calcolo verrà effettuato su tutti i valori possibili dati dalle selezioni correnti e non solo su quelli relativi al valore dimensionale attuale, vale a dire che verranno ignorate le dimensioni del grafico. Utilizzando TOTAL [<fld {.fld}>], dove il qualificatore TOTAL è seguito da un elenco di uno o più nomi di campo come sottogruppo delle variabili di dimensione del grafico, si crea un sottogruppo di tutti i valori possibili. |
Quando si lavora con questa funzione, si applicano le seguenti limitazioni:
-
pmt e date non devono contenere funzioni di aggregazione, a meno che queste aggregazioni interne non contengano il qualificatore TOTAL. Nel caso di aggregazioni nidificate più complesse, utilizzare la funzione avanzata Aggr in combinazione con una dimensione specificata.
-
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.
-
Questa funzione richiede almeno un pagamento negativo valido e un pagamento positivo valido (con date corrispondenti valide). Se questi pagamenti non vengono forniti, sarà restituito un valore NULL.
I seguenti argomenti possono risultare utili per lavorare con questa funzione:
-
XNPV - funzione per grafici: Usare questa funzione per calcolare il valore attuale netto aggregato per una programmazione di flussi di cassa.
-
RangeXIRR - funzione dello script e del grafico: RangeXIRR() è la funzione di scala equivalente per la funzione XIRR().
Nelle diverse versioni di Qlik Sense Client-Managed, sono presenti delle variazioni nell'algoritmo sottostante usato da questa funzione. Per maggiori informazioni sugli aggiornamenti recenti dell'algoritmo, vedere l'articolo del supporto Correzione e aggiornamento della funzione XIRR.
Esempio
Interpretazione del valore restituito di XIRR
La funzione XIRR viene solitamente usata per analizzare un investimento, che presenta un pagamento (negativo) in uscita all'inizio e successivamente una serie di pagamenti (positivi) in entrata più piccoli. Di seguito è riportato un esempio semplificato con un pagamento negativo e un pagamento positivo:
Cashflow:
LOAD * inline [
Date|Payments
2023-01-01|-100
2024-01-01|110
] (delimiter is '|');
Effettuiamo un pagamento iniziale pari a 100 e riceviamo 110 dopo un anno esatto. Ciò rappresenta un tasso di rendimento del 10% all'anno. XIRR(Payments, Date) restituisce un valore pari a 0,1.
Il valore restituito della funzione XIRR può essere positivo o negativo. Nel caso di un investimento, un risultato negativo indica che l'investimento è una perdita. L'importo del guadagno o della perdita può essere calcolato semplicemente tramite un'aggregazione Sum sul campo dei pagamenti.
Nell'esempio precedente, prestiamo denaro per un anno. Il tasso di rendimento può essere considerato come l'interesse. È inoltre possibile usare la funzione XIRR quando si è dall'altro lato della transazione (ad esempio, quando si è il debitore invece del prestatore).
Si consideri questo esempio:
Cashflow:
LOAD * inline [
Date|Payments
2023-01-01|100
2024-01-01|-110
] (delimiter is '|');
È uguale al primo esempio, ma invertito. Ora prendiamo in prestito 100 per un anno e ripaghiamo il prestito con un interesse del 10%. In questo esempio, il calcolo XIRR restituisce 0,1 (10%), lo stesso valore del primo esempio.
Si noti che, nel primo esempio, abbiamo ricevuto un profitto di 10 e, nel secondo esempio, abbiamo subito una perdita di 10, ma il valore restituito della funzione XIRR è positivo in entrambi i casi. Ciò è dovuto al fatto che la funzione XIRR calcola l'interesse nascosto nella transazione, a prescindere dal ruolo che si riveste in essa.
Limitazioni con più soluzioni
La funzione XIRR di Qlik è definita dalla seguente equazione, nella quale il valore Rate è risolto:
XNPV(Rate, pmt, date) = 0
A volte è possibile che questa equazione abbia più di una soluzione. Questo fenomeno è noto come "problema dell'IRR multiplo" ed è causato da una serie di flussi di cassa non normali (detti anche flussi di cassa non convenzionali). Il seguente script di caricamento mostra un esempio di tutto ciò:
Cashflow:
LOAD * inline [
Date|Payments
2021-01-01|-200
2022-01-01|500
2023-01-01|-250
] (delimiter is '|');
In questo esempio vi sono una soluzione negativa e una soluzione positiva (Rate = -0,3 e Rate = 0,8). XIRR() restituirà 0,8.
Quando la funzione XIRR di Qlik cerca una soluzione, inizia da Rate = 0 e aumenta gradualmente il tasso finché non trova una soluzione. Se esiste più di una soluzione positiva, restituirà la prima che trova. Se non riesce a trovare una soluzione positiva, azzererà Rate e inizierà a cercare una soluzione nella direzione negativa.
Si noti che una serie di flussi di cassa "normali" avrà sempre un'unica soluzione. Una serie di flussi di cassa "normali" implica che tutti i pagamenti con lo stesso segno (positivo o negativo) sono in un gruppo continuo.