A função de script XNPV() usa datas específicas correspondentes a cada fluxo de caixa que está sendo descontado, exceto a taxa de desconto. Ela é diferente da função NPV(), pois NPV() assume que todos os períodos de tempo sejam iguais. Por esse motivo, XNPV() é mais precisa que NPV().
Sintaxe:
XNPV(discount_rate, pmt,
date)
Tipo de dados de retorno: numérico. Por padrão, o resultado será formatado como moeda.
A fórmula para calcular o XNPV é:
na qual:
Pi= Entradas e saídas líquidas de caixa durante um único período i
d1= a data do primeiro pagamento
di = a data do iº pagamento
rate = taxa de desconto
O Valor presente líquido, ou NPV, é usado para calcular o valor total atual de um fluxo futuro de fluxos de caixa. Para calcular o NPV, precisamos estimar os fluxos de caixa futuros para cada período e determinar a taxa de desconto correta.
XNPV() usa uma taxa de desconto e vários valores ordenados por período. As entradas (receitas) são positivas e as saídas (pagamentos futuros) são consideradas valores negativos. Elas ocorrem no final de cada período.
Argumentos
Argumento
Descrição
discount_rate
discount_rate é a taxa percentual de desconto aplicado.
Um valor de 0,1 indicaria uma taxa de desconto de 10%.
value
Esse campo contém valores de fluxo de caixa. O primeiro valor é considerado o fluxo de caixa no início, e a data correspondente é usada como referência para calcular o valor presente para todos os fluxos de caixa futuros.
Nota informativaXNPV() não desconta o fluxo de caixa inicial. Os pagamentos subsequentes são descontados com base em um ano de 365 dias. Isso é diferente de NPV(), em que cada pagamento é descontado.
date
Esse campo contém a data em que o fluxo de caixa (value, o segundo parâmetro) aconteceu. O primeiro valor é usado como data de início para calcular as compensações para fluxos de caixa futuros.
Limitações:
Se houver valores de texto, valores NULL e valores ausentes em qualquer ou em ambas as partes de um par de dados, esse par de dados será desconsiderado.
Quando usar
XNPV() é usada na modelagem financeira para calcular o valor presente líquido (NPV) de uma oportunidade de investimento.
Devido à sua maior precisão, XNPV é preferível a NPV para todos os tipos de modelos financeiros.
Configurações regionais
A menos que especificado de outra forma, os exemplos neste tópico usam o seguinte formato de data: MM/DD/AAAA. O formato de data é especificado na instrução SET DateFormat no seu script de carregamento de dados. A formatação de data padrão pode ser diferente no seu sistema devido às suas configurações regionais e outros fatores. Você pode alterar os formatos nos exemplos abaixo para atender às suas necessidades. Ou pode alterar os formatos no seu script de carregamento para corresponder a esses exemplos.
As configurações regionais padrão nos aplicativos são baseadas nas configurações regionais do sistema do computador ou servidor em que o Qlik Sense está instalado. Se o servidor Qlik Sense que você está acessando estiver definido como Suécia, o Editor de carregamento de dados usará as configurações regionais suecas para datas, horas e moedas. Essas configurações de formato regional não estão relacionadas ao idioma exibido na interface do usuário do Qlik Sense. O Qlik Sense será exibido no mesmo idioma do navegador que você está usando.
Exemplo 1: Pagamento único (script)
Visão geral
Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova guia.
O script de carregamento contém:
Um conjunto de dados de um projeto e seu fluxo de caixa por um ano, em uma tabela denominada CashFlow. A data inicial para o cálculo está definida como 1º de julho de 2022, com um fluxo de caixa líquido de 0. Depois de um ano, ocorre um fluxo de caixa de $ 1.000.
Um carregamento residente da tabela CashFlow, que é usado para calcular o campo XNPV do projeto em uma tabela denominada XNPV.
Uma taxa de desconto codificada de 10% (0,1) é usada no cálculo de XNPV.
Uma instrução Group By é usada para agrupar todos os pagamentos do projeto.
Script de carregamento
CashFlow:
Load
*
Inline
[
PrjId,Dates,Values
1,'07/01/2022',0
1,'07/01/2023',1000
];
XNPV:
Load
PrjId,
XNPV(0.1,Values,Dates) as XNPV //Discount Rate of 10%
Resident CashFlow
Group By PrjId;
Resultados
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
PrjId
XNPV
Tabela de resultados
PrjId
XNPV
1
$909.09
De acordo com a fórmula, o valor de XNPV para o primeiro registro é 0 e, para o segundo registro, o valor de XNPV é $ 909,09. Portanto, o XNPV total é $ 909,09.
Exemplo 2: Vários pagamentos (script)
Visão geral
Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova guia.
O script de carregamento contém:
Um conjunto de dados de um projeto e seu fluxo de caixa por um ano, em uma tabela denominada CashFlow.
Um carregamento residente da tabela CashFlow, que é usado para calcular o campo XNPV do projeto em uma tabela denominada XNPV.
Uma taxa de desconto codificada de 10% (0,1) é usada no cálculo de XNPV.
Uma instrução Group By é usada para agrupar todos os pagamentos do projeto.
Script de carregamento
CashFlow:
Load
*
Inline
[
PrjId,Dates,Values
1,'07/01/2022',0
1,'07/01/2024',500
1,'07/01/2023',1000
];
XNPV:
Load
PrjId,
XNPV(0.1,Values,Dates) as XNPV //Discount Rate of 10%
Resident CashFlow
Group By PrjId;
Resultados
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
PrjId
XNPV
Tabela de resultados
PrjId
XNPV
1
$1322.21
Neste exemplo, um pagamento de $ 1.000 é recebido no final do primeiro ano e um pagamento de $ 500 é recebido no final do segundo ano. Com uma taxa de desconto de 10% por período, o XNPV efetivo é igual a $ 1.322,21.
Observe que somente a primeira linha de dados deve se referir à data base para os cálculos. Para o restante das linhas, a ordem não é importante, pois o parâmetro de data é usado para calcular o período decorrido.
Exemplo 3: Vários pagamentos e fluxos de caixa irregulares (script)
Visão geral
Abra o editor da carga de dados e adicione o script de carregamento abaixo em uma nova guia.
O script de carregamento contém:
Taxas de desconto para dois projetos em uma tabela denominada Project.
Fluxos de caixa para vários períodos para cada projeto por ID e datas de projeto. O campo Dates é usado para calcular a duração pela qual a taxa de desconto é aplicada ao fluxo de caixa. Além do primeiro registro (fluxo de caixa inicial e data), a ordem dos registros não é importante, e alterá-la não afetará os cálculos.
Usando uma combinação de NoConcatenate, carregamentos residentes e a função Left Join, é criada uma tabela temporária tmpNPV que combina os registros das tabelas Project e CashFlow em uma tabela simples. Essa tabela terá taxas de desconto repetidas para cada fluxo de caixa.
Um carregamento residente da tabela tmpNPV, que é usado para calcular o campo XNPV de cada projeto em uma tabela denominada XNPV.
A taxa de desconto de valor único associada a cada projeto é obtida usando a função only() e é usada no cálculo de XNPV de cada projeto.
Uma instrução Group By, agrupada por ID do projeto, é usada para agrupar todos os pagamentos e as datas correspondentes de cada projeto.
Para evitar que dados sintéticos ou redundantes sejam carregados no modelo de dados, a tabela tmpXNPV é descartada no final do script.
Script de carregamento
Project:
Load * inline [
PrjId,Discount_Rate
1,0.1
2,0.15
];
CashFlow:
Load
*
Inline
[
PrjId,Dates,Values
1,'07/01/2021',0
1,'07/01/2022',1000
1,'07/01/2023',1000
2,'07/01/2020',0
2,'07/01/2023',500
2,'07/01/2024',1000
2,'07/01/2022',500
];
tmpXNPV:
NoConcatenate Load *
Resident Project;
Left Join
Load *
Resident CashFlow;
XNPV:
Load
PrjId,
XNPV(Only(Discount_Rate),Values,Dates) as XNPV //Discount Rate will be 10% for Project 1 and 15% for Project 2
Resident tmpXNPV
Group By PrjId;
Drop table tmpXNPV;
Resultados
Carregue os dados e abra uma pasta. Crie uma nova tabela e adicione esses campos como dimensões:
PrjId
XNPV
Tabela de resultados
PrjId
XNPV
1
$1735.54
2
$278.36
O ID de projeto 1 tem um fluxo de caixa inicial de $ 0 em 1º de julho de 2021. Há dois pagamentos de $ 1.000 a serem recebidos no final de dois anos subsequentes, com uma taxa de desconto de 10% por período. Portanto, o XNPV efetivo é igual a $ 1.735,54.
O ID de projeto 2 tem uma saída inicial de $ 1.000 (portanto, o sinal negativo) em 1º de julho de 2020. Depois de dois anos, espera-se um pagamento de $ 500. Após 3 anos, outro pagamento de $ 500 é esperado. Finalmente, em 1º de julho de 2024, espera-se um pagamento de $ 1.000. Com a taxa de desconto de 15%, o XNPV efetivo é igual a $ 278,36.
Se você encontrar algum problema com esta página ou seu conteúdo - um erro de digitação, uma etapa ausente ou um erro técnico - informe-nos como podemos melhorar!