Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
fercas69
New Contributor II

Visão Ano Atual x Ano Anterior

Pessoal, boa tarde!

Preciso desenvolver no QlikView um gráfico onde terei uma expressão de "Ano Atual" e outra para "Ano Anterior".

Eu criei uma variável para "Ano Atual" (vAnoAtual) e outra para "Ano Anterior" (vAnoAnterior).

Supondo que a o cálculo seja count(MATRICULA) basta eu usar:

Para "Ano Atual": count({<CALENDARIO.ANO = {'$(vAnoAtual)'}>}MATRICULA)

Para "Ano Anterior": count({<CALENDARIO.ANO = {'$(vAnoAnterior)'}>}MATRICULA)


Beleza... porém o cálculo que estou trabalhando é um pouco mais complicado e nele já utilizo a variável de ano atual + ano anterior... veja o exemplo:


IF(CALENDARIO.MES = 'jan',

Count(total{<ORIGEM={'X'} ,GRUPO ={'TESTE'},

ORIGEM={A},CALENDARIO.ANO={'$(vAnoAnterior)'},CALENDARIO.MES,MesID={11},CALENDARIO.MES_ANO=>}Distinct  MATRICULA)

+

Count(total{<ORIGEM={'X'} ,GRUPO ={'TESTE'},

ORIGEM={A},CALENDARIO.ANO={'$(vAnoAnterior)'},CALENDARIO.MES,MesID={12},CALENDARIO.MES_ANO=>}Distinct  MATRICULA)

+

Count(total{<ORIGEM={'X'} ,GRUPO ={'TESTE'},

ORIGEM={A},CALENDARIO.ANO={'$(vAnoAtual)'},CALENDARIO.MES,MesID={1},CALENDARIO.MES_ANO=>}Distinct  MATRICULA)

,

IF(CALENDARIO.MES = 'fev', etc, etc etc...

Como já utilizo a variável no cálculo teria alguma outra forma de fazer?

14 Replies
fercas69
New Contributor II

Re: Visão Ano Atual x Ano Anterior

Para melhorar a explicação:

isto é uma expressão que calcula taxa de retenção sobre funcionários contratados....

entao preciso somar os ultimos 3 meses a partir do mes atual, ou seja janeiro soma Jan/2018 + Dez/2017 + Nov/2017.. esse é o calculo da taxa de retenção... mas tenho isso pra todos os meses do ano.....

Veja o codigo completo antes de eu iniciar o tratamento para trazer "Ano Atual" x "Ano Anterior":

IF(CALENDARIO.MES = 'jan',

Count(total{<ORIGEM.ORIGEM={'NCL'} ,GRUPO_ORIGINAL={'EAD','PRESENCIAL','COMUM'},

ORIGEM.ORIGEM={A},CALENDARIO.ANO={'$(eAnoAnterior)'},CALENDARIO.MES,MesID={11},CALENDARIO.MES_ANO=>}Distinct  COLABORADOR.MATRICULA)

+

Count(total{<ORIGEM.ORIGEM={'NCL'} ,GRUPO_ORIGINAL={'EAD','PRESENCIAL','COMUM'},

ORIGEM.ORIGEM={A},CALENDARIO.ANO={'$(eAnoAnterior)'},CALENDARIO.MES,MesID={12},CALENDARIO.MES_ANO=>}Distinct  COLABORADOR.MATRICULA)

+

Count(total{<ORIGEM.ORIGEM={'NCL'} ,GRUPO_ORIGINAL={'EAD','PRESENCIAL','COMUM'},

ORIGEM.ORIGEM={A},CALENDARIO.ANO={'$(eAnoAtual)'},CALENDARIO.MES,MesID={1},CALENDARIO.MES_ANO=>}Distinct  COLABORADOR.MATRICULA)

,

IF(CALENDARIO.MES = 'fev',

Count(total{<ORIGEM.ORIGEM={'NCL'} ,GRUPO_ORIGINAL={'EAD','PRESENCIAL','COMUM'},

ORIGEM.ORIGEM={A},CALENDARIO.ANO={'$(eAnoAnterior)'},CALENDARIO.MES,MesID={12},CALENDARIO.MES_ANO=>}Distinct  COLABORADOR.MATRICULA)

+

Count(total{<ORIGEM.ORIGEM={'NCL'} ,GRUPO_ORIGINAL={'EAD','PRESENCIAL','COMUM'},

ORIGEM.ORIGEM={A},CALENDARIO.ANO={'$(eAnoAtual)'},CALENDARIO.MES,MesID={1},CALENDARIO.MES_ANO=>}Distinct  COLABORADOR.MATRICULA)

+

Count(total{<ORIGEM.ORIGEM={'NCL'} ,GRUPO_ORIGINAL={'EAD','PRESENCIAL','COMUM'},

ORIGEM.ORIGEM={A},CALENDARIO.ANO={'$(eAnoAtual)'},CALENDARIO.MES,MesID={2},CALENDARIO.MES_ANO=>}Distinct  COLABORADOR.MATRICULA)

,

IF(CALENDARIO.MES = 'mar',

Count(total{<ORIGEM.ORIGEM={'NCL'} ,GRUPO_ORIGINAL={'EAD','PRESENCIAL','COMUM'},

ORIGEM.ORIGEM={A},CALENDARIO.ANO={'$(eAnoAtual)'},CALENDARIO.MES,MesID={3},CALENDARIO.MES_ANO=>}Distinct  COLABORADOR.MATRICULA)

+

Count(total{<ORIGEM.ORIGEM={'NCL'} ,GRUPO_ORIGINAL={'EAD','PRESENCIAL','COMUM'},

ORIGEM.ORIGEM={A},CALENDARIO.ANO={'$(eAnoAtual)'},CALENDARIO.MES,MesID={1},CALENDARIO.MES_ANO=>}Distinct  COLABORADOR.MATRICULA)

+

Count(total{<ORIGEM.ORIGEM={'NCL'} ,GRUPO_ORIGINAL={'EAD','PRESENCIAL','COMUM'},

ORIGEM.ORIGEM={A},CALENDARIO.ANO={'$(eAnoAtual)'},CALENDARIO.MES,MesID={2},CALENDARIO.MES_ANO=>}Distinct  COLABORADOR.MATRICULA)

,

IF(CALENDARIO.MES = 'abr',

Count(total{<ORIGEM.ORIGEM={'NCL'} ,GRUPO_ORIGINAL={'EAD','PRESENCIAL','COMUM'},

ORIGEM.ORIGEM={A},CALENDARIO.ANO={'$(eAnoAtual)'},CALENDARIO.MES,MesID={2},CALENDARIO.MES_ANO=>}Distinct  COLABORADOR.MATRICULA)

+

Count(total{<ORIGEM.ORIGEM={'NCL'} ,GRUPO_ORIGINAL={'EAD','PRESENCIAL','COMUM'},

ORIGEM.ORIGEM={A},CALENDARIO.ANO={'$(eAnoAtual)'},CALENDARIO.MES,MesID={3},CALENDARIO.MES_ANO=>}Distinct  COLABORADOR.MATRICULA)

+

Count(total{<ORIGEM.ORIGEM={'NCL'} ,GRUPO_ORIGINAL={'EAD','PRESENCIAL','COMUM'},

ORIGEM.ORIGEM={A},CALENDARIO.ANO={'$(eAnoAtual)'},CALENDARIO.MES,MesID={4},CALENDARIO.MES_ANO=>}Distinct  COLABORADOR.MATRICULA)

,

IF(CALENDARIO.MES = 'mai',

Count(total{<ORIGEM.ORIGEM={'NCL'} ,GRUPO_ORIGINAL={'EAD','PRESENCIAL','COMUM'},

ORIGEM.ORIGEM={A},CALENDARIO.ANO={'$(eAnoAtual)'},CALENDARIO.MES,MesID={3},CALENDARIO.MES_ANO=>}Distinct  COLABORADOR.MATRICULA)

+

Count(total{<ORIGEM.ORIGEM={'NCL'} ,GRUPO_ORIGINAL={'EAD','PRESENCIAL','COMUM'},

ORIGEM.ORIGEM={A},CALENDARIO.ANO={'$(eAnoAtual)'},CALENDARIO.MES,MesID={4},CALENDARIO.MES_ANO=>}Distinct  COLABORADOR.MATRICULA)

+

Count(total{<ORIGEM.ORIGEM={'NCL'} ,GRUPO_ORIGINAL={'EAD','PRESENCIAL','COMUM'},

ORIGEM.ORIGEM={A},CALENDARIO.ANO={'$(eAnoAtual)'},CALENDARIO.MES,MesID={5},CALENDARIO.MES_ANO=>}Distinct  COLABORADOR.MATRICULA)

,

IF(CALENDARIO.MES = 'jun',

Count(total{<ORIGEM.ORIGEM={'NCL'} ,GRUPO_ORIGINAL={'EAD','PRESENCIAL','COMUM'},

ORIGEM.ORIGEM={A},CALENDARIO.ANO={'$(eAnoAtual)'},CALENDARIO.MES,MesID={4},CALENDARIO.MES_ANO=>}Distinct  COLABORADOR.MATRICULA)

+

Count(total{<ORIGEM.ORIGEM={'NCL'} ,GRUPO_ORIGINAL={'EAD','PRESENCIAL','COMUM'},

ORIGEM.ORIGEM={A},CALENDARIO.ANO={'$(eAnoAtual)'},CALENDARIO.MES,MesID={5},CALENDARIO.MES_ANO=>}Distinct  COLABORADOR.MATRICULA)

+

Count(total{<ORIGEM.ORIGEM={'NCL'} ,GRUPO_ORIGINAL={'EAD','PRESENCIAL','COMUM'},

ORIGEM.ORIGEM={A},CALENDARIO.ANO={'$(eAnoAtual)'},CALENDARIO.MES,MesID={6},CALENDARIO.MES_ANO=>}Distinct  COLABORADOR.MATRICULA)

,

IF(CALENDARIO.MES = 'jul',

Count(total{<ORIGEM.ORIGEM={'NCL'} ,GRUPO_ORIGINAL={'EAD','PRESENCIAL','COMUM'},

ORIGEM.ORIGEM={A},CALENDARIO.ANO={'$(eAnoAtual)'},CALENDARIO.MES,MesID={5},CALENDARIO.MES_ANO=>}Distinct  COLABORADOR.MATRICULA)

+

Count(total{<ORIGEM.ORIGEM={'NCL'} ,GRUPO_ORIGINAL={'EAD','PRESENCIAL','COMUM'},

ORIGEM.ORIGEM={A},CALENDARIO.ANO={'$(eAnoAtual)'},CALENDARIO.MES,MesID={6},CALENDARIO.MES_ANO=>}Distinct  COLABORADOR.MATRICULA)

+

Count(total{<ORIGEM.ORIGEM={'NCL'} ,GRUPO_ORIGINAL={'EAD','PRESENCIAL','COMUM'},

ORIGEM.ORIGEM={A},CALENDARIO.ANO={'$(eAnoAtual)'},CALENDARIO.MES,MesID={7},CALENDARIO.MES_ANO=>}Distinct  COLABORADOR.MATRICULA)

,

IF(CALENDARIO.MES = 'ago',

Count(total{<ORIGEM.ORIGEM={'NCL'} ,GRUPO_ORIGINAL={'EAD','PRESENCIAL','COMUM'},

ORIGEM.ORIGEM={A},CALENDARIO.ANO={'$(eAnoAtual)'},CALENDARIO.MES,MesID={6},CALENDARIO.MES_ANO=>}Distinct  COLABORADOR.MATRICULA)

+

Count(total{<ORIGEM.ORIGEM={'NCL'} ,GRUPO_ORIGINAL={'EAD','PRESENCIAL','COMUM'},

ORIGEM.ORIGEM={A},CALENDARIO.ANO={'$(eAnoAtual)'},CALENDARIO.MES,MesID={7},CALENDARIO.MES_ANO=>}Distinct  COLABORADOR.MATRICULA)

+

Count(total{<ORIGEM.ORIGEM={'NCL'} ,GRUPO_ORIGINAL={'EAD','PRESENCIAL','COMUM'},

ORIGEM.ORIGEM={A},CALENDARIO.ANO={'$(eAnoAtual)'},CALENDARIO.MES,MesID={8},CALENDARIO.MES_ANO=>}Distinct  COLABORADOR.MATRICULA)

,

IF(CALENDARIO.MES = 'set',

Count(total{<ORIGEM.ORIGEM={'NCL'} ,GRUPO_ORIGINAL={'EAD','PRESENCIAL','COMUM'},

ORIGEM.ORIGEM={A},CALENDARIO.ANO={'$(eAnoAtual)'},CALENDARIO.MES,MesID={9},CALENDARIO.MES_ANO=>}Distinct  COLABORADOR.MATRICULA)

+

Count(total{<ORIGEM.ORIGEM={'NCL'} ,GRUPO_ORIGINAL={'EAD','PRESENCIAL','COMUM'},

ORIGEM.ORIGEM={A},CALENDARIO.ANO={'$(eAnoAtual)'},CALENDARIO.MES,MesID={7},CALENDARIO.MES_ANO=>}Distinct  COLABORADOR.MATRICULA)

+

Count(total{<ORIGEM.ORIGEM={'NCL'} ,GRUPO_ORIGINAL={'EAD','PRESENCIAL','COMUM'},

ORIGEM.ORIGEM={A},CALENDARIO.ANO={'$(eAnoAtual)'},CALENDARIO.MES,MesID={8},CALENDARIO.MES_ANO=>}Distinct  COLABORADOR.MATRICULA)

,

IF(CALENDARIO.MES = 'out',

Count(total{<ORIGEM.ORIGEM={'NCL'} ,GRUPO_ORIGINAL={'EAD','PRESENCIAL','COMUM'},

ORIGEM.ORIGEM={A},CALENDARIO.ANO={'$(eAnoAtual)'},CALENDARIO.MES,MesID={8},CALENDARIO.MES_ANO=>}Distinct  COLABORADOR.MATRICULA)

+

Count(total{<ORIGEM.ORIGEM={'NCL'} ,GRUPO_ORIGINAL={'EAD','PRESENCIAL','COMUM'},

ORIGEM.ORIGEM={A},CALENDARIO.ANO={'$(eAnoAtual)'},CALENDARIO.MES,MesID={9},CALENDARIO.MES_ANO=>}Distinct  COLABORADOR.MATRICULA)

+

Count(total{<ORIGEM.ORIGEM={'NCL'} ,GRUPO_ORIGINAL={'EAD','PRESENCIAL','COMUM'},

ORIGEM.ORIGEM={A},CALENDARIO.ANO={'$(eAnoAtual)'},CALENDARIO.MES,MesID={10},CALENDARIO.MES_ANO=>}Distinct  COLABORADOR.MATRICULA)

,

IF(CALENDARIO.MES = 'nov',

Count(total{<ORIGEM.ORIGEM={'NCL'} ,GRUPO_ORIGINAL={'EAD','PRESENCIAL','COMUM'},

ORIGEM.ORIGEM={A},CALENDARIO.ANO={'$(eAnoAtual)'},CALENDARIO.MES,MesID={9},CALENDARIO.MES_ANO=>}Distinct  COLABORADOR.MATRICULA)

+

Count(total{<ORIGEM.ORIGEM={'NCL'} ,GRUPO_ORIGINAL={'EAD','PRESENCIAL','COMUM'},

ORIGEM.ORIGEM={A},CALENDARIO.ANO={'$(eAnoAtual)'},CALENDARIO.MES,MesID={10},CALENDARIO.MES_ANO=>}Distinct  COLABORADOR.MATRICULA)

+

Count(total{<ORIGEM.ORIGEM={'NCL'} ,GRUPO_ORIGINAL={'EAD','PRESENCIAL','COMUM'},

ORIGEM.ORIGEM={A},CALENDARIO.ANO={'$(eAnoAtual)'},CALENDARIO.MES,MesID={11},CALENDARIO.MES_ANO=>}Distinct  COLABORADOR.MATRICULA)

,

IF(CALENDARIO.MES = 'dez',

Count(total{<ORIGEM.ORIGEM={'NCL'} ,GRUPO_ORIGINAL={'EAD','PRESENCIAL','COMUM'},

ORIGEM.ORIGEM={A},CALENDARIO.ANO={'$(eAnoAtual)'},CALENDARIO.MES,MesID={10},CALENDARIO.MES_ANO=>}Distinct  COLABORADOR.MATRICULA)

+

Count(total{<ORIGEM.ORIGEM={'NCL'} ,GRUPO_ORIGINAL={'EAD','PRESENCIAL','COMUM'},

ORIGEM.ORIGEM={A},CALENDARIO.ANO={'$(eAnoAtual)'},CALENDARIO.MES,MesID={11},CALENDARIO.MES_ANO=>}Distinct  COLABORADOR.MATRICULA)

+

Count(total{<ORIGEM.ORIGEM={'NCL'} ,GRUPO_ORIGINAL={'EAD','PRESENCIAL','COMUM'},

ORIGEM.ORIGEM={A},CALENDARIO.ANO={'$(eAnoAtual)'},CALENDARIO.MES,MesID={12},CALENDARIO.MES_ANO=>}Distinct  COLABORADOR.MATRICULA)

))))))))))))

preciso fazer o tratamento de "Ano Atual" x "Ano Anterior" sobre este código

o problema é que no codigo que calcula a taxa usa a variavel "eAnoAtual" e "eAnoAnterior".

qdo eu jogo no set analisis nao funciona.

criei 3 variaveis para receber os valores de Jan, Fev e Mar (criei so estes meses para testar)

e joguei no codigo:

= sum({<CALENDARIO.ANO={'$(eAnoAnterior)'}>}

IF(CALENDARIO.MES = 'jan', $(vADM90_Jan),

IF(CALENDARIO.MES = 'fev', $(vADM90_Fev),

IF(CALENDARIO.MES = 'mar', $(vADM90_Mar)))))

mas não está vindo o ano anterior... somente o ano atual... pra vir ano aterior eu tenho que selecionar o ano.

fercas69
New Contributor II

Re: Visão Ano Atual x Ano Anterior

Somente o valor do ano atual quando não tenho seleção feita. Preciso que quando não tiver seleção me mostre de acordo com a variavel de ano.

Employee
Employee

Re: Visão Ano Atual x Ano Anterior

Se seu requerimento for mostrar os valores dos últimos 3 meses, sugiro utilizar uma tabela AsOF (basta pesquisar aqui na comunidade)

A sua fórmula ficaria bem simples, algo do tipo

count(distinct {<AsOFFlag3Meses={1}>} COLABORADOR.MATRICULA)

fercas69
New Contributor II

Re: Visão Ano Atual x Ano Anterior

Bom dia Clever!
A ideia não é mostrar apenas os ultimos 3 meses, é mostrar o todos os meses com uma barra de ano atual e outra com ano anterior.somamos 3 meses para cada mês (isto faz parte do calculo da taxa de retenção onde pegamos o mês e olhamos para ele mais os outros dois meses anteriores).

A ideia é fazer o código abaixo funcionar, porém dentro das variáveis "vADM90_..." utilizamos a variavel "eAnoAnterior". Parece que o QV está pirando pois uso esta variavel de ano dentro das variáveis "vADM90_..." e também por fora do código.

= sum({<CALENDARIO.ANO={'$(eAnoAnterior)'}>}

IF(CALENDARIO.MES = 'jan', $(vADM90_Jan),

IF(CALENDARIO.MES = 'fev', $(vADM90_Fev),

IF(CALENDARIO.MES = 'mar', $(vADM90_Mar)))))

Employee
Employee

Re: Visão Ano Atual x Ano Anterior

Estou tentando te ajudar, você está indo pelo caminho mais difícil.

Reveja sua modelagem

fercas69
New Contributor II

Re: Visão Ano Atual x Ano Anterior

Ahhhh entendi.... vc fala pra eu seguir por esse caminho pq assim eu não preciso usar a variavel de ano, certo?

Re: Visão Ano Atual x Ano Anterior

Leia a parte do AsOf Table, vai te dar um norte bom.

No qvw em anexo tem alguns exemplos de utilização (que foram usados na apresentação)

fercas69
New Contributor II

Re: Visão Ano Atual x Ano Anterior

Obrigado Yuri.

Vou dar uma estudada nisso aqui.

fercas69
New Contributor II

Re: Visão Ano Atual x Ano Anterior

Fiz alguns testes aqui mas ainda não consegui aplicar a solução. De qq forma obrigado pela ajuda!!!