# XIRR - função de gráfico

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 nas expressões especificadas por pmt e date iterados sobre as dimensões do gráfico. 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([TOTAL [&lt;fld {,fld}&gt;]] 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. |
| TOTAL | Se a palavra TOTAL ocorrer antes dos argumentos da função, o cálculo será feito sobre todos os valores possíveis, dadas as seleções atuais, e não apenas sobre os pertinentes ao valor dimensional atual, isto é, desconsiderando as dimensões do gráfico.<br><br>Usando TOTAL [&lt;fld {.fld}&gt;], em que o qualificador TOTAL é seguido por uma lista de um ou mais nomes de campo como um subconjunto das variáveis de dimensão de gráfico, você cria um subconjunto dos valores possíveis totais.<br><br>[Definindo o escopo de agregação](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

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

* pmt e date não devem conter funções de agregação, a não ser que essas agregações internas contenham o qualificador TOTAL. Para agregações aninhadas mais avançadas, use a função avançada Aggr junto com uma dimensão especificada.

* Valores de texto, valores NULLe valores ausentes em qualquer uma das duas partes de um par de dados fazem 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 gráfico](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/FinancialAggregationFunctionsInCharts/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/ChartFunctions/FinancialAggregationFunctionsInCharts/xirr.htm)

#### Script de carregamento e expressão de gráfico

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:

* Um conjunto de dados contendo transações de fluxo de caixa.

* Informações armazenadas em uma tabela chamada `Cashflow`.

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

Resultados

Faça o seguinte:

Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione o seguinte cálculo como medida:

`=XIRR(Payments, Date)`

Tabela de resultados

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

* [IRR - função de gráfico](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/FinancialAggregationFunctionsInCharts/irr.htm)
* [Aggr - função de gráfico](https://help.qlik.com/pt-BR/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/aggr.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)