Qlik Community

Ask a Question

Brasil

cancel
Showing results for 
Search instead for 
Did you mean: 
fmbrancher
Creator
Creator

IF dentro do SET ANALYSIS

Boa dia pessoal

Estou montando um gráfico de tabela simples onde tenho um set analisys dentro de uma expressão.


Tenho um campo chamado DESC_COLECAO, porem preciso que quando eu selecione em um filtro

DESC_COLECAO = '2018-TROPICAL' me traga resultados da DESC_COLECAO='2017-TROPICAL', quando selecione DESC_COLECAO='2018-INVERNO' traga resultados do '2017-INVERNO' e para '2018-PRIMAVERA' traga resultados da coleção '2017-PRIMAVERA'

Preciso disso para montar uma tabela de comparação entre coleções.

Pensei em algo tipo:

=num(SUM({<

     [DIA]=,

     [MES]=,

     [ANO]=,

     [DES_COLECAO]={"=$if(DESC_COLECAO='2018-TROPICAL'),(DESC_COLECAO='2017-TROPICAL'),

if(DESC_COLECAO='2018-INVERNO'),(DESC_COLECAO='2017-INVERNIO),(DESC_COLECAO='2018-PRIMAVERA'),(DESC_COLECAO='2017-PRIMAVERA')

"}

    >}[VALOR_VENDIDO]),'#.##0,00')

Não sei se estou seguindo a linha correta de raciocinio.


Obrigado.

1 Solution

Accepted Solutions
thiago_justen
Specialist III
Specialist III

Uma solução front-end seria essa:

Teste.gif

Expressão usada:

Sum({<DESC_COLECAO={"$(=Left(DESC_COLECAO,4)-1 &'-'& SubField(DESC_COLECAO,'-',2))"}>}QTDE)

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

View solution in original post

9 Replies
Marcio_Campestrini
Specialist
Specialist

Felipe

Você não consegue colocar o ano da coleção como um campo a parte? Se for possível, basta selecionar o ano da coleção - 1 para trazer a informação desejada.

Márcio Rodrigo Campestrini
fmbrancher
Creator
Creator
Author

Marcio infelizmente eu nao consigo fazer isso porque o 2018, 2017 no nome da coleção são campos que já vem da tabela do banco de dados. Eles já vem com o nome pronto do Ano+nome da coleção.

Marcio_Campestrini
Specialist
Specialist

Felipe

Se já vem nesse formato (ano+nome) você pode tratar no script de carga:

Load ...

         Mid(nome_colecao, 1, Index(nome_colecao, '-') - 1) As ano_colecao,

         Mid(nome_colecao, Index(nome_colecao, '-') + 1)    As nome_colecao_novo,

         ...

Márcio Rodrigo Campestrini
thiago_justen
Specialist III
Specialist III

Uma solução front-end seria essa:

Teste.gif

Expressão usada:

Sum({<DESC_COLECAO={"$(=Left(DESC_COLECAO,4)-1 &'-'& SubField(DESC_COLECAO,'-',2))"}>}QTDE)

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

View solution in original post

thiago_justen
Specialist III
Specialist III

Se for tratar no script, além dessa dica do marcio.campestrini‌, pode usar também o SubField:

LOAD

     OUTROS_CAMPOS,

    SubField(DESC_COLECAO,'-',1) AS ANO_COLECAO,

    SubField(DESC_COLECAO,'-',2) AS DESCRICAO_COLECAO

FROM SUA_BASE;

Thiago Justen Teixeira Gonçalves
WhatsApp: 24 98152-1675
Skype: justen.thiago
fmbrancher
Creator
Creator
Author

A principio dessa maneira funcionou aqui.

Obrigado Thiago.
Vou fazer mais uns testes com a outra maneira que o Marcio indicou e também com o SUBFIELD

thiago_justen
Specialist III
Specialist III

Qualquer coisa, "grita" aí.

Thiago Justen Teixeira Gonçalves
WhatsApp: 24 98152-1675
Skype: justen.thiago
fmbrancher
Creator
Creator
Author

thiago.justen aproveitando a questão

Tenho um campo de data_emisssao ='DD/MM/YYYY'

e preciso buscar informações de menos 1 dia e um ano pra trás.

pra atrás de 1 dia eu to fazendo DATA_EMISSAO]={"<=$(=Date(TODAY()-1, 'DD/MM/YYYY'))"}

mas pra 1 dia e 1 ano atrás estou me batendo, podes me ajudar?
Por exemplo hoje é dia 22/02/2018

preciso de informações até dia 21/02/2017


Obrigado

thiago_justen
Specialist III
Specialist III

Resolveria apenas no seu modificador o seguinte:

Ontem:

DATA_EMISSAO={"$(=TODAY()-1)"}

Ano Anterior:

DATA_EMISSAO={"$(=ADDYEARS(TODAY(),-1))"}

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