# 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

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:

* [XNPV — funkcja skryptu](https://help.qlik.com/pl-PL/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/FinancialAggregationFunctions/XNPV.htm): 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](https://help.qlik.com/pl-PL/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/RangeFunctions/RangeXIRR.htm): RangeXIRR() jest równoważną funkcją zakresu dla funkcji XIRR().

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](https://community.qlik.com/t5/Member-Articles/XIRR-function-Fix-and-Update/ta-p/2049021).

## Przykład

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

#### Skrypt ładowania i wyniki

Przegląd

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.

Skrypt ładowania zawiera:

* Dane transakcyjne dla serii przepływów pieniężnych.

* Wykorzystanie funkcji XIRR() do obliczenia wewnętrznego rocznego współczynnika zwrotu dla tych przepływów pieniężnych.

Skrypt ładowania

```
Cashflow:
LOAD 2013 as Year, * inline [
Date|Payments
2013-01-01|-10000
2013-03-01|3000
2013-10-30|4200
2014-02-01|6800
] (delimiter is '|');
 
Cashflow1:
LOAD Year,XIRR(Payments, Date) as XIRR2013  Resident Cashflow Group By Year;
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

* `Year`

* `XIRR2013`

Tabela wynikowa

| Rok | XIRR2013 |
| --- | --- |
| 2013 | 0.5385 |

## 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.

## Dowiedz się więcej

* [XNPV — funkcja skryptu](https://help.qlik.com/pl-PL/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/FinancialAggregationFunctions/XNPV.htm)
* [RangeXIRR — funkcja skryptu i funkcja wykresu](https://help.qlik.com/pl-PL/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/RangeFunctions/RangeXIRR.htm)
* [Poprawka i aktualizacja funkcji XIRR](https://community.qlik.com/t5/Member-Articles/XIRR-function-Fix-and-Update/ta-p/2049021)