Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Pessoal, boa tarde!
Estou precisando de uma dica..
O que estou tentando fazer, tenho uma tabela com campo Ano, Mes e quantidade de funcionarios.. Estou fazendo uma análise anual, para mostrar diversas informações e um dos campos, quero mostrar a quantidade de funcionários.
Mas para este caso, quero mostrar a quantidade de funcionarios do maior mes daquele ano.
Como eu fiz:
sum ({$< ACID_DT_ANO_ACIDENTE = ,
ACID_NR_MES_ACIDENTE = {$(=MAX(ACID_DT_MES_ACIDENTE))
>}
)
O que acontece é que no caso de 2012 eu só tenho informações do mês de janeiro no momento e dos outros anos tenho de janeiro a dezembro. Esta acontecendo que quando não seleciono nada no filtro de ano e mês aparece o valor de quantidade de funcionários para os anos 2009, 2010, 2011, porém para 2012 traz zerado o valor.
Se eu selecionar então o mês de janeiro, mostra o valor de 2012, porém altera também as quantidades do ano de 2009, 2010, 2011, trazendo as quantidade do mes de janeiro dos respectivos anos e não do último mês.
Alguém tem alguma dica de como posso tratar isto?
Desde já agradeço a ajuda! Valeu...
Juliana Holstein.
Então juliana,
parece algo simples, porém não é tao simples assim,
achei uma maneira de resolver isso , segue um exemplo:
if ( Max(Mês) = 12 ,
sum( {<Mês = {$(=MaxString(Mês))}>} [Valor de Venda]) ,
sum({<Mês = {$(=MaxString( {<Ano = {$(=max(Ano))}>} Mês))}>} [Valor de Venda])
)
a idéia dessa expressão é o seguinte... se o mês for dezembro, usa aquela sua primeira expressão, do contrário
usa aquela sua expressão com um set analysis dentro do max(mês) para pegar do ultimo ano ...
-----------
Essa não é a melhor maneira, parece até algo meio POG (programação orientada a gambiarra) rsrs. Mas acredito que resolve.
Já tive essa mesma dúvida e lembro que me bati bastante ... lembro também que com a ajuda aqui da comunidade consegui resolver com uma agregação e dentro uma condicional, porém não estou lembrando e nem achando aqui na comunidade.
OBS: Isso é algo que eu não consigo entender no QlikView... o max() dentro de um set analisys nao considera a dimensão da tabela... por isso pedi pra você fazer aquele teste de criar um campo max... observe que o campo max traz perfeitamente os ultimos meses dos anos... e quando esse mesmo max é colocado dentro do set analysis ele ultiliza o mes 12 para todos os anos.
Espero que tenha ajudado.
Abraço.
Olá Juliana,
acredito que com if ja resolva seu problema
if(ACID_NR_MES_ACIDENTE = MAX(ACID_DT_MES_ACIDENTE) , count(funcionarios))
Olá Rodrigo, bom dia!
Obrigada por responder viu?
Fiz os testes, funcionou em parte, acho que estou fazendo alguma coisa errada.
Tirando a minha fórmula anterior
sum ({$< ACID_DT_ANO_ACIDENTE = ,
ACID_NR_MES_ACIDENTE = {$(=MAX(ACID_DT_MES_ACIDENTE))
>}
)
e colocando a que você me sugeriu
if(ACID_NR_MES_ACIDENTE = MAX(ACID_DT_MES_ACIDENTE) , count(funcionarios)).
Funciona para o ano de 2012 daí, mas para os demais anos fica em branco.
Creio que eu deva fazer algum tratamento para o ano como fiz anterioremente né? Não levando em consideração a seleção do ano. É isso?
Eu faria mais um IF neste caso? Ou utilizaria a minha fórmula e incluiria o IF?
Te mando um print para você ver.
Desde já agradeço sua ajuda,
Abs,
Juliana.
Olá Rodrigo, bom dia!
Obrigada por responder viu?
Fiz os testes, funcionou em parte, acho que estou fazendo alguma coisa errada.
Tirando a minha fórmula anterior
sum ({$< ACID_DT_ANO_ACIDENTE = ,
ACID_NR_MES_ACIDENTE = {$(=MAX(ACID_DT_MES_ACIDENTE))
>}
)
e colocando a que você me sugeriu
if(ACID_NR_MES_ACIDENTE = MAX(ACID_DT_MES_ACIDENTE) , count(funcionarios)).
Funciona para o ano de 2012 daí, mas para os demais anos fica em branco.
Creio que eu deva fazer algum tratamento para o ano como fiz anterioremente né? Não levando em consideração a seleção do ano. É isso?
Eu faria mais um IF neste caso? Ou utilizaria a minha fórmula e incluiria o IF?
Te mando um print para você ver.
Desde já agradeço sua ajuda,
Abs,
Juliana.
Juliana... vamos fazer um teste... inclui um campo só
max(mes)
e veja se acontece a mesma coisa.. só aparece 2012..
Olá Rodrigo, ele trouxe o último mês de cada ano, veja o print.
Obrigada pela ajuda até agora..
Abs,
Juliana
Então juliana,
parece algo simples, porém não é tao simples assim,
achei uma maneira de resolver isso , segue um exemplo:
if ( Max(Mês) = 12 ,
sum( {<Mês = {$(=MaxString(Mês))}>} [Valor de Venda]) ,
sum({<Mês = {$(=MaxString( {<Ano = {$(=max(Ano))}>} Mês))}>} [Valor de Venda])
)
a idéia dessa expressão é o seguinte... se o mês for dezembro, usa aquela sua primeira expressão, do contrário
usa aquela sua expressão com um set analysis dentro do max(mês) para pegar do ultimo ano ...
-----------
Essa não é a melhor maneira, parece até algo meio POG (programação orientada a gambiarra) rsrs. Mas acredito que resolve.
Já tive essa mesma dúvida e lembro que me bati bastante ... lembro também que com a ajuda aqui da comunidade consegui resolver com uma agregação e dentro uma condicional, porém não estou lembrando e nem achando aqui na comunidade.
OBS: Isso é algo que eu não consigo entender no QlikView... o max() dentro de um set analisys nao considera a dimensão da tabela... por isso pedi pra você fazer aquele teste de criar um campo max... observe que o campo max traz perfeitamente os ultimos meses dos anos... e quando esse mesmo max é colocado dentro do set analysis ele ultiliza o mes 12 para todos os anos.
Espero que tenha ajudado.
Abraço.
Pessoal, boa tarde.
Passei por problemas parecidos, e resolvi transferindo a fórmula Max(MesAno) para uma variável, e no Set Analises referencio apenas a Variável, exemplo:
sum ({$< ACID_DT_ANO_ACIDENTE = ,
ACID_NR_MES_ACIDENTE = {$(Variavel)}
>}
)
Espero ter ajudado.
Olá Rodrigo,
Pois então isso é bem estranho né? No set Analysis não funcionar muito bem.
Fiz a fórmula conforme sua dica e funcionou certinho.
Só queria te incomodar mais um pouco, existe a possibilidade de nesta fórmula colocar para não levar em consideração o que eu seleciono nos filtros de Mes e Ano que tenho ?
Desde já agradeço sua ajuda!
Abraço,
Olá Thiago,
Fiz um teste utilizando a váriavel, mas no meu caso permaneceu igual. Ele preencheu a quantidade nos anos 2009,2010, 2011, porém no ano de 2012 continuo zerado.
Obrigada pela dica.
Abs,
Juliana