Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Saudações galera!!
Tenho a tabela abaixo com os seguintes dados:
Onde esta contornado em vermelho, é uma coluna que fiz com uma formula informando se o período esta vencido ou não.
O que eu preciso é contar esta coluna com cada um dos registros, ou seja, informar quantos estão OK, em Atenção e Vencido. Neste exemplo acima seria o correto informar a quantidade abaixo:
Atenção: 9
OK: 10
Vencido: 6
Pode parecer uma duvida simples mas já tentei de tudo por aqui!! Poderiam me ajudar por favor?
Rodrigo Ramos Rocha
Vamos tentar primeiro com essa para "Vencidos"
=Sum(
Aggr(
If(
today()-max(avaliacao_gsd_data)-60 > 0 AND
Today()-admissao_data > 90
,1,0),
funcionario_cpf
)
)
Poderia dar mais informações?
Pelo menos a expressão que usou para calcular
Bom dia Rodrigo,
Considere o seguinte script:
CONTAGEM:
LOAD
*,
If(DIAS_VENCER>=0,'VENCIDO',If(DIAS_VENCER<=-15,'OK','ATENÇÃO')) AS VERIFICADOR;
/*AQUI EXECUTO O TESTE UTILIZANDO A REGRA:
DIAS PARA VENCER -> MENOR OU IGUAL A -15 = OK;
DIAS PARA VENCER -> MAIOR OU IGUAL A 0= VENCIDO;
DIAS PARA VENCER -> MAIOR QUE -15 E MENOR QUE 0 = ATENÇÃO;
*/
LOAD * Inline [
COD_PESSOA,DIAS_VENCER
1,-8
2,0
3,15
4,-5
5,-2
6,4
7,-20
]
Imaginando que no teu caso seja possível utilizar essa verificação direto no script. Nesse caso, bastaria aplicar as seguintes fórmulas nos KPI's (ou objetos que você julgue melhor):
ATENÇÃO:
COUNT({<VERIFICADOR={'ATENÇÃO'}>}distinct COD_PESSOA)
OK:
COUNT({<VERIFICADOR={'OK'}>}distinct COD_PESSOA)
VENCIDOS:
COUNT({<VERIFICADOR={'VENCIDO'}>}distinct COD_PESSOA)
RESULTADO:
Blz Clever!! Peço desculpas pela falta de informações.
A formula que eu utilizei foi a seguinte:
if(Today()-admissao_data > '90',
if(today()-max(avaliacao_gsd_data)-60 > 0, 'VENCIDO',
if(today()-max(avaliacao_gsd_data)-60 > -15, 'ATENÇÂO', 'OK')),
if(today()-max(avaliacao_gsd_data)-30 > 0, 'VENCIDO',
if(today()-max(avaliacao_gsd_data)-30 > -15, 'ATENÇÂO', 'OK')))
O primeiro IF esta reconhecendo os funcionarios que não estão mais em experiencia, ou seja, os que tem mais de 90 dias de empresa. Assim ele entra em outro IF no qual ele pega a ultima data de avaliação (por isso da função MAX) e diminui por 60, pois é a quantidade de dias que é preciso realizar a avaliação, de 2 em 2 meses. Caso o resultado for maior que 0 significa que o periodo ja passou e esta vencido o tempo de realização, caso seja maior que -15 entra em um periodo de atenção para programar a avaliação caso contrario, esta OK.
Caso o funcionário ainda tenha um contrato de experiencia, a unica diferença é a subtração da ultima data de avaliação que ao invés de 60 seria 30, pois a avaliação é realizada de mês em mês.
Desde já agradeço!!
Bom e qual o nome do campo do funcionario?
Você precisa de três formulas, correto? vai colocar isso onde?
Olá Thiago!!
Já tentei colocar esta condição diretamente no script, porém acusa um erro na hora de executar pelo fato de ter a função MAX() conforme abaixo:
if(Today()-admissao_data > '90',
if(today()-max(avaliacao_gsd_data)-60 > 0, 'VENCIDO',
if(today()-max(avaliacao_gsd_data)-60 > -15, 'ATENÇÂO', 'OK')),
if(today()-max(avaliacao_gsd_data)-30 > 0, 'VENCIDO',
if(today()-max(avaliacao_gsd_data)-30 > -15, 'ATENÇÂO', 'OK')))
Eu preciso dessa função, pois ai o qlik pegaria a ultima data de avaliação.
Teria outra maneira de pegar esta data com outra função??
Rodrigo,
Você cria a coluna "Dias Para Vencer" no script?
Não entendi Clever. É preciso do nome do campo do Funcionario?
Irei utilizar essas formulas em um KPI para cada, mostrando a quantidade.
Sim, o nome do campo do funcionario
Considerando que você tenha criado a coluna Dias Para Vencer no script...
Pode usar então direto no set analysis o seguinte:
ATENÇÃO:
COUNT({<DIAS_VENCER={"< 0 > -15"}>}distinct COD_PESSOA)
OK:
COUNT({<DIAS_VENCER={"<=-15"}>}distinct COD_PESSOA)
VENCIDOS:
COUNT({<DIAS_VENCER={">=0"}>}distinct COD_PESSOA)
Qualquer dúvida sobre Set Analysis:
Manual Set Analysis Completo em Português BR
Abs e Sucesso!