Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
Not applicable

Problema Mês Anterior + Mês Atual Default

Boa tarde Pessoal,

Eu fiz um painel para aparecer na televisão com abas rotativas automaticamente, mas estou com problema em uma das abas que contém um gráfico.

Preciso configurar o Set Analysis, para pegar o maior mês por default e também o mês anterior (claro considerando o ano, se for janeiro de 2016, deve pegar dezembro de 2015).

Eu fiz o seguinte.

Criei uma variável para v_mes_anteior com a sintaxe abaixo:

=if([Mes] = 'jan', 'dez', MONTH(DATE#(NUM([Mes]-1,'00'),'MM')))

A variável v_ano_anterior com a sintaxe:

=if([Mes] = 'jan', [Ano] - 1,[Ano])

Então na Expressão o seguinte:

=COUNT({$<[Ano] ={$(=v_ano_anterior)}, [Mes] ={$(=v_mes_anterior)}>} sup_aprovador)


Está funcionando quando eu seleciono o mês, mas não consigo fazer pegar o maior mês - 1 automaticamente.

Alguém poderia me ajudar?

Muito obrigado.

Abraços.

Tags (1)
1 Solution

Accepted Solutions
Not applicable

Re: Problema Mês Anterior + Mês Atual Default

Boa tarde Galera, consegui resolver aqui de uma forma aparentemente simples e que funcionou, compartilho com os amigos. Com uma gambiarra de adicionar 0 meses, mas quando tirei não funcionou. Desculpem as trapalhadas mas sou iniciante no mundo do QlikView,

Mês Anterior:

=COUNT({<Mes = {"$(=month(addmonths(Max(Dia),-1)))"},Ano={"$(=Year(addmonths(Max(Dia),-1)))"} ,Dia=>}sup_aprovador)

Mês Atual:

=COUNT({<Mes = {"$(=month(addmonths(Max(Dia),0)))"},Ano={"$(=Year(addmonths(Max(Dia),0)))"} ,Dia=>}sup_aprovador)

Porém não achei jeito de colocar o eixo de janeiro na frente do de dezembro, se alguém tiver uma dica.

Valeu abraços.

PS:Quem quiser o fonte, se for ajudar-los em algo, é só me pedir!

Sem título.png

8 Replies
jeanlipes
Not applicable

Re: Problema Mês Anterior + Mês Atual Default

Boa tarde,

Tentou utilizar o MIN(DATA) ou MAX(DATA)?

Not applicable

Re: Problema Mês Anterior + Mês Atual Default

Olá Jean,

Obrigado pela resposta.

Eu tentei usar assim COUNT({ $<Mes = {$(=Maxstring(Mes))}>} sup_aprovador), ele pega o ultimo mês mas não consigo fazer o mês anterior quando o maior mês é janeiro de 2016 por exemplo, já que o mês anterior tem que considerar o ano passado.

Atualmente está funcionando. Só não trás o último mês como default. Eu tenho que clicar no Ano.

dyhessyca
Not applicable

Re: Problema Mês Anterior + Mês Atual Default

Tente colocar assim nas variáveis:

vAnoAnterior =Year(max(DATA))-1

vMêsAnterior =Month(max(DATA))-1

afurtado
Not applicable

Re: Problema Mês Anterior + Mês Atual Default

Eduardo,

você poderia fazer


=COUNT({<DAT_EMISSAO={">=$(=vDtInicioAnt)<=$(=vDtFinalAnt)"} >} sup_aprovador)


sendo que as variaveis sao:


vDtInicioAnt = AddMonths( MakeDate(max(FNOT_DAT_ANO_EMISSAO) , max(FNOT_DAT_MES_EMISSAO)),-1)


vDtFinalAnt =MonthEnd( AddMonths( MakeDate(max(FNOT_DAT_ANO_EMISSAO) , max(FNOT_DAT_MES_EMISSAO)),-1))


2016-01-15 20_00_32.jpg

Mas ai teria que ter uma data para facilitar ao inves de usar ano e mes.....que da tambem....


vAnoAnt = year( AddMonths( MakeDate(max(FNOT_DAT_ANO_EMISSAO) , max(FNOT_DAT_MES_EMISSAO)),-1))


vMesant = month( AddMonths( MakeDate(max(FNOT_DAT_ANO_EMISSAO) , max(FNOT_DAT_MES_EMISSAO)),-1))


2016-01-15 20_03_18.jpg


=COUNT({$<[Ano] ={$(=vAnoAnt)}, [Mes] ={$(=vMesAnt)}>} sup_aprovador)



afurtado
Not applicable

Re: Problema Mês Anterior + Mês Atual Default

Coloquei a opção com datas, pois ai da para fazer trimestre, semestre, dois últimos meses, quinzena, etc.......

e como usa o addmonths() para somar ou diminuir os meses.

Not applicable

Re: Problema Mês Anterior + Mês Atual Default

Sem título.pngPessoal,

Obrigado pela ajuda.

Alessandro entendi, mas não é sempre que quero fazer o ano e mês anterior, então creio que deva ter alguma condicional, não?

Pois se eu não seleciono um mês, por default ele traz o maior ano.

A sentença ficou conforme pode-se ver na imagem (01/11/2016), mas mesmo quando eu seleciono o mês desejado para comparação ele não conta os valores.. E o formato do meu campo "Dia" é DD/MM/YYYY, acho que estou fazendo algo errado. =/

alan_dernival
Not applicable

Re: Problema Mês Anterior + Mês Atual Default

Bom dia, Eduardo

A variável pode ficar da seguinte maneira:

vMesAnterior:

=Date(AddMonths(Data, -1),'DD/MM/YYYY')

dessa forma o próprio QlikView se encarrega de editar as datas, por exemplo '18/01/2016',  vMesAnterior = '18/12/2015'

Not applicable

Re: Problema Mês Anterior + Mês Atual Default

Boa tarde Galera, consegui resolver aqui de uma forma aparentemente simples e que funcionou, compartilho com os amigos. Com uma gambiarra de adicionar 0 meses, mas quando tirei não funcionou. Desculpem as trapalhadas mas sou iniciante no mundo do QlikView,

Mês Anterior:

=COUNT({<Mes = {"$(=month(addmonths(Max(Dia),-1)))"},Ano={"$(=Year(addmonths(Max(Dia),-1)))"} ,Dia=>}sup_aprovador)

Mês Atual:

=COUNT({<Mes = {"$(=month(addmonths(Max(Dia),0)))"},Ano={"$(=Year(addmonths(Max(Dia),0)))"} ,Dia=>}sup_aprovador)

Porém não achei jeito de colocar o eixo de janeiro na frente do de dezembro, se alguém tiver uma dica.

Valeu abraços.

PS:Quem quiser o fonte, se for ajudar-los em algo, é só me pedir!

Sem título.png