Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
digo_hacke
New Contributor II

Comparação de valores no período anual

Bom dia,

     Estou tendo bastante dificuldades em separar uma comparação de valores dos anos listados em uma nova coluna chamada Comparado. Segue abaixo o print de como está o desenvolvimento até o momento, e o outro print mostrando como preciso finalizar.

Atual

Faturamento Comparado.JPG

Necessidade

Faturamento Comparado - Editado.JPG

O problema é que não consigo separar os dois valores dos anos com a nova medida. Então será que no cálculo das dimensões de Valor Faturado e Qtde Faturado devo fazer uma sentença que liste primeiro os dois anos e em seguida o Comparado? E como fazer isso.

Segue abaixo a Medidas:

Valor Faturado:

Sum ({<Periodo=,Ano_Emissao_Nota={"$(=year((addyears(max(Data_Emissao_Nota),0))))"}

,Ano_Emissao_Nota={"$(=year((addyears(max(Data_Emissao_Nota),0))))"}>} Vl_Mercadoria_NF)

    & '' &

Sum ({<Periodo=,Ano_Emissao_Nota={"$(=year((addyears(max(Data_Emissao_Nota),-1))))"}

,Ano_Emissao_Nota={"$(=year((addyears(max(Data_Emissao_Nota),-1))))"}>} Vl_Mercadoria_NF)

Qtde Faturado:

Num( Sum ({<Periodo=,Ano_Emissao_Nota={"$(=year((addyears(max(Data_Emissao_Nota),0))))"}

,Ano_Emissao_Nota={"$(=year((addyears(max(Data_Emissao_Nota),0))))"}>} Qtde_FatUnit_NotaItem))

    & '' &

Num( Sum ({<Periodo=,Ano_Emissao_Nota={"$(=year((addyears(max(Data_Emissao_Nota),-1))))"}

,Ano_Emissao_Nota={"$(=year((addyears(max(Data_Emissao_Nota),-1))))"}>} Qtde_FatUnit_NotaItem))

Caso ajude essa informação tenho uma dimensão em Coluna que mudei o rótulo para Ano:

Ano_Emissao_Nota

E valor Linha que mudei o rótulo para UF:

UF_Cliente

Agradeço desde já qualquer ajuda.

Att,

Rodrigo

1 Solution

Accepted Solutions
lcontezini
Contributor

Re: Comparação de valores no período anual

Rodrigo, o Dim não vai ser uma variável, e sim uma dimensão mesmo. Coloque assim no script:

Passo 1)

Dimensao:

LOAD

    rowno() as Dim

AutoGenerate 3;

Passo 2)


NotaFiscal:

LOAD

Data_Emissao_Nota,

Ano_Emissao_Nota

FROM [lib://Qvd - Homologação (mx_administrador)/Forum_NotaFiscal_M*.qvd](qvd);

SET vMax_Ano =

          max(Ano_Emissao_Nota);

Passo 3) Dimensão das 3 colunas (Ano Atual -1, Ano Atual, e Comparativo):


=pick(Dim,

          vMax_Ano-1,

          vMax_Ano,

          'Comparativo'

          )


Passo 4) Criar as medidas com set analysis. Como na posição 1 está o vMax_Ano -1, o set analysis das duas medidas deve ser o mesmo. Você vai criar uma medida para valor faturado e outra para qtd. faturado. Para valor faturado fica:


=pick(vDim,

Sum ({<Periodo=,Ano_Emissao_Nota={'$(=vMax_Ano -1)'}>}Vl_Mercadoria_NF),  <--------- POSIÇÃO 1

Sum ({<Periodo=,Ano_Emissao_Nota={'$(=vMax_Ano -0)'}>}Vl_Mercadoria_NF), <---------- POSIÇÃO 2

Sum ({<Periodo=,Ano_Emissao_Nota={'$(=vMax_Ano -0)'}>}Vl_Mercadoria_NF)     

/                                                                                                                                  <---------- POSIÇÃO 3  

Sum ({<Periodo=,Ano_Emissao_Nota={'$(=vMax_Ano -1)'}>}Vl_Mercadoria_NF)     

)


obs: Na medida do comparativo (posição 3) eu só coloquei [Ano atual] / [Ano atual -1] como exemplo, depende de como é seu comparativo.

13 Replies
thiago_justen
Valued Contributor III

Re: Comparação de valores no período anual

Rodrigo, usando suas expressões eu faria assim:

Comparativo Valor Faturado:

Sum ({<Periodo=,Ano_Emissao_Nota={"$(=year((addyears(max(Data_Emissao_Nota),0))))"}>} Vl_Mercadoria_NF)

/

Sum ({<Periodo=,Ano_Emissao_Nota={"$(=year((addyears(max(Data_Emissao_Nota),-1))))"}

>} Vl_Mercadoria_NF)

Comparativo Qtde Faturado:

Num( Sum ({<Periodo=,Ano_Emissao_Nota={"$(=year((addyears(max(Data_Emissao_Nota),0))))"}>} Qtde_FatUnit_NotaItem))

/

Num( Sum ({<Periodo=,Ano_Emissao_Nota={"$(=year((addyears(max(Data_Emissao_Nota),-1))))"}>} Qtde_FatUnit_NotaItem))

Abs e Sucesso!!

Thiago Justen Teixeira Gonçalves
WhatsApp: 24 98152-1675
Skype: justen.thiago
digo_hacke
New Contributor II

Re: Comparação de valores no período anual

Thiago,

Já havia realizado essa expressão de cálculo. Porem não me trouxe nenhum resultado.

Segue abaixo como ficou.

Dica Comparado 1.JPG

Se eu inverter as colunas fica mais claro que não está OK ainda

Dica Comparado 2.JPG

Preciso ver alguma forma de separar essa medida da coluna Ano. Existe como fazer isso?

thiago_justen
Valued Contributor III

Re: Comparação de valores no período anual

Pode disponibilizar um qvf de exemplo?

Thiago Justen Teixeira Gonçalves
WhatsApp: 24 98152-1675
Skype: justen.thiago
digo_hacke
New Contributor II

Re: Comparação de valores no período anual

Thiago, o problema que o qvf que estou utilizando possui muita informação da empresa. Então até eu montar outro com as informações apenas para essa particularidade vai ser um pouco difícil pois estou com várias demandas de entrega. Se apenas com o qvf de exemplo vai conseguir algo, posso tentar no meu horário de almoço montar ele e te mandar.

thiago_justen
Valued Contributor III

Re: Comparação de valores no período anual

Perfeito, se puder, me mande um com dados fictícios que mantenham somente a estrutura da sua dash atual.

Thiago Justen Teixeira Gonçalves
WhatsApp: 24 98152-1675
Skype: justen.thiago
lcontezini
Contributor

Re: Comparação de valores no período anual

Rodrigo, uma solução viável é Pick().

Passo 1) Cria uma dimensão no script, i.e. um vetor de 0 a 2. Digamos que você chame de Dim. Cada valor do vetor será um valor da dimensão, por exemplo:

0 -> 2017

1 -> 2018

2 -> Comparativo

Passo 2) Cria uma variável que pega o máximo ano. Digamos que você chame de vMax_Ano

Passo 3) Na dimensão você coloca:

=pick(Dim,

vMax_Ano-1,

vMax_Ano,

'Comparativo')

Passo 4) Então você cria 2 expressões, uma pra valor faturado e outra pra quantidade faturado. Dentro do pick na expressão, você vai colocar um set analysis com os anos. Exemplo:

=pick(Dim,

Sum ({<Periodo=,Ano_Emissao_Nota={'$(=vDT_Max_Ano -1)'},Ano_Emissao_Nota={'$(=vDT_Max_Ano -1)'}>}Vl_Mercadoria_NF),

Sum ({<Periodo=,Ano_Emissao_Nota={'$(=vDT_Max_Ano -1)'},Ano_Emissao_Nota={'$(=vDT_Max_Ano -0)'}>}Vl_Mercadoria_NF),

Sum ({<Periodo=,Ano_Emissao_Nota={'$(=vDT_Max_Ano -1)'},Ano_Emissao_Nota={'$(=vDT_Max_Ano -0)'}>}Vl_Mercadoria_NF)

/

Sum ({<Periodo=,Ano_Emissao_Nota={'$(=vDT_Max_Ano -1)'},Ano_Emissao_Nota={'$(=vDT_Max_Ano -1)'}>}Vl_Mercadoria_NF),

)

Não analisei exatamente suas expressões, mas fica algo deste jeito. Pode implementar que funciona.

digo_hacke
New Contributor II

Re: Comparação de valores no período anual

Thiago,

  Segue em anexo o qvf. Com os valores apresentados no print anterior.

digo_hacke
New Contributor II

Re: Comparação de valores no período anual

Boa Tarde Leonardo,

  Analisando sua resposta estou tentando reproduzir ela. Segue abaixo minha percepção de execução dos passos descritos por você:

Passo 1) Script Carga

Set vDim;

Passo 2)  Script Carga

NotaFiscal:

LOAD

Data_Emissao_Nota,

Ano_Emissao_Nota

FROM [lib://Qvd - Homologação (mx_administrador)/Forum_NotaFiscal_M*.qvd](qvd);

vMax_Ano = Max(Ano_Emissao_Nota);

vDT_Max_Ano = Max(Data_Emissao_Nota);

Passo 3) Dimensão da Coluna certo?

=pick(vDim,

          vMax_Ano-1,

          vMax_Ano,

          'Comparativo'

          )

Passo 4) Criar as Medidas com o Set Analysis:

=pick(vDim,

Sum ({<Periodo=,Ano_Emissao_Nota={'$(=vDT_Max_Ano -1)'},Ano_Emissao_Nota={'$(=vDT_Max_Ano -1)'}>}Vl_Mercadoria_NF),

Sum ({<Periodo=,Ano_Emissao_Nota={'$(=vDT_Max_Ano -1)'},Ano_Emissao_Nota={'$(=vDT_Max_Ano -0)'}>}Vl_Mercadoria_NF),

Sum ({<Periodo=,Ano_Emissao_Nota={'$(=vDT_Max_Ano -1)'},Ano_Emissao_Nota={'$(=vDT_Max_Ano -0)'}>}Vl_Mercadoria_NF)

/

Sum ({<Periodo=,Ano_Emissao_Nota={'$(=vDT_Max_Ano -1)'},Ano_Emissao_Nota={'$(=vDT_Max_Ano -1)'}>}Vl_Mercadoria_NF)

)

Após executar esses passos a tela ficou em branco sem nenhum resultado. Estaria correto a forma que executei?

thiago_justen
Valued Contributor III

Re: Comparação de valores no período anual

Rodrigo,

Segue minha sugestão para a resolução da questão.

Expressões usadas:

Valor Faturado:

Sum(Aggr(Sum(Vl_Mercadoria_NF),Ano_Emissao_Nota,UF_Cliente))


Qtde Faturada:

Sum(Aggr(Sum(Qtde_FatUnit_NotaItem),Ano_Emissao_Nota,UF_Cliente))


Comparativo Valor Faturado:

(Sum(Aggr(Sum(Vl_Mercadoria_NF),Ano_Emissao_Nota,UF_Cliente))/Before(total Sum(Aggr(Sum(Vl_Mercadoria_NF),Ano_Emissao_Nota,UF_Cliente))))-1


Comparativo Qtde Faturada:

(Sum(Aggr(Sum(Qtde_FatUnit_NotaItem),Ano_Emissao_Nota,UF_Cliente))/Before(total Sum(Aggr(Sum(Qtde_FatUnit_NotaItem),Ano_Emissao_Nota,UF_Cliente))))-1

Thiago Justen Teixeira Gonçalves
WhatsApp: 24 98152-1675
Skype: justen.thiago