Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
rafits_ctba
Contributor II
Contributor II

Duvida Referente a Utilização e variaveis em Script e Set Analysis

Bom dia Pessoal,

Estou com um problema, na verdade quero otimizar tempo agora, e posteriormente para alguma manutenção.

Necessito criar um "Grid de Informações" onde elas devem ser apresentadas com as minhas marcas rankeadas do maior para o menor em uma coluna e na linha que corresponde a essa marca, apresente os produtos que a compõe rankeadas também do maior para o menor, exemplo:

RankMarcaProduto Rank1Produto Rank2

Produto Rank3

Produto Rank4Produto Rank5
1AA_A1A_BA_C
2BB_A1B_CB_DB_BB_E
3CC_AC_CC_B
4DD_DD_AD_CD_B
5ED_A

Seria mais ou menos como no exemplo acima, só que na análise que devo fazer ele sempre vai pegar as informações referente ao ultimo ano, ou seja, se eu selecionar dez / 2016 ele ira verificar informações entre jan / 2016 e dez / 2016, ou selecioar jun / 2016  a analise seria entre jul / 2015 e jun / 2016.

Como não encontrei nenhum objeto que satisfaça minha necessidade, a solução que encontrei seria criar um Objeto de texto para cada grid do meu quadro, que ainda não sei quantas linas e coluna deve ter (ainda a definir com o usuário) visto essa necessidade irei precisar criar várias expressões, e para facilitar minha manutenção posteriormente pensei em carregar as expressões de um arquivo excel, mas ao carregar via script parte da minha expressão se perde, devido ao uso de $ dentro do set analysis

Expressao da coluna marca :

Concat(if(Aggr( rank((Sum({1< dt_inicio= {'>=$(=Monthstart(dt_inicio,-11))'},Unidada_Negocio=P(Unidada_Negocio),Marca_Material=P(Marca_Material)>}Qtde_Reclamacoes_Fator))/(Sum({1< dt_inicio= {'>=$(=Monthstart(dt_inicio,-11))'},Unidada_Negocio=P(Unidada_Negocio),Marca_Material=P(Marca_Material)>}Qtde_Vendidas)/1000000)),Marca_Material)=1,Marca_Material & Chr(10)))

Expressao da linha que corresponde a marca:

Concat(if(Aggr(num(rank((Sum({1< dt_inicio= {'>=$(=Monthstart(dt_inicio,-11))'},Unidada_Negocio=P(Unidada_Negocio),Marca_Material={$(vr_Rank1)},Material=P(Material)>}Qtde_Reclamacoes_Fator))/(Sum({1< dt_inicio={'>=$(=Monthstart(dt_inicio,-11))'},Unidada_Negocio=P(Unidada_Negocio),Marca_Material={$(vr_Rank1)},Material=P(Material)>}Qtde_Vendidas)/1000000),4,2)),Material)=1,Material&Chr(10)))

alguém tem alguma idéia de como posso melhorar a minha lógica de apresentar essas informações?

Labels (4)
1 Solution

Accepted Solutions
Clever_Anjos
Employee
Employee

Existe uma "marretadinha" para incluir um $ em uma variável

Set var = SUM({<dt_inicio= {'>=&(=Monthstart(dt_inicio,-11))'}>}Qtde_Reclamacoes_Fator);

Let var = Replace('$(var)','&','$');

View solution in original post

7 Replies
Clever_Anjos
Employee
Employee

Existe uma "marretadinha" para incluir um $ em uma variável

Set var = SUM({<dt_inicio= {'>=&(=Monthstart(dt_inicio,-11))'}>}Qtde_Reclamacoes_Fator);

Let var = Replace('$(var)','&','$');

rafits_ctba
Contributor II
Contributor II
Author

Deu certo Obrigado!

rafits_ctba
Contributor II
Contributor II
Author

cleveranjos

Obriado pela ajuda ontem, funcionou perfeitamente, mas aora surgiu uma outra dúvida enquando as minhas expressões: segue ->

a minha primeira expressao retorna as marcas (podendo ter marcas com nomes simples ("azeitona") e nomes compostos ("maça verde") - nomes ficticios), quanto ela retorna os nomes simples funciona perfeitamente na segunda expressão, onde ele me retorna o rank dos produtos dessa marca, agora quando retorna nome composto ele apresenta problema,

" Error: Garbage after expression: "verde" " pelos meus testes identifiquei problema na minha referencia para a variavel que busca o nome da marca "vr_Rank1" só que já tentei coloca entre aspas simples, duplas, etc... e não consegui consegue me ajudar? Obrigado!

Clever_Anjos
Employee
Employee

Como é a expressão utilizada?

rafits_ctba
Contributor II
Contributor II
Author

Bom dia Clever,


- Segue a expressão, o erro ocorre quando ele puxa o valor da variavel que está em negrito:

Concat(if(Aggr(num(rank((Sum({1< dt_inicio= {'>=$(=Monthstart(dt_inicio,-11))'},Unidada_Negocio=P(Unidada_Negocio),Marca_Material={$(vr_Rank1)},Cod_Material=P(Cod_Material)>}Qtde_Reclamacoes_Fator))/(Sum({1< dt_inicio={'>=$(=Monthstart(dt_inicio,-11))'},Unidada_Negocio=P(Unidada_Negocio),Marca_Material={$(vr_Rank1)},Cod_Material=P(Cod_Material)>}Qtde_Vendidas)/1000000),4,2)),Cod_Material)=1,Cod_Material&Chr(10)))


- o valor que a variavel recebe  é gerada por essa expressão:

Concat(if(Aggr( rank((Sum({1< dt_inicio= {'>=$(=Monthstart(dt_inicio,-11))'},Unidada_Negocio=P(Unidada_Negocio),Marca_Material=P(Marca_Material)>}Qtde_Reclamacoes_Fator))/(Sum({1< dt_inicio= {'>=$(=Monthstart(dt_inicio,-11))'},Unidada_Negocio=P(Unidada_Negocio),Marca_Material=P(Marca_Material)>}Qtde_Vendidas)/1000000)),Marca_Material)=1,Marca_Material & Chr(10)))


Atenciosamente,

Rafael Mendes

Clever_Anjos
Employee
Employee

Cola em um objeto texto e coloca o resultado aqui por favor

Concat(if(Aggr( rank((Sum({1< dt_inicio= {'>=$(=Monthstart(dt_inicio,-11))'},Unidada_Negocio=P(Unidada_Negocio),Marca_Material=P(Marca_Material)>}Qtde_Reclamacoes_Fator))/(Sum({1< dt_inicio= {'>=$(=Monthstart(dt_inicio,-11))'},Unidada_Negocio=P(Unidada_Negocio),Marca_Material=P(Marca_Material)>}Qtde_Vendidas)/1000000)),Marca_Material)=1,Marca_Material & Chr(10)))

rafits_ctba
Contributor II
Contributor II
Author

Opa, Obg pelo retorno, mas eu resolvi o problema comparando pelo código da Marca do Material que é unica, resolveu meu problema, Obrigado!