Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
welinton123
Contributor III
Contributor III

Alterando Para Mês Anterior

Boa tarde,

Tenho uma tabela com a dimensão Vendedores e uma seleção de filtros de Data e Produto.

Utilizo neste cenário a expressão abaixo para contar as lojas que, no mês, tiveram q quantidade de recargas maior ou igual a 3.

Count({<LOJA_CODIGO = {"=Sum({<OPERADORA_GRUPO={'CHIP COMBO'}>}#QTD_RECARGAS)>=3"}>} DISTINCT LOJA_CODIGO)       

Nesta mesma tabela há a necessidade de criar uma coluna M-1, ou seja, uma coluna para exibir o resultado do mês anterior.

o problema é que não consigo alterar minha expressão de forma que ela traga esse valor do mês anterior.

Uma opção que me foi dada era utilizar uma matriz AsOf para achar estes dados com maior facilidade, porém a tabela não funcionou, até porque não domino AsOf ainda, mas mesmo com AsOf existiria a necessidade de informar na expressão qual o período seria utilizado para a contatem e isso não está dando certo.

Um dos problemas é que o SET de dentro, o Sum, tem " " e quando eu incluo alguma condição e preciso utilizar "$()" da conflito com as " " do sum.

Estou anexando uma base de Excel com os valores para contagem.

Alguém tem uma ideia de como incluir uma condição de DATA para pegar o mês anterior?

Obrigado!

Labels (2)
1 Solution

Accepted Solutions
viniciusmariano
Contributor II
Contributor II

Caro Welinton,

Precisamos de uma explicação melhor da estrutura de dados e do aplicativo no qlik. Sem falar que o arquivo Excel sem comentários ficou sem sentido.

Mas vou tentar responder pelo que entendi aqui.

Obs: Um campo InicioMes (em formato de data “Date(MonthStart(SuaData)) as InicioMes”) ajuda muito nesse caso, e vou partir do pressuposto que vc tenha esse campo no seu calendário.

Rótulo 1: =Date(Max(InicioMes)), “MMM/YY”)

Expressão 1:

Count({<LOJA_CODIGO = {"=Sum({<OPERADORA_GRUPO={'CHIP COMBO'}>}#QTD_RECARGAS)>=3"}, InicioMes = {“$(=Max(InicioMes))”}

>} DISTINCT LOJA_CODIGO)

Rótulo 2: =Date(AddMonths(Max(InicioMes)),-1), “MMM/YY”)

Expressão 2:

Count({<LOJA_CODIGO = {"=Sum({<OPERADORA_GRUPO={'CHIP COMBO'}>}#QTD_RECARGAS)>=3"}, InicioMes = {“$(=AddMonths(Max(InicioMes)),-1)”}

>} DISTINCT LOJA_CODIGO)

PS. Terá que observar os filtros e dimensões no seu gráfico para aplicar corretamente esses set analysis.

PS2. Se compartilhar um qvd com o modelo de dados válido temos como testar as expressões.

Att.

View solution in original post

4 Replies
maiconmello
Creator III
Creator III

Vai ter que estruturar esse seu excel amigo !

viniciusmariano
Contributor II
Contributor II

Caro Welinton,

Precisamos de uma explicação melhor da estrutura de dados e do aplicativo no qlik. Sem falar que o arquivo Excel sem comentários ficou sem sentido.

Mas vou tentar responder pelo que entendi aqui.

Obs: Um campo InicioMes (em formato de data “Date(MonthStart(SuaData)) as InicioMes”) ajuda muito nesse caso, e vou partir do pressuposto que vc tenha esse campo no seu calendário.

Rótulo 1: =Date(Max(InicioMes)), “MMM/YY”)

Expressão 1:

Count({<LOJA_CODIGO = {"=Sum({<OPERADORA_GRUPO={'CHIP COMBO'}>}#QTD_RECARGAS)>=3"}, InicioMes = {“$(=Max(InicioMes))”}

>} DISTINCT LOJA_CODIGO)

Rótulo 2: =Date(AddMonths(Max(InicioMes)),-1), “MMM/YY”)

Expressão 2:

Count({<LOJA_CODIGO = {"=Sum({<OPERADORA_GRUPO={'CHIP COMBO'}>}#QTD_RECARGAS)>=3"}, InicioMes = {“$(=AddMonths(Max(InicioMes)),-1)”}

>} DISTINCT LOJA_CODIGO)

PS. Terá que observar os filtros e dimensões no seu gráfico para aplicar corretamente esses set analysis.

PS2. Se compartilhar um qvd com o modelo de dados válido temos como testar as expressões.

Att.

welinton123
Contributor III
Contributor III
Author

Olá Fernando,

Acho que estava meio agoniado com o problema e não fui bem em expressar a necessidade.

O conceito é simples, preciso exibir o total de lojas que no mês anterior tiveram mais de 3 compras de um determinado produto.

A lista original possui os campos de CLIENTE, DATA, OPERADORA_GRUPO, #QTD_RECARGAS.

Tenho a tabela abaixo onde o indicador 1 é a formula que citei no texto e funciona perfeitamente porque ela responde as datas filtradas no calendário.

O indicador 2 eu preciso da mesma informação, porém, do mesmo período do mês anterior.

O problema real existe pois eu não consegui inserir um critério de data em nenhum dos dois SETs, nem no Sum nem no Count.

O valor que gera não bate com a validação manual!

Capture.PNG

De qualquer forma vou testar sua sugestão abaixo:

Count({<LOJA_CODIGO = {"=Sum({<OPERADORA_GRUPO={'CHIP COMBO'}>}#QTD_RECARGAS)>=3"}, InicioMes = {“$(=Max(InicioMes))”}

>} DISTINCT LOJA_CODIGO)

Sei que já tentei incluir os critérios dos dois SETs e não funcionou mas não custa tentar mais uma vez.

Retorno com o teste.

Obrigado!

welinton123
Contributor III
Contributor III
Author

É o exemplo ficou meio pobre, o modelo de dados original possui campos de CLIENTE, DATA, OPERADORA_GRUPO, #QTD_RECARGAS.

Estes eram os campos que deviam constar no exel.

Abs.