XIRR
Funkcja XIRR() zwraca zagregowaną wewnętrzną stopę zwrotu dotyczącą harmonogramu przepływów pieniężnych (niekoniecznie okresowych) reprezentowanych przez liczby sparowane zwracane przez wyrażenia podane jako pmt i date, iterowane po wymiarach wykresu. Wszystkie płatności są obejmowane upustem na podstawie roku zawierającego 365 dni.
Funkcjonalność Qlik dotycząca XIRR (funkcje XIRR() i RangeXIRR()) stosuje następujące równanie w celu uzyskania wartości Rate i ustalenia prawidłowej wartości XIRR:
XNPV(Rate, pmt, date) = 0
Równanie rozwiązuje się przy użyciu uproszczonej wersji metody Newtona.
Składnia:
XIRR([TOTAL [<fld {,fld}>]] pmt, date)
Typ zwracanych danych: liczbowy
Argumenty:
- pmt: Płatności. Wyrażenie lub pole zawierające płatności w ramach przepływów pieniężnych odpowiadające harmonogramowi płatności podanemu argumentem date.
- date: Wyrażenie lub pole zawierające harmonogram dat odpowiadających płatnościom w ramach przepływów pieniężnych podanym argumentem pmt.
- TOTAL: Jeśli słowo TOTAL występuje przed argumentami funkcji, wówczas obliczenie jest wykonywane względem wszystkich możliwych wartości z uwzględnieniem bieżących selekcji, nie tylko tych należących do bieżącej wartości wymiaru, to znaczy z pominięciem wymiarów wykresu. Po kwalifikatorze TOTAL może następować lista zawierająca co najmniej jedną nazwę pola w nawiasach trójkątnych <fld>. Te nazwy pól powinny być podzbiorem zmiennych wymiaru wykresu.
Ograniczenia:
Argumenty pmt i date nie mogą zawierać funkcji agregacji, chyba że takie wewnętrzne funkcje agregacji zawierają kwalifikator TOTAL. Do bardziej zaawansowanych agregacji należy używać zaawansowanej funkcji Aggr w połączeniu z określonym wymiarem.
Wartości tekstowe, wartości NULL i wartości brakujące w dowolnej części pary danych powodują pominięcie całej pary danych.
Przykłady i wyniki:
XIRR(Payments, Date): 0.5385.
Dane zastosowane w przykładach:
Cashflow:
LOAD 2013 as Year, * inline [
Date|Discount|Payments
2013-01-01|0.1|-10000
2013-03-01|0.1|3000
2013-10-30|0.1|4200
2014-02-01|0.2|6800
] (delimiter is '|');