Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
thechacal
Contributor III

Set analysis como IF

Olá!

Criei uma expressão com IF em uma tabela simples:

If(WildMatch(Campo_1,'*FUL*','CRT*') > 0 and Campo_1<>Campo_2,Sum(VALOR))

Com set analysis como ficaria?

Tentei:

Sum({<Campo_1={'*FUL*','CRT*'}>-<Campo_1-={"$(=Campo_2)"}>} VALOR)

Mas só trouxe o valores referentes a primeira parte Campo_1={'*FUL*','CRT*'}


Alguém tem alguma dica?

Obrigado!

1 Solution

Accepted Solutions
pablolabbe
Valued Contributor II

Re: Set analysis como IF

É possível fazer esta comparação via set analysis através da pesquisa avançada, mas você precisa usar um campo que defina a ocorrência unica para estas datas. Veja o seguinte exemplo:

Suponha que exista uma tabela de pedidos com os campos "Numero Pedido" ,  "Data Pedido" e "Data Entrega".  e você quer pesquisar todos os pedidos que não foram entregues no mesmo dia da data do pedido. O campo numero pedido é a chave unica que defina as ocorrencias unicas de cada data.

O set analysis fica assim:

sum ( {< "Numero Pedido"  = {"=[Data Pedido] <> [Data Entrega]"} >}  VALOR)

Caso você não tenha um campo chave que defina ocorrencias unicas das datas dentro do seu modelo de dados, ai você tem que usar o IF dentro do SUM e não fora.

sum ( {<Campo_1={'*FUL*','CRT*'}>} if ([Data Pedido] <> [Data Entrega], VALOR)) 

Saudações,

Pablo

10 Replies
thiago_justen
Valued Contributor III

Re: Set analysis como IF

Talvez isso:

Sum({<Campo_1={'*FUL*','CRT*'}>}If(Campo_1 <>Campo_2, VALOR))

Thiago Justen Teixeira Gonçalves
WhatsApp: 24 98152-1675
Skype: justen.thiago
thechacal
Contributor III

Re: Set analysis como IF

Thiago muito obrigado pela resposta, mas, eu já faço assim como você falou, eu procuro uma implementação via set analysis.

thiago_justen
Valued Contributor III

Re: Set analysis como IF

Entendo Marco, mas veja:

O Set Analysis não é capaz de fazer o que queres pois ele não "trabalha" dessa forma. A expressão no set Analysis é avaliada uma vez para todo o gráfico e não célula por célula.

Pro que você precisa não há maneira de fazer via SA.

Thiago Justen Teixeira Gonçalves
WhatsApp: 24 98152-1675
Skype: justen.thiago
pablolabbe
Valued Contributor II

Re: Set analysis como IF

É possível fazer esta comparação via set analysis através da pesquisa avançada, mas você precisa usar um campo que defina a ocorrência unica para estas datas. Veja o seguinte exemplo:

Suponha que exista uma tabela de pedidos com os campos "Numero Pedido" ,  "Data Pedido" e "Data Entrega".  e você quer pesquisar todos os pedidos que não foram entregues no mesmo dia da data do pedido. O campo numero pedido é a chave unica que defina as ocorrencias unicas de cada data.

O set analysis fica assim:

sum ( {< "Numero Pedido"  = {"=[Data Pedido] <> [Data Entrega]"} >}  VALOR)

Caso você não tenha um campo chave que defina ocorrencias unicas das datas dentro do seu modelo de dados, ai você tem que usar o IF dentro do SUM e não fora.

sum ( {<Campo_1={'*FUL*','CRT*'}>} if ([Data Pedido] <> [Data Entrega], VALOR)) 

Saudações,

Pablo

MVP
MVP

Re: Set analysis como IF

Marco Antonio,

eu não entendi uma coisa....

O Campo_1 queres = '*FUL*','CRT*'

e o Campo_2 tem que ser diferente do Campo_1, portanto Campo_2 <> '*FUL*','CRT*' ,  isto?


Então não seria tipo abaixo:


Sum( {< Campo_1={"*FUL*','CRT*"},Campo_2-={"*FUL*','CRT*"} >} VALOR)


*** PS : Teria que usar aspas duplas e não simples no Set analysis pois é tipo um like.....


https://community.qlik.com/blogs/qlikviewdesignblog/2017/09/11/quotes-in-set-analysis

MVP
MVP

Re: Set analysis como IF

pensando melhor

Sum( {< Campo_1={"*FUL*"},Campo_2-={"*FUL*"} >} VALOR)

+

Sum( {< Campo_1={"CRT*"},Campo_2-={"CRT*"} >} VALOR)


thechacal
Contributor III

Re: Set analysis como IF

Alessandro no exemplo creio que não ficou muito claro, mas, no meu modelo de dados tenho duas tabelas ligadas por uma chave, a tabela 1 é a versão atualizada da tabela 2, onde preciso identificar as mudanças entre a 1 e a 2, ou seja, todos que estavam na tabela 2 continuam iguais na tabela 1? Na Tabela 1 x Tabela 2 quais os novos?

Por isso não é só comparar se o campos são diferentes de CRT e FUL, preciso saber para onde foram.

A solução do Pablo é a que eu descobri no fim de semana e que resolve meu problema;

sum ( {< "Numero Pedido"  = {"=[Data Pedido] <> [Data Entrega]"} >}  VALOR)

Obrigado!

Marco

cristianozilz
New Contributor III

Re: Set analysis como IF

Bom dia Marco,

Veja se é isso que você precisa.

Abraços!

thechacal
Contributor III

Re: Set analysis como IF

Cristiano eu estava procurando uma solução em set analysis.

A solução do Pablo resolveu o problema.

Muito obrigado!

Marco