Przeskocz do zawartości głównej Przejdź do treści uzupełniającej

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

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

Informacja

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.

Czy ta strona była pomocna?

Jeżeli natkniesz się na problemy z tą stroną lub jej zawartością — literówkę, brakujący krok lub błąd techniczny — daj nam znać, co możemy poprawić!