Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
guiborlenghi
New Contributor III

Condição de Valor DIFERENTE

Bom dia a todos,

Qual símbolo eu devo usar para criar uma condição de valores diferentes?

Já tentei usar "-=", "<>", "!=", mas nenhum deles dá certo.

Obrigado!

1 Solution

Accepted Solutions
jonas_rezende
Valued Contributor

Re: Condição de Valor DIFERENTE

Gui Borlenghi.

O seu campo tem data e hora. Por isso, o resultado é falso na condição if().

Você pode tratá-lo da seguinte forma:

if(Date(SubField([Dta Entrada],' ',1)) <> Date(SubField([Dta Saida],' ',1))

     , 1

      ,0

)                                             as Saldo


Veja o arquivo anexo.


Espero que ajude!

11 Replies
jonas_rezende
Valued Contributor

Re: Condição de Valor DIFERENTE

Gui Borlengui.

Tudo depende do local e função que está utilizando. Se for em if() é o operador lógico '<>'. Caso esteja usando em uma função de agregação e queira excluir um dado de um conjunto é '-='.

Qual é o seu objetivo?

[]s,

Jonas Melo.

guiborlenghi
New Contributor III

Re: Condição de Valor DIFERENTE

Supondo que tenho a seguinte tabela:

            DT_Entrada | DT_Saida | Saldo

Carro1        21/05            21/05

Carro2        20/05            22/05

Carro3        21/05            22/05

Quero acrescentar uma coluna que me traga a contagem dos valores se DT_Entrada e DT_Saida forem diferentes.

Como ficaria?

=if(DT_Entrada"simbolo?"DT_Saida,count(Saldo),0)

Not applicable

Re: Condição de Valor DIFERENTE

Gui, fica assim:


=if(DT_Entrada<>DT_Saida,count(Saldo),0)

jonas_rezende
Valued Contributor

Re: Condição de Valor DIFERENTE

Vejo que para a dimensão CarroN, falta o nome da coluna, espero que em seu modelo de dados não esteja assim.

A condição seria. Ex.:

Load

Modelo_Carro,

DT_Entrada,

DT_Saida,

if(DT_Entrada <> DT_Saida

     ,1

     ,0

)                                  as Saldo

from

<NomeTabela>;

Lembre-se que os campos de data precisam estar em um formato #Date().

Com isso, basta você usar Sum(Saldo) na expressão ou em um objeto TextBox para contar.

Espero ter ajudado!

guiborlenghi
New Contributor III

Re: Condição de Valor DIFERENTE

Eu tentei com essa expressão que você me passou, mas ele traz o resultado como "falso".

O problema é que estou trabalhando em cima de uma planilha Excel que é utilizada por diversas pessoas, estou achando que pode conter algum erro de informação na planilha, pois acredito que não seguem um padrão para todos os campos.

Eu consegui fazer uma expressão que ele trouxe a contagem do Saldo correto, porém, estragou o meu filtro.

Quando coloco para filtrar qual foi a movimentação do dia 03/05, ele me trás o valor no dia 02/05, pois seus valores estão vinculados na planilha.

Não consigo juntar as duas informações, ou o filtro funciona, ou o valor vem certo.

Not applicable

Re: Condição de Valor DIFERENTE

Consegue postar uma amostra dos seus dados? Assim fica mais fácil de ajudar.

guiborlenghi
New Contributor III

Re: Condição de Valor DIFERENTE

Luana, segue abaixo tabela completa:

qlik.png

Como mostra no filtro, selecionando o dia 02/05 ele está me trazendo os valores corretos, porém, os valores mostrados na coluna "Saldo Dia" são referentes ao dia 03/05.


qlik2.png

E conforme tabela acima, tenho veículos que entraram e saíram no mesmo dia (estes estão sendo desconsiderados na contagem) e os veículos que entraram dia 02/05 e saíram dia 03/05 (são os considerados Saldo Dia).

Mas este saldo refere-se ao dia 03/05, não ao dia 02/05. Acredito que na hora de filtrar, ele está puxando a data de entrada primeiro e contando esses valores. Mas preciso que esses valores sejam vinculados à data de saída.

maiconmello
Contributor III

Re: Condição de Valor DIFERENTE

Boa tarde,

Verifica se os dois campos estao no mesmo formato.

As vezes um da em formato Data e outro em char.

força no script.

Atenciosamente

jonas_rezende
Valued Contributor

Re: Condição de Valor DIFERENTE

Gui Borlenghi.

O seu campo tem data e hora. Por isso, o resultado é falso na condição if().

Você pode tratá-lo da seguinte forma:

if(Date(SubField([Dta Entrada],' ',1)) <> Date(SubField([Dta Saida],' ',1))

     , 1

      ,0

)                                             as Saldo


Veja o arquivo anexo.


Espero que ajude!