Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
Not applicable

If com analise de conjunto

Bom dia,

Estou com o seguinte cenário:

Dependendo de alguma situação eu faço o calculo A ou faço o calculo B, eu pensei em resolver isso utilizando a função condicional if, porém nesse caso é necessário que o usuário faça a condição acontecer, ou seja, é preciso que a seleção dele atenda as condições para fazer o calculo A ou B.

Já com analise de conjunto pelo que eu entendo eu não preciso que o usuário selecione os filtros para que o calculo aconteça.

Tem como por analise de conjunto eu fazer essa condicional, ou algo parecido?

por exemplo

=sum({$<Campo1={'A'}, Campo2={'B'}, Campo3-={'Conteudo3'}, Campo4-={'Conteudo4'} >}[Vendas])

Notem que eu quis desconsiderar o conteudo3 e conteudo4 dessa analise utilizando o -= parece estar funcionando. Agora minha duvida é como eu digo pra ele considerar outro calculo, que seja diferente de Sum (Vendas), caso o Campo3 seja igual a Conteudo3 e Campo4 seja igual a Conteudo4

Tags (1)
1 Solution

Accepted Solutions
Not applicable

Re: If com analise de conjunto

Olá Rodrigo

Então o que eu consegui e descobri que:

-Utilizar no set analysis um indicador diferente do que eu utilizo no meu grupo ciclico no caso o indicadores que esta na minha dimensão, eu preciso criar uma outra coluna com as mesmas informações para usar no set analysis

-E que a minha condição não da certo para alguns niveis do meu grupo ciclico, pois eu faço IF indicadores (é um dos niveis do grupo ciclico) and campo2 com isso em alguns niveis ele não funciona.

Ainda não consegui chegar ao resultado correto, nesse momento eu estou com problema justamente no ulitmo nivel o 'Indicadores' esta exibindo no data display para o ultimo nivel

24 Replies
lucianosv
Valued Contributor

Re: If com analise de conjunto

Boa tarde.

Aconselho você calcular no script. Dessa forma a informação já estará pronta. Você pode criar na carga uma flag por exemplo flag_situacao com valores 1 e 2, um para cada situação e usar conforma abaixo:

sum({1<Flag_Situacao={'1'} >}[Vendas])

sum({1<Flag_Situacao={'2'} >}[Vendas])


Com o 1 no lugar do dólar você força a condição.

Not applicable

Re: If com analise de conjunto

Desculpa mas não entendi

como seria essa flag criada?


=sum({$<Campo1={'A'}, Campo2={'B'}, Campo3-={'Conteudo3'}, Campo4-={'Conteudo4'} >}[Vendas]) as FlagsemCampos


=sum({$<Campo1={'A'}, Campo2={'B'}, Campo3={'Conteudo3'}, Campo4={'Conteudo4'} >}[Vendas]*50) as FlacomCampos


a diferença de um do outro é que um cenario eu considero campos no outro nao, e faço calculos diferentes


é isso que eu colocaria no script?

lucianosv
Valued Contributor

Re: If com analise de conjunto

Na verdade você não entendeu a ideia,  a sintaxe é a do script, não do set analysis.

Vamos lá:

No script você vai fazer um If que vai setar o campo. Mais ou menos assim:

If(

     (Campo1='A' and Campo2='B' and Campo3 <>'Conteudo3' and Campo4<> 'Conteudo4'), '1',

     If(

          (Campo1='A' and Campo2='B' and Campo3 = 'Conteudo3' and Campo4 = 'Conteudo4'), '2'

     )

)     as Flag_Situacao


Na expressão fica assim:


If(Flag_Situacao = 1, sum({1<Flag_Situacao={'1'} >}[Vendas]), sum({1<Flag_Situacao={'2'} >}[Vendas]) * 50))


rvsilvestre
Contributor III

Re: If com analise de conjunto

Da pra fazer assim também:

sum( {$<Campo1={'A'}, Campo2={'B'}>}   if( Campo3 = 'Conteudo3' and Campo4 = 'Conteudo4', [Vendas]*50,[Vendas]) )

Not applicable

Re: If com analise de conjunto

mas ai o usuario vai ter que selecionar o campo3 e campo4 certo?

rvsilvestre
Contributor III

Re: If com analise de conjunto

dentro do sum() não,  se fosse tipo if( campo3 = 'conteudo3', sum(venda*50), sum(venda)) dai seria quando fosse selecionado.

lucianosv
Valued Contributor

Re: If com analise de conjunto

Testa a solução que eu te passei. Não vai precisar selecionar nada.

Se quiser usar a solução do Rodrigo, cria duas variáveis:

sum( {1<Campo1={'A'}, Campo2={'B'}, Campo3 = {'Conteudo3'}, Campo4 = {'Conteudo4'}>} [Vendas]) * 50

sum( {1<Campo1={'A'}, Campo2={'B'}, Campo3 -= {'Conteudo3'}, Campo4 -= {'Conteudo4'}>} [Vendas])

E faz o condicional para cada expressão com um IF:

If(Campo1='A' and Campo2='B' and Campo3 = 'Conteudo3' and Campo4 = 'Conteudo4')

If(Campo1='A' and Campo2='B' and Campo3 <>'Conteudo3' and Campo4<> 'Conteudo4')

Not applicable

Re: If com analise de conjunto

Rodrigo tudo bem? desde ja obrigado pela ajuda.

passei o fds fazendo isso, parece ter dado certo em uma tabela que eu tenho.

-Preciso dessa formula para uma tabela simples (aparentemente certo.)

-Preciso também em um gráfico de barras com hierarquia. Essa formula é utilizada na ultima hierarquia, o que não estou entendendo é: só quando eu seleciono o o ultimo nivel e apenas um unico indicador ele retorna o valor correto.

Exemplo: Nivel > Nivel2 > Nivel3

No Nivel3 tem varios indicadores por exemplo tipo1, tipo2, tipo3, tipo4.

Quando eu abro o Nivel3 me mostram as 4 barras com alguns valores, mas o valor correto só encontro quando eu clico no tipo4 por exemplo, dai tenho a visão apenas daquele tipo e daquele nivel.

Estou com a seguinte duvida, ele já não deveria mostrar o valor correto quando acesso o Nivel3 e onde visualizo todos os tipos?

rvsilvestre
Contributor III

Re: If com analise de conjunto

manda um exemplo pra eu dar uma olhada.