Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
AllanCoinaski
Contributor II
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
1 Solution

Accepted Solutions
mbrenzan
Contributor III
Contributor III

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;

Coordenador de BI - Hospital Santa Casa de Maringá

View solution in original post

9 Replies
rodrigo_rocha
Creator
Creator

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

 

 

RafaMartins
Creator II
Creator II

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

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

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.

RafaMartins
Creator II
Creator II

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

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

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

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

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;

Coordenador de BI - Hospital Santa Casa de Maringá