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

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
Contributor III
Contributor III
Author

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
Contributor III
Contributor III
Author

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.

Clever_Anjos
Employee
Employee

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
Contributor III
Contributor III
Author

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)))))

Clever_Anjos
Employee
Employee

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

Reveja sua modelagem

fercas69
Contributor III
Contributor III
Author

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

nicolett_yuri

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
Contributor III
Contributor III
Author

Obrigado Yuri.

Vou dar uma estudada nisso aqui.

fercas69
Contributor III
Contributor III
Author

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