Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

"desacumular" valores em script

Boa noite a todos.

Estou com a seguinte dificuldade em montar um script no Qlik Sense. Tenho 3 planilhas com o resultado acumulados mês-a-mês de produtos vendidos e gostaria de "desacumular" esses resultados, mostrando, assim, apenas o vendido daquele mês.

Ex:
[Resultado vendas janeiro]
Mes|Produto|Quantidade Vendida acumulada
Janeiro|Produto A|20
Janeiro|Produto B|30

Janeiro|Produto C|40


OBS: vendemos 20un de A, 30 de B e 40 de C em Janeiro.

[Resultado vendas fevereiro]
Mes|Produto|Quantidade Vendida acumulada
Fevereiro|Produto A|30
Fevereiro|Produto B|45

Fevereiro|Produto C|60


OBS: vendemos 10un de A, 15 de B e 20 de C em Fevereiro.


[Resultado vendas marco]
Mes|Produto|Quantidade Vendida acumulada
Março|Produto A|50
Março|Produto B|75

Março|Produto C|100


OBS: vendemos 20un de A, 30 de B e 40 de C em Março.


Alguém sabe me dizer como posso fazer isso?

Meu intuito é mostrar, através de um gráfico de linhas, a variação de vendas mes-a-mes por produto.

Muito obrigado pela atenção.

Labels (1)
1 Solution

Accepted Solutions
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Amigo, segue;

temp_Tab_Vendas:

LOAD

    Produto,

    Date#(Mês,'MMM') As 'Mês',

    "Quantidade vendida acumulada"

FROM [lib://QVD_APOIO/exemplo_vendas_qlik.xlsx]

(ooxml, embedded labels, table is [Vendas Jan]);

LOAD

    Produto,

    Date#(Mês,'MMM') As 'Mês',

    "Quantidade vendida acumulada"

FROM [lib://QVD_APOIO/exemplo_vendas_qlik.xlsx]

(ooxml, embedded labels, table is [Vendas Fev]);

LOAD

    Produto,

    Date#(Mês,'MMM') As 'Mês',

    "Quantidade vendida acumulada"

FROM [lib://QVD_APOIO/exemplo_vendas_qlik.xlsx]

(ooxml, embedded labels, table is [Vendas Mar]);

Tab_Vendas:

NoConcatenate Load

    Produto,

    Mês, 

    If(Produto=Previous(Produto),

      "Quantidade vendida acumulada"-Peek("Quantidade vendida acumulada"),

      "Quantidade vendida acumulada"

        ) As 'Valor Mês',

    "Quantidade vendida acumulada"

Resident temp_Tab_Vendas

Order By Produto, Mês;

Drop Table temp_Tab_Vendas;

Resultado:

Capturar.JPG

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti

View solution in original post

8 Replies
Marcio_Campestrini
Specialist
Specialist

Leonardo

Se entendi bem a sua dúvida, basta manter o mesmo nome em todas as tabelas ou então utilize o comando Concatenate para juntar todas elas. Depois é só montar o gráfico de linhas com o mês e o produto como dimensões.

Márcio Rodrigo Campestrini
mauroponte
Creator II
Creator II

leonardo,

Voce tem como disponibilizar a planilha original para que eu possa tentar te ajudar? Voce usa o Qlikview ou Qlik Sense?

Not applicable
Author

Boa noite a todos.

Obrigado pela atenção.

Márcio, o concatenate irá juntar todas as tabelas sem problema. Porém o que eu preciso é a quantidade em cada mês, não a quantidade acumulada mês a mês.

Mauro, uso o Qlik Sense. Coloquei o arquivo excel que eu estou utilizando para teste.

O que eu quero é que o Qlik calcule a venda no mês especifico, e não na soma acumulada deles.

No meu qlik sense está assim, porém não funciona, pois ele não reconhece o dado de uma outra tabela.

[Vendas Jan]:

LOAD [Produto],

  [Mês],

  [Quantidade vendida acumulada] as [Quantidade vendida janeiro]

FROM [lib://D/exemplo_vendas_qlik.xlsx]

(ooxml, embedded labels, table is [Vendas Jan]);

[Vendas Fev]:

LOAD [Produto],

  [Mês],

  [Quantidade vendida acumulada]-[Quantidade vendida janeiro] as [Quantidade vendida fevereiro]

FROM [lib://D/exemplo_vendas_qlik.xlsx]

(ooxml, embedded labels, table is [Vendas Fev]);

[Vendas Mar]:

LOAD [Produto],

  [Mês],

  [Quantidade vendida acumulada]-[Quantidade vendida jan]-[Quantidade vendida fevereiro] as [Quantidade vendida marco]

FROM [lib://D/exemplo_vendas_qlik.xlsx]

(ooxml, embedded labels, table is [Vendas Mar]);

RENAME TABLE [Vendas Jan] TO [(Vendas Jan...)];

Espero que tenha sido mais claro.

Muito obrigado.

mario_sergio_ti
Partner - Specialist
Partner - Specialist

Amigo, segue;

temp_Tab_Vendas:

LOAD

    Produto,

    Date#(Mês,'MMM') As 'Mês',

    "Quantidade vendida acumulada"

FROM [lib://QVD_APOIO/exemplo_vendas_qlik.xlsx]

(ooxml, embedded labels, table is [Vendas Jan]);

LOAD

    Produto,

    Date#(Mês,'MMM') As 'Mês',

    "Quantidade vendida acumulada"

FROM [lib://QVD_APOIO/exemplo_vendas_qlik.xlsx]

(ooxml, embedded labels, table is [Vendas Fev]);

LOAD

    Produto,

    Date#(Mês,'MMM') As 'Mês',

    "Quantidade vendida acumulada"

FROM [lib://QVD_APOIO/exemplo_vendas_qlik.xlsx]

(ooxml, embedded labels, table is [Vendas Mar]);

Tab_Vendas:

NoConcatenate Load

    Produto,

    Mês, 

    If(Produto=Previous(Produto),

      "Quantidade vendida acumulada"-Peek("Quantidade vendida acumulada"),

      "Quantidade vendida acumulada"

        ) As 'Valor Mês',

    "Quantidade vendida acumulada"

Resident temp_Tab_Vendas

Order By Produto, Mês;

Drop Table temp_Tab_Vendas;

Resultado:

Capturar.JPG

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
mauroponte
Creator II
Creator II

Leonardo,

Consegui o mesmo resultado que mário conseguiu com o script abaixo:

Meses:

Mapping Load * inline [

Mês_Mapa,Numero

jan,01

fev,02

mar,03

abr,04

mai,05

jun,06

jul,07

ago,08

set,09

out,10

nov,11

dez,12

];

[Vendas_TMP]:

LOAD [Produto],

  [Mês],

  [Quantidade vendida acumulada] as [Quantidade Acumulada]

FROM [lib://teste/exemplo_vendas_qlik.xlsx]

(ooxml, embedded labels, table is [Vendas Jan]);

Outer join(Vendas_TMP)

LOAD [Produto],

  [Mês],

  [Quantidade vendida acumulada] as [Quantidade Acumulada]

FROM [lib://teste/exemplo_vendas_qlik.xlsx]

(ooxml, embedded labels, table is [Vendas Fev]);

outer join(Vendas_TMP)

LOAD [Produto],

  [Mês],

  [Quantidade vendida acumulada] as [Quantidade Acumulada]

FROM [lib://teste/exemplo_vendas_qlik.xlsx]

(ooxml, embedded labels, table is [Vendas Mar]);

Vendas_TMP2:

Load

  [Produto],

    [Mês],

    date('01/'&ApplyMap('Meses',lower(Mês))&'/2017','DD/MM/YYYY')  as Data_Ref,

    [Quantidade Acumulada]

resident Vendas_TMP;

drop table Vendas_TMP;

vendas:

Load

  [Produto],

    [Mês],

    if(Mês='Jan',[Quantidade Acumulada],[Quantidade Acumulada]-Previous([Quantidade Acumulada])) as [Quantidade Vendida]

  

resident Vendas_TMP2

order by Produto,Data_Ref;

drop table Vendas_TMP2;

Estou anexando o QVF de Exemplo.

mario_sergio_ti
Partner - Specialist
Partner - Specialist

Amigo, conseguiu?

Abraço.

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
Not applicable
Author

Bom dia a todos.

Consegui sim, muito obrigado Mario e Mauro. Ambas as soluções funcionam . Pena que posso apenas marcar uma como correta =/

Obrigado e Ótiimo dia.

mario_sergio_ti
Partner - Specialist
Partner - Specialist

Que ótimo amigo;

Estamos aqui para somar forças.

Verdade, porém é possível marcar algumas respostas como Útil se quiser (no menu de "Ações" de cada balão);

Abraço e sucesso!

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti