Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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!
É 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
Talvez isso:
Sum({<Campo_1={'*FUL*','CRT*'}>}If(Campo_1 <>Campo_2, VALOR))
Thiago muito obrigado pela resposta, mas, eu já faço assim como você falou, eu procuro uma implementação via set analysis.
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.
É 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
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
pensando melhor
Sum( {< Campo_1={"*FUL*"},Campo_2-={"*FUL*"} >} VALOR)
+
Sum( {< Campo_1={"CRT*"},Campo_2-={"CRT*"} >} VALOR)
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
Bom dia Marco,
Veja se é isso que você precisa.
Abraços!
Cristiano eu estava procurando uma solução em set analysis.
A solução do Pablo resolveu o problema.
Muito obrigado!
Marco