XIRR — funkcja skryptu
Funkcja XIRR() zwraca zagregowany wewnętrzny współczynnik zwrotu (roczny) dotyczący harmonogramu przepływów pieniężnych (niekoniecznie okresowych) reprezentowanych przez liczby zestawione w pary w wyrażeniach pmt i date iterowanych względem wielu rekordów określonych przez klauzulę group by. 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(pmt, date )
Typ zwracanych danych: liczbowy
Argument | Opis |
---|---|
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. |
Podczas pracy z tą funkcją obowiązują następujące ograniczenia:
-
Wartości tekstowe, wartości NULL i wartości brakujące w dowolnej albo obydwu częściach pary danych spowodują pominięcie całej pary danych.
-
Ta funkcja wymaga co najmniej jednej ważnej płatności ujemnej i co najmniej jednej ważnej płatności dodatniej (z odpowiednimi prawidłowymi datami). Jeśli te płatności nie zostaną podane, zwracana jest wartość NULL.
W pracy z tą funkcją mogą Ci pomóc poniższe tematy:
-
XNPV — funkcja skryptu: ta funkcja służy do obliczania zagregowanej bieżącej wartości netto dla harmonogramu przepływów pieniężnych.
-
RangeXIRR — funkcja skryptu i funkcja wykresu: RangeXIRR() jest równoważną funkcją zakresu dla funkcji XIRR().
W poszczególnych wersjach Qlik Sense zarządzany przez klienta występują różnice pod względem bazowego algorytmu wykorzystywanego przez tę funkcję. Aby uzyskać informacje o ostatnich aktualizacjach algorytmu, zobacz artykuł pomocy technicznej Poprawka i aktualizacja funkcji XIRR.
Przykład
Interpretacja wartości zwracanej przez XIRR
Funkcjonalność XIRR jest zwykle wykorzystywana do analizy inwestycji, gdzie na początku jest płatność wychodząca (ujemna), a później seria mniejszych płatności przychodzących (dodatnich). Oto uproszczony przykład z tylko jedną płatnością ujemną i jedną płatnością dodatnią:
Cashflow:
LOAD * inline [
Date|Payments
2023-01-01|-100
2024-01-01|110
] (delimiter is '|');
Dokonujemy pierwszej wpłaty w wysokości 100 i dokładnie po roku otrzymujemy z powrotem 110. Oznacza to wskaźnik zwrotu w wysokości 10% rocznie. XIRR(Payments, Date) zwraca wartość 0,1.
Wartość zwracana przez funkcję XIRR może być dodatnia lub ujemna. W przypadku inwestycji wynik ujemny oznacza, że inwestycja przynosi straty. Kwotę zysku lub straty można łatwo obliczyć, agregując sumy w polu płatności.
W powyższym przykładzie pożyczamy swoje pieniądze na rok. Wskaźnik zwrotu może być traktowany jako odsetki. Z funkcjonalności XIRR można też korzystać, będąc po drugiej stronie transakcji (na przykład, jeśli jest się pożyczkobiorcą zamiast pożyczkodawcą).
Rozważmy ten przykład:
Cashflow:
LOAD * inline [
Date|Payments
2023-01-01|100
2024-01-01|-110
] (delimiter is '|');
Jest taki sam jak pierwszy przykład, ale odwrócony. Tutaj pożyczamy 100 na rok i spłacamy to z odsetkami 10%. W tym przykładzie obliczenie XIRR zwraca 0,1 (10%), czyli taką samą wartość jak w pierwszym przykładzie.
Zauważmy, że w pierwszym przykładzie otrzymaliśmy zysk 10, a w drugim straciliśmy 10, ale wartość zwracana przez funkcjonalność XIRR jest dodatnia w obu tych przykładach. Jest tak dlatego, że funkcja XIRR oblicza ukryte oprocentowanie, niezależnie od tego, po której stronie jesteś w transakcji.
Ograniczenia związane z wieloma rozwiązaniami
Funkcjonalność XIRR Qlik jest określona przez następujące równanie, w którym rozwiązywana jest wartość Rate:
XNPV(Rate, pmt, date) = 0
Czasami równanie to może mieć więcej niż jedno rozwiązanie. Nazywa się to „problemem wielu wskaźników zwrotu” i jest spowodowane nietypowym strumieniem przepływów pieniężnych (zwanym także niekonwencjonalnym przepływem pieniężnym). Poniższy skrypt ładowania pokazuje tego przykład:
Cashflow:
LOAD * inline [
Date|Payments
2021-01-01|-200
2022-01-01|500
2023-01-01|-250
] (delimiter is '|');
W tym przykładzie jest jedno rozwiązanie ujemne i jedno rozwiązanie dodatnie (Rate= –0,3 i Rate= 0,8). XIRR() zwróci 0,8.
Kiedy funkcja XIRR Qlik szuka rozwiązania, zaczyna od Rate = 0 i stopniowo zwiększa wskaźnik, aż znajdzie rozwiązanie. Jeśli istnieje więcej niż jedno dodatnie rozwiązanie, zwróci pierwsze, na które napotka. Jeśli nie uda jej się znaleźć dodatniego rozwiązania, wyzeruje z powrotem Rate i zacznie szukać rozwiązania w kierunku ujemnym.
Należy zauważyć, że „normalny” strumień przepływów pieniężnych ma tylko jedno rozwiązanie. „Normalny” strumień przepływów pieniężnych oznacza, że wszystkie płatności z tym samym znakiem (dodatnim lub ujemnym) znajdują się w ciągłej grupie.