Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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.
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!
Boa tarde,
Tentou utilizar o MIN(DATA) ou MAX(DATA)?
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.
Tente colocar assim nas variáveis:
vAnoAnterior =Year(max(DATA))-1
vMêsAnterior =Month(max(DATA))-1
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))
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))
=COUNT({$<[Ano] ={$(=vAnoAnt)}, [Mes] ={$(=vMesAnt)}>} sup_aprovador)
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.
Pessoal,
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. =/
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'
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!