Skip to main content
Announcements
NEW: Seamless Public Data Sharing with Qlik's New Anonymous Access Capability: TELL ME MORE!
cancel
Showing results for 
Search instead for 
Did you mean: 
guisato001
Contributor III
Contributor III

Exclusão com Set Anaysis

Bom dia!

Montei aqui um Set Analysis conforme imagem abaixo

=Count({<Acao={'Tentativa de login sem sucesso'},SITUACAO={'A'},Matricula=E({"$=Count({<tela={'Principal'},Acao={'Logou'}>} Matricula)>0"})>} DISTINCT Matricula)

O objetivo dela é contar as  Matriculas que tiveram 'Tentativa de login sem sucesso' mas excluir da contagem a matriculas que tiveram a Tela 'Principal' e a Ação 'Logou', porque eles colocaram a senha errada ou estavam com conexão instável e depois conseguiram logar. 

 Quando eu coloco sem a exclusão da o mesmo resultado, mostrando que a exclusão não está funcionando

=Count({<Acao={'Tentativa de login sem sucesso'},SITUACAO={'A'}>} DISTINCT NomeUsuario)

 

Já testei

=Count({<Acao={'Tentativa de login sem sucesso'},SITUACAO={'A'},Matricula-=({"Count({<tela={'Principal'},Acao={'Logou'}>} Matricula)>0"})>} DISTINCT NomeUsuario)

=Count({<Acao={'Tentativa de login sem sucesso'},SITUACAO={'A'},Matricula=-({"Count({<tela={'Principal'},Acao={'Logou'}>} Matricula)>0"})>} DISTINCT NomeUsuario)

e deram o mesmo valor

Alguém sabe o que está errado?

 

Grato

1 Solution

Accepted Solutions
mbrenzan
Contributor III
Contributor III

Gui,

Não sei se é a maneira mais prática, mas resolvi adicionando uma tabela auxiliar armazenando todos que tem a condição Logou + Principal, depois criei o set analysis excluindo os que estão na tabela auxiliar.

Veja se o anexo te resolve.

Coordenador de BI - Hospital Santa Casa de Maringá

View solution in original post

11 Replies
Gabriel_Fernandes
Contributor III
Contributor III

Bom dia,

você chegou a testar E({"$=Count({<tela={'Principal'},Acao={'Logou'}>} Matricula)>0"}) fora desse set analysis?

se não me engano, quando é utilizado função dentro do set analysis, não precisa informar o $

mbrenzan
Contributor III
Contributor III

Boa tarde,

Veja se isso resolve:

=Count(DISTINCT {<Acao={'Tentativa de login sem sucesso'},SITUACAO={'A'}>} IF(tela<>'Principal' and Acao<>'Logou',NomeUsuario))

Coordenador de BI - Hospital Santa Casa de Maringá
guisato001
Contributor III
Contributor III
Author

Boa tarde!

Gabriel, 

tentei sim e quando eu coloquei ele considerou apenas tela={'Principal'}.

Quando eu tento mostrar que quero que seja excluído apenas os que tela={'Principal'},Acao={'Logou'} não consigo. Como se ele não lesse a segunda condição.

Grato

guisato001
Contributor III
Contributor III
Author

Boa tarde!

Mbrenzan, 

na verdade não funciona. Fala que existe um erro.
Eu não conhecia  a utilização de <> dentro do Qlikview. Vou dar uma pesquisada.

obrigado

mbrenzan
Contributor III
Contributor III

É que quando você usa o diferente no SetAnalysis (Frontend) é com operador lógico '-=' quando é no IF ou no Load (Backend) o operador lógico é o "<>".

Como escrevi rapidão, não testei, mas achei o que estava errado. Use essa expressão abaixo e verifique no anexo se resolve o problema.

=Count(DISTINCT {<Acao={'Tentativa de login sem sucesso'},SITUACAO={'A'}>} 
IF(tela<>'Principal' and Acao<>'Logou',NomeUsuario))

Posta depois os resultados e caso tenha resolvido marque como Resolvido pra mais alguem utilizar no futuro.

Coordenador de BI - Hospital Santa Casa de Maringá
Gabriel_Fernandes
Contributor III
Contributor III

Experimente assim então:

Matricula = E({<tela={'Principal'},Acao={'Logou'}>} Matricula)

se você só quer excluir as matriculas que se encaixem nesse filtro, não precisa fazer aquela função. o E já serve como uma especie de filtro, excluindo os resultados  desses parametros.

ou seja : "não traga as matriculas que  passaram na tela principal, e logaram.

guisato001
Contributor III
Contributor III
Author

MBrenzan

ficou bem claro a sua explicação, obrigado, infelizmente trouxe o mesmo resultado dos outros testes

mbrenzan
Contributor III
Contributor III

Manda um exemplo da sua base com alguns registros que deveriam trazer e alguns que nao deveriam, pois fiz a carga conforme a tabela abaixo e não consegui de fato entender qual registro deveria trazer qual nao deveria.

 

TABELA:
LOAD * INLINE [
    Acao, Situacao, NomeUsuario, tela, Matricula
    Logou, A, User_1, Principal, 122
    Tentativa de Login sem sucesso, A, User_3, Outra, 321
    Tentativa de Login sem sucesso, A, User_1, Outra, 122
    Tentativa de Login sem sucesso, A, User_10, Outra, 443
    Tentativa de Login sem sucesso, A, Usero_8, Outra, 342
    Tentativa de Login sem sucesso, A, User_2, Outra, 221
    Logou, A, User_2, Principal, 221
];
Coordenador de BI - Hospital Santa Casa de Maringá
guisato001
Contributor III
Contributor III
Author

Criei um Arquivo mostrando exatamente o que eu preciso

seria para mostrar apenas os clientes B,C,D,G 

Grato