Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Cálculo. count x sum

Pessoal, preciso da ajuda de vocês.

Com esse cálculo:

se o semestre <= 2051.1 ele conta qtd alunos contratados e / pelo total de alunos.

se o semestre >= 2015.2, ele conta qtd de alunos contratados e / pelo total de vagas.

Como fazer esse cálculo ?

num((count(distinct if(SEMESTRE <= '2015.1' and SITUACAO_ADIT = 'Contratado',CPF))

                  /

count(distinct if(SEMESTRE <= '2015.1',CPF))),'##.##%')

        or

num(count(distinct if(SEMESTRE >= '2015.2' and SITUACAO_ADIT = 'Contratado',CPF))

                 /

sum(if(SEMESTRE >= '2015.2',VAGASOFERTADAS)),'##.##%') 

Labels (6)
17 Replies
mario_sergio_ti
Partner - Specialist
Partner - Specialist

Amigo, retira o SEMESTRE={">= 2015.2"} para testar, creio que o problema está aí, como está sendo tratado o 2015.2, pois pode estar sendo avaliado como texto e não número, no IF() provável que esteja sendo avaliado em ordem alfabética;

Tem como você me passar o dados para testar?

Cria os campos SEMESTRE , SITUACAO_ADIT , VAGASOFERTADAS, CPF e exporte para uma planilha

Se preferir esconder o CPF, faça isso Hash128(CPF) na Dimensão

Eu uso QlikSense também;

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
Not applicable
Author

Meu amigo, segue uma pequena amostragem das 2 bases.

mario_sergio_ti
Partner - Specialist
Partner - Specialist

Amigo

Resolução:

Num(

    Count({<SITUACAO_ADIT={'Contratado'} >} Distinct CPF)

    /

    (

          Count({<SEMESTRE_NUM={"<=20161"}, SITUACAO_ADIT={'Contratado'} >} Distinct CPF)

          +

          Sum({<SEMESTRE_NUM={">=20162"} >} VAGASOFERTADAS)

    )

,'##.##%')

No script inclui nas tabelas:

PurgeChar([SEMESTRE],'.') as 'SEMESTRE_NUM',   

A tabela que contém o campo VAGASOFERTADAS não tem relação com SITUACAO_ADIT, então removi da expressão.

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
Not applicable
Author

Meu amigo, deu certo pro numero de vagas(>=2015.2), mas pra <= 2015.1 não deu, a conta é qtd cpf situacao_adit = Contratado / total de alunos, independente da situacao_adit. pro semestre <= 2015.1

Como fixou lá em cima Count({<SITUACAO_ADIT={'Contratado'} >} Distinct CPF)   ele está dando 100% pra todos abaixo de <=20151

Existe alguma outra maneira ?

mario_sergio_ti
Partner - Specialist
Partner - Specialist

Amigo;

Estranho, o meu não deu 100%, segue em anexo;

Mas já que não pode ser SITUAÇÃO_ADIT='Contratado', vejo que seja só remover;

Num(

    Count({<SITUACAO_ADIT={'Contratado'} >} Distinct CPF)

    /

    (

          Count({<SEMESTRE_NUM={"<=20151"} >} Distinct CPF)

          +

          Sum({<SEMESTRE_NUM={">=20152"} >} VAGASOFERTADAS)

    )

,'##,##%')

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
Not applicable
Author

Bom dia, meu amigo!

Retirei o campo SITUAÇÃO_ADIT='Contratado', como dito por você e funcionou.

Muitíssimo obrigado pela ajuda, eu tenho que aprender a fazer por {} ao invés de IF

Você tem algum material ?

Bom final de semana irmão!

mario_sergio_ti
Partner - Specialist
Partner - Specialist

Que ótimo amigo, conseguimos;

No grupo tem um documento interessante: Manual Set Analysis Completo em Português BR

Utilizar Set Analysis é mais performático e apresenta expressões mais limpas do que com IF()

Grande abraço.

Consultor certificado | Quem compartilha, aprende!
https://www.linkedin.com/in/mariosergioti
Not applicable
Author

Show!

Obrigadão:)