Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
victorfermi
New Contributor III

Omitir resultados = 0

Pessoal Boa tarde.

Estou tendo uma dificuldade bastante simples creio eu.

Eu tenho uma tabela dinâmica com os seguintes campos:

A minha dificuldade está em exibir somente o campo divergência que for diferente de 0.

Já coloquei o flegado omitir 0 e nulos.

E além disso eu fiz um if que não funcionou:

IF (( FINANCEIRO - CONTABIL_SS_TRA - CONTABIL_SS_OFF) <> 0 ,

(FINANCEIRO - CONTABIL_SS_TRA - CONTABIL_SS_OFF))

Também não obtive sucesso.

Por favor preciso de ajuda,

Obrigado

Tags (1)
1 Solution

Accepted Solutions
mauroponte
Contributor II

Re: Omitir resultados = 0

Vitor,

Tente usar uma condicional nas demais expressões para zerá-las, tipo:

if(Divergencia=0,0,sum(Expressao1))

Isso aliado ao parametro para nao exibir valores zeros pode resolver seu problema.

Estou anexando um QVW de exemplo. Analise as difenrenças entra as tabelas e as expressões da tabela Com condicional na expressão.

Espero ter ajudado.

33 Replies

Re: Omitir resultados = 0

Victor, o omitir zero só funciona se todas as expressões tiverem o resultado 0, mas no seu caso isso não ocorre devido a, na mesma linha, existirem valores diferentes de zero para as outras expressões.

Para omitir essas linhas, você deve adicionar a condicional de verificação da coluna em todas as expressões.

victorfermi
New Contributor III

Re: Omitir resultados = 0

Yuri, muito obrigado.

Eu já coloquei como condicional o IF e mesmo assim não tive sucesso.

Porem ao invés de usar o nome do campos usei as expressões para o resultado:

if(((sum(saldo)) -

((sum( {$<DIG_STATUS= {'(TRA)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(TRA)'} >}SS_Credito )) -

(sum( {$<DIG_STATUS= {'(OFF)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(OFF)'} >}SS_Credito )))) <> 0.00,

((sum(saldo)) -

((sum( {$<DIG_STATUS= {'(TRA)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(TRA)'} >}SS_Credito )) -

(sum( {$<DIG_STATUS= {'(OFF)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(OFF)'} >}SS_Credito )))))

Também não consegui.

Além dessa tentativa eu fiz uma outra dessa forma:

Além de estar com o mesmo if da parte superior também está flegado o campo omitir o 0, porém sem sucesso.

Obrigado Yuri.

MVP
MVP

Re: Omitir resultados = 0

Se colocar para mostrar mais casas decimais deve aparecer alguma coisa, tipo 0.0000001 (creio eu)

se colocar um

round(

    if(((sum(saldo)) -

     ((sum( {$<DIG_STATUS= {'(TRA)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(TRA)'} >}SS_Credito )) -

     (sum( {$<DIG_STATUS= {'(OFF)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(OFF)'} >}SS_Credito )))) <> 0.00,

     ((sum(saldo)) -

     ((sum( {$<DIG_STATUS= {'(TRA)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(TRA)'} >}SS_Credito )) -

     (sum( {$<DIG_STATUS= {'(OFF)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(OFF)'} >}SS_Credito )))))

  ,0.001)

não resolve?

Em tempo de carga não seria melhor, se for zero colocar null()  ?

(Embora o null() neste caso vai mudar o resultado de expressões como o avg() por exemplo que colocaria o zero em uma media mas não entra o null()). 

victorfermi
New Contributor III

Re: Omitir resultados = 0

Ola boa tarde.

Muito Obrigado pela resposta.

Eu fiz o Round e não funcionou.

Quando coloco para exibir as casas decimais apresenta dessa maneira:

OBRIGADO

mauroponte
Contributor II

Re: Omitir resultados = 0

Vitor,

Tente usar uma condicional nas demais expressões para zerá-las, tipo:

if(Divergencia=0,0,sum(Expressao1))

Isso aliado ao parametro para nao exibir valores zeros pode resolver seu problema.

Estou anexando um QVW de exemplo. Analise as difenrenças entra as tabelas e as expressões da tabela Com condicional na expressão.

Espero ter ajudado.

victorfermi
New Contributor III

Re: Omitir resultados = 0

Mauro muito obrigado por responder.

Vamos lá

Eu tentei usando somente o nome da coluna:

if(Divergencia =0,0,sum(saldo))

E tentei também usando a expressão que calcula a divergência:

if(sum(saldo) -  
(sum( {$<DIG_STATUS= {'(TRA)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(TRA)'} >}SS_Credito )) - 

   (sum( {$<DIG_STATUS= {'(OFF)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(OFF)'} >}SS_Credito ))=0,0,

   sum( {$<JE_SOURCE= {'(323)'} >}GL_debitoss )  - sum( {$<JE_SOURCE= {'(323)'} >}GL_Creditoss ) )

Não tive sucesso com nenhuma das duas maneiras.

Obrigado

mauroponte
Contributor II

Re: Omitir resultados = 0

Victor, voce teria como disponibilizar o QVW para eu tentar ajudar?

mauroponte
Contributor II

Re: Omitir resultados = 0

Victor,

alterei um pouco a expressão da divergencia para não ser o valor carregado no script, mas uma expressão resultante de uma formula entre os valores das demais expressões.

Divergencia = expressão1 + Expressão2 - Exressão3, assim fica mais parecido com seu exemplo.

Formula da divergencia:

sum(Expressao1)+sum(Expressao2)-sum(Expressao3)

Formulas das 3 expressões na tabela que omite divergencia zero:

if(sum(Expressao1)+sum(Expressao2)-sum(Expressao3)=0,0,sum(Expressao1))

if(sum(Expressao1)+sum(Expressao2)-sum(Expressao3)=0,0,sum(Expressao2))

if(sum(Expressao1)+sum(Expressao2)-sum(Expressao3)=0,0,sum(Expressao3))

Lembre de marcar o parametro para nao mostrar valores zerados.

Espero que agora consiga atender a dua necessidade.

Segue tambem o QVW alterado.

victorfermi
New Contributor III

Re: Omitir resultados = 0

Mauro infelizmente não estou conseguindo postar um qvw, por causa do tamanho.

Agradeço muito sua ajuda.

Vou colocar um print da minha tabela dinâmica.

Calculo Campo Financeiro:

if(sum(saldo)+

sum( {$<DIG_STATUS= {'(TRA)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(TRA)'} >}SS_Credito )-

sum( {$<DIG_STATUS= {'(OFF)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(OFF)'} >}SS_Credito )=0,0,

sum(saldo))

CONTABIL_SS_TRA:

if(sum(saldo)-

sum( {$<DIG_STATUS= {'(TRA)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(TRA)'} >}SS_Credito )-

sum( {$<DIG_STATUS= {'(OFF)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(OFF)'} >}SS_Credito )=0,0,

sum( {$<DIG_STATUS= {'(TRA)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(TRA)'} >}SS_Credito ))

CONTABIL_SS_OFF:

if(sum(saldo)-

sum( {$<DIG_STATUS= {'(TRA)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(TRA)'} >}SS_Credito )-

sum( {$<DIG_STATUS= {'(OFF)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(OFF)'} >}SS_Credito )=0,0,

sum( {$<DIG_STATUS= {'(OFF)'} >}SS_debito ) - sum( {$<DIG_STATUS= {'(OFF)'} >}SS_Credito ))

Eu fiz uma outra tabela apenas com o EMPLID e o  campo divergência.

Essa tabela acima, me mostra apenas 350 linhas, que são os ids com divergência , eu queria aplicar essa regra na tabela dinâmica contendo todos os campo.

Muito obrigado