# XIRR Função de script

XIRR() retorna a taxa interna de retorno agregada (anual) para um cronograma de fluxos de caixa (que não é necessariamente periódico) representado por números emparelhados em pmt e date iterados sobre um número de registros, conforme definido por uma cláusula group by. Todos os pagamentos têm descontos baseados em um ano de 365 dias.

Funcionalidade XIRR do Qlik (funções XIRR() e RangeXIRR()) usa a seguinte equação, resolvendo para o valor `Rate`, para determinar o valor XIRR correto:

`XNPV(Rate, pmt, date) = 0`

A equação é resolvida usando uma versão simplificada do método de Newton.

Sintaxe:

XIRR(pmt, date )

Tipo de dados de retorno: numérico

Argumentos

| Argumento | Descrição |
| --- | --- |
| pmt | Pagamentos. A expressão ou campo que contém os fluxos de caixa correspondentes ao cronograma de pagamentos dado no date. |
| date | A expressão ou campo que contém o cronograma de datas correspondentes aos pagamentos de fluxo de caixa dados em pmt. |

Ao trabalhar com essa função, as seguintes limitações são aplicáveis:

* Valores de texto, valores NULL e valores ausentes em qualquer uma das duas partes de um par de dados farão com que o par de dados inteiro seja ignorado.

* Essa função requer pelo menos um pagamento negativo válido e pelo menos um pagamento positivo válido (com datas válidas correspondentes). Se esses pagamentos não forem fornecidos, um valor NULL será retornado.

Estes tópicos podem ajudar você a trabalhar com essa função:

* [XNPV Função de script](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/FinancialAggregationFunctions/XNPV.htm): use essa função para calcular o valor presente líquido agregado para uma programação de fluxos de caixa.

* [RangeXIRR Função de script e de gráfico](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/RangeFunctions/RangeXIRR.htm): RangeXIRR() é a função de intervalo equivalente para a função XIRR().

Nota informativa

Para obter informações sobre atualizações recentes do algoritmo subjacente usado por essa função, consulte o artigo de suporte [Correção e atualização da função XIRR](https://community.qlik.com/t5/Member-Articles/XIRR-function-Fix-and-Update/ta-p/2049021).

## Exemplo

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

#### Script de carregamento e resultados

Visão geral

Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova seção.

O script de carregamento contém:

* Dados de transação para uma série de fluxos de caixa.

* O uso da função XIRR() para calcular a taxa de retorno anual interna para esses fluxos de caixa.

Script de carregamento

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

Resultados

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:

* `Year`

* `XIRR2013`

Tabela de resultados

| Ano | XIRR2013 |
| --- | --- |
| 2013 | 0,5385 |

## Interpretando o valor de retorno XIRR

A funcionalidade XIRR geralmente é usada para analisar um investimento, em que há um pagamento de saída (negativo) no início e, posteriormente, uma série de pagamentos de receita menores (positivos). Veja a seguir um exemplo simplificado com apenas um pagamento negativo e um positivo:

`Cashflow:` `LOAD * inline [` `Date|Payments` `2023-01-01|-100` `2024-01-01|110` `] (delimiter is '|');` ` `

Fazemos um pagamento inicial de 100 e recebemos 110 de volta depois de exatamente um ano. Isso representa uma taxa de retorno de 10% ao ano. `XIRR(Payments, Date)` retorna um valor de 0,1.

O valor de retorno da funcionalidade XIRR pode ser positivo ou negativo. No caso de um investimento, um resultado negativo indica que o investimento é uma perda. A quantidade de ganho ou perda pode ser calculada com uma simples agregação de soma no campo de pagamentos.

No exemplo acima, estamos emprestando nosso dinheiro por um ano. A taxa de retorno pode ser considerada como juros. Também é possível usar a funcionalidade XIRR quando você está do outro lado da transação (por exemplo, se for o mutuário em vez do credor).

Considere este exemplo:

`Cashflow:` `LOAD * inline [` `Date|Payments` `2023-01-01|100` `2024-01-01|-110` `] (delimiter is '|');` ` `

Isso é igual ao primeiro exemplo, mas invertido. Aqui, tomamos 100 emprestados por um ano e pagamos com juros de 10%. Neste exemplo, o cálculo de XIRR retorna 0,1 (10%), o mesmo valor do primeiro exemplo.

Observe que, no primeiro exemplo, recebemos um lucro de 10 e, no segundo, tivemos uma perda de 10, mas o valor de retorno da funcionalidade XIRR é positivo para ambos os exemplos. Isso ocorre porque a funcionalidade XIRR calcula os juros ocultos na transação, independentemente de qual lado você esteja na transação.

## Limitações com várias soluções

A funcionalidade XIRR do Qlik é definida pela seguinte equação, em que o valor `Rate` é resolvido:

`XNPV(Rate, pmt, date) = 0`

Às vezes, é possível que essa equação tenha mais de uma solução. Isso é conhecido como "problema de IRR múltipla" e é causado por um fluxo de caixa não normal (também chamado de fluxo de caixa não convencional). O script de carregamento a seguir mostra um exemplo disso:

`Cashflow:` `LOAD * inline [` `Date|Payments` `2021-01-01|-200` `2022-01-01|500` `2023-01-01|-250` `] (delimiter is '|');` ` `

Neste exemplo, há uma solução negativa e uma solução positiva (`Rate` = -0,3 e `Rate` = 0,8). XIRR() retornará 0,8.

Quando a funcionalidade XIRR do Qlik procura uma solução, ela começa em `Rate` = 0 e aumenta a taxa em etapas até encontrar uma solução. Se houver mais de uma solução positiva, ela retornará a primeira que encontrar. Se você não conseguir encontrar uma solução positiva, ele redefinirá `Rate` de volta para zero e começará a procurar uma solução na direção negativa.

Observe que é garantido que um fluxo de caixa "normal" tenha apenas uma solução. Fluxo de caixa "normal" significa que todos os pagamentos com o mesmo sinal (positivo ou negativo) estão em um grupo contínuo.

## Saiba mais

* [XNPV Função de script](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/FinancialAggregationFunctions/XNPV.htm)
* [RangeXIRR Função de script e de gráfico](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/RangeFunctions/RangeXIRR.htm)
* [Correção e atualização da função XIRR](https://community.qlik.com/t5/Member-Articles/XIRR-function-Fix-and-Update/ta-p/2049021)