# XIRR — funkcja wykresu

Funkcja XIRR() zwraca zagregowany wewnętrzny współczynnik zwrotu (roczny) dotyczący harmonogramu przepływów pieniężnych (niekoniecznie okresowych) reprezentowanych przez połączone w pary liczby 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 [&lt;fld {,fld}&gt;]] 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. |
| 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.<br><br>Korzystając z polecenia TOTAL [&lt;fld {.fld}&gt;], gdzie po kwalifikatorze TOTAL podana jest lista nazw pól stanowiących podzbiór zmiennych wymiarów wykresu, można utworzyć podzbiór wszystkich możliwych wartości.<br><br>[Określenie zakresu agregacji](https://help.qlik.com/pl-PL/sense/May2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

Podczas pracy z tą funkcją obowiązują następujące ograniczenia:

* Argumenty pmt i date nie mogą zawierać funkcji agregacji, chyba że takie wewnętrzne funkcje agregacji zawierają kwalifikator TOTAL. W przypadku bardziej zaawansowanych agregacji zagnieżdżonych należy stosować zaawansowaną funkcję w Aggrpołą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.

* 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 wykresu](https://help.qlik.com/pl-PL/sense/May2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/FinancialAggregationFunctionsInCharts/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/May2025/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/ChartFunctions/FinancialAggregationFunctionsInCharts/xirr.htm)

#### Skrypt ładowania i wyrażenie wykresu

Przegląd

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

Skrypt ładowania zawiera:

* Zestaw danych zawierający transakcje przepływów pieniężnych.

* Informacje przechowywane w tabeli o nazwie `Cashflow`.

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 '|');
```

Wyniki

Wykonaj następujące czynności:

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj następujące obliczenie jako miarę:

`=XIRR(Payments, Date)`

Tabela wynikowa

| =XIRR(Payments, Date) |
| --- |
| 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

* [IRR — funkcja wykresu](https://help.qlik.com/pl-PL/sense/May2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/FinancialAggregationFunctionsInCharts/irr.htm)
* [Aggr — funkcja wykresu](https://help.qlik.com/pl-PL/sense/May2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/aggr.htm)
* [Poprawka i aktualizacja funkcji XIRR](https://community.qlik.com/t5/Member-Articles/XIRR-function-Fix-and-Update/ta-p/2049021)