XNPV() retorna o valor presente líquido agregado para um cronograma de fluxos de caixa (não necessariamente periódicos) representados por números emparelhados em pmt e date. Todos os pagamentos têm descontos baseados em um ano de 365 dias.
Sintaxe:
XNPV(discount_rate, pmt,
date)
Tipo de dados de retorno: numérico
Nota informativaPor padrão, o resultado será formatado como moeda.
A fórmula para calcular o XNPV é mostrada abaixo:
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, dada uma taxa de desconto. Para calcular XNPV, precisamos estimar fluxos de caixa futuros com datas correspondentes. Depois disso, para cada pagamento, aplicamos a taxa de desconto composta com base na data do pagamento.
Executar a agregação XNPV em uma série de pagamentos é semelhante a executar uma agregação de soma sobre esses pagamentos. A diferença é que cada valor é modificado (ou "descontado") de acordo com a taxa de desconto escolhida (semelhante à taxa de juros) e quanto tempo no futuro está o pagamento. Realizando XNPV com o parâmetro discount_rate definido como zero fará com que o XNPV seja equivalente a uma operação de soma (os pagamentos não serão modificados antes de serem somados). Em geral, quanto mais próximo discount_rate estiver definido de zero, mais semelhante será o resultado de XNPV ao de uma agregação de soma.
Argumentos
Argumento
Descrição
discount_rate
discount_rate é a taxa anual com base na qual os pagamentos devem ser descontados.
Um valor de 0,1 indicaria uma taxa de desconto de 10%.
pmt
Pagamentos. A expressão ou campo que contém os fluxos de caixa correspondentes ao cronograma de pagamentos dado no date. Valores positivos são considerados entradas, e valores negativos são considerados saídas.
Nota informativaXNPV() não desconta o fluxo de caixa inicial, pois sempre acontecerá na data de início. Os pagamentos subsequentes são descontados com base em um ano de 365 dias. Ele é diferente de NPV(), onde também é descontado o primeiro pagamento.
date
A expressão ou campo que contém o cronograma de datas correspondentes aos pagamentos de fluxo de caixa dados em pmt. O primeiro valor é usado como a data inicial para calcular as compensações de tempo para fluxos de caixa futuros.
Ao trabalhar com essa função, as seguintes limitações são aplicáveis:
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.
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!