Qlik Community

Qlik Brasil

Welcome to the group for Brazil users. .All discussions will be in Portuguese.

Highlighted
AllanCoinaski
New Contributor II

Contagem com base em outra coluna

Olá,
 

Galera, sou novo no Qlik e estou aprendendo, mas cheguei a um problema que não estou conseguindo resolver, que é o seguinte:

Tenho uma coluna chamada Atendimento e outra com Itens_Atendimento com os itens usados no atendimento.

Exemplo:

AtendimentoItens_Atendimento
1010102019
1050044426
1810102019
1860000955

 

Agora preciso classificar esses atendimentos de acordo com a regra:

Quando o atendimento conter o item 10102019 classificar com Cirúrgico

Quando o atendimento conter o item 10102019 e o 60000955 classificar com Clínico

O resultado deve ser a quantidade de Cirúrgico e Clínico, exemplo:

Contagem CirúrgicoContagem Clínico
4438
Tags (1)
1 Solution

Accepted Solutions
mbrenzan
New Contributor III

Re: Contagem com base em outra coluna

Bom dia,

Acredito que tenha entendido a sua necessidade.

Verifique se assim resolve seu problema. Em anexo o exemplo.

TABELA:
LOAD * INLINE
[
Atendimento, Itens_Atendimento
10, 10102019
10, 50044426
18, 10102019
18, 60000955
];

LEFT JOIN (TABELA)
LOAD Atendimento,
Count(If(Itens_Atendimento ='60000955',Itens_Atendimento)) AS TESTE
RESIDENT TABELA
GROUP BY Atendimento;

LEFT JOIN (TABELA)
LOAD Atendimento,
If(TESTE>0,'Clinico', 'Cirurgico') AS TIPO_ATEND
RESIDENT TABELA;

View solution in original post

9 Replies
rodrigo_rocha
Contributor

Re: Contagem com base em outra coluna

Olá Allan!!

Já experimentou fazer com Set Analysis em cada medida?

Ficaria dessa forma:

count({<itens_atendimento={10102019}>}atendimento)

Assim ele contaria apenas o atendimento que contem este item.

At.

Rodrigo Ramos Rocha

 

 

RafaWilder
Contributor

Re: Contagem com base em outra coluna

Bom dia Amigo,

Dois pontos que precisamos ver. Primeiro seu modelo de dados trás a tabela desta forma mesmo com um valor de procedimentos realizados por item da maneira que você mostrou ai?

Outra coisa, não sei se entendi direito más o diz que quer definir como clinico quando o item for 10102019 e o 60000955 juntos, correto? se for pelo que mostrou ai de seus dados não á como definir  que os itens foram feitos ao mesmo tempo.

Caso eu apenas tenho entendido errado e vc queira apenas somar os atendimentos nos dois itens juntos, você pode criar um KPI com a seguinte expressão para determinar o numero de clínicos e retirando o '60000955' você obterá o numero de cirúrgicos, caso eu tenha entendido correto no que disse acima terremos que fazer de outra forma.

sum({<Itens_Atendimento={'10102019','60000955'}>}Atendimento)
AllanCoinaski
New Contributor II

Re: Contagem com base em outra coluna

Olá Rodrigo,

Porém quando ele conter o item 10102019 e o 60000955  ao mesmo tempo ele deve classificar como clínico, então fiz o seguinte:

Count(DISTINCT{<itens_atendimento={'60000955','10102019'}>}atendimento)

Seguindo o mesmo exemplo:

AtendimentoItens_Atendimento
1010102019
1050044426
1810102019
1860000955

 

Ele trouxe tanto o atendimento 10, como o 18 como clínico. Oque eu precisava era que apenas o atendimento 18 fosse classificado com clínico, pois teve o 10102019 e 60000955 juntos.

AllanCoinaski
New Contributor II

Re: Contagem com base em outra coluna

Olá Rafa,

O exemplo demostrado é exatamente igual a tabela. Sobre a segunda pergunta, identificamos que o item 10102019 e o 60000955 foram feitos juntos pois o número de atendimento é igual.

Então seguindo no mesmo exemplo:

AtendimentoItens_Atendimento
1010102019
1050044426
1810102019
1860000955

 

No atendimento 18 ele fez o item 10102019 e o item 60000955, sendo assim ele é clínico.

No atendimento 10 ele fez o item 10102019 e não fez o 60000955, sendo assim ele é cirúrgico.

RafaWilder
Contributor

Re: Contagem com base em outra coluna

Certo, então o Atendimento é o "ID" da sua tabela, tinha entendido que era o numero de atendimentos realizados.

Não sei como é o critério para determinar o que é clinico se é apena os itens 6000955 ou se pode ter outras combinações alem dessa que deu de exemplo.

Como nesse exemplo que deu o que vai determina o tipo do atendimento é o itens 60000955 vc pode criar um campo para marcar os itens como clinico ou cirúrgico, marcando o 60000955 como clinico e realizando um

Cont({<Tipo={'clinico'}>} distinct Atendimento) 

No caso desse exemplo a quantidade de atendimento clinico seria 1, pois apenas no atendimento 18 aparece o item 60000955.

para criar o campo ficaria algo assim:

T1:
Load*Inline
[Atendimento, Itens_Atendimento
10, 10102019
10, 50044426
18, 10102019
18, 60000955]
(delimiter is ',');

Join Load
*,
if(Itens_Atendimento ='60000955','clinico','cirúrgico') as Tipo
Resident T1;

rodrigo_rocha
Contributor

Re: Contagem com base em outra coluna

Olá Allan!

Nesse caso você pode somar os dois count.

Tente dessa maneira:

Count(DISTINCT{<itens_atendimento={'60000955'}>}atendimento) + Count(DISTINCT{<itens_atendimento={'10102019'}>}atendimento)

Rodrigo Ramos Rocha

 

AllanCoinaski
New Contributor II

Re: Contagem com base em outra coluna

Rafa, O atendimento 18 apenas ele seria clinico e apenas o 10 seria cirúrgico.

No momento o exemplo esta retornando assim:

Cirúrgico 2
Clinico 1

 

Deveria retornar assim: 

Cirurgico 1
Clinico 1

 

Obrigado pela ajuda até então!

AllanCoinaski
New Contributor II

Re: Contagem com base em outra coluna

Rodrigo, desta maneira ele conta todos os atendimentos com 60000955 e todos com 10102019.

Ele retorna 2 para clinico e 1 para cirúrgico.

Deveria contar 1 para clinico e 1 para cirúrgico

 

 

mbrenzan
New Contributor III

Re: Contagem com base em outra coluna

Bom dia,

Acredito que tenha entendido a sua necessidade.

Verifique se assim resolve seu problema. Em anexo o exemplo.

TABELA:
LOAD * INLINE
[
Atendimento, Itens_Atendimento
10, 10102019
10, 50044426
18, 10102019
18, 60000955
];

LEFT JOIN (TABELA)
LOAD Atendimento,
Count(If(Itens_Atendimento ='60000955',Itens_Atendimento)) AS TESTE
RESIDENT TABELA
GROUP BY Atendimento;

LEFT JOIN (TABELA)
LOAD Atendimento,
If(TESTE>0,'Clinico', 'Cirurgico') AS TIPO_ATEND
RESIDENT TABELA;

View solution in original post