Skip to main content
Announcements
Global Transformation Awards! Applications are now open. Submit Entry
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Como calculo a primeira linha de uma tabela que depende de dados não exibidos?

Caros colegas,

  Tenho uma tabela que mostra dados sumarizados que dependem do valor anterior. Sendo assim, janeiro de 2017 fica vazio porque a seleção atual é 2017 e ele depende do dado de dezembro/2016 (que não está selecionado e fica VAZIO) para ser calculado e mostrado.

Alguém tem uma solução para esse problema?

1 Solution

Accepted Solutions
Thiago_Justen_

Lilia,

Além do que o pablolabbe‌ mencionou, sugiro a troca das aspas simples por duplas:

Alt(Above(sum(QtdeEconomiaÁgua)),sum(TOTAL {<Ano=,MesAno = {"$(=date( addmonths(min(MesAno),-1),'MMM YYYY' ))"}>} QtdeEconomiaÁgua))


Abs e Sucesso!

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

View solution in original post

13 Replies
pablolabbe
Luminary Alumni
Luminary Alumni

Pode publicar uma tela do objeto para ilustrar o problema ?

Anonymous
Not applicable
Author

tabela qlik.PNG

pablolabbe
Luminary Alumni
Luminary Alumni

Lilia,

  Aqui tem uma expressão:

  alt(Above(sum(Valor)),sum(TOTAL {<Ano=,MesAno = {'$(=date( addmonths(min(Mesano),-1),'MMM YYYY' ))'}>} Valor))

  Explico:

  o alt eu uso para testar se o resultado do above é nulo.

  Se não for nulo, retorna o resultado da expressão do primeiro parâmetro

  Se for nulo (caso da primeira linha, retorna o resultado da expressão do segundo parâmetro.


  No segundo parâmetro uso o total para desprezar a dimensão de mes ano . Se eu não colocar ele inclui a linha do mes nao visivel.

  Junto com isso uso um set analysis para obter o menor mes da seleção e pego o mes anterior.

  Aplica-se a formatação de data pois o calculo retorna a data em formato numerico e para o filtro funcionar, o elemento do set analysis tem que estar no mesmo formato de data utilizado no campo.

Pablo,

Anonymous
Not applicable
Author

Não resolveu ainda, está dando erro de sintaxe. ficou assim: alt(Above(sum(QtdeEconomiaÁgua)),sum(TOTAL {<Ano=,MesAno = {'$(=date( addmonths(min(Mesano),-1),'MMM YYYY' ))'}>} QtdeEconomiaÁgua))

mas exibe mensagem "errors in expression"

pablolabbe
Luminary Alumni
Luminary Alumni

O campo é Mesano ou MesAno ? Creio que ai está o problema.


Você tem que respeitar a caixa das letras (alta ou baixa) por que o Qlik é sensível a letras maiusculas e minusculas no nome dos campos em expressões.

Thiago_Justen_

Lilia,

Além do que o pablolabbe‌ mencionou, sugiro a troca das aspas simples por duplas:

Alt(Above(sum(QtdeEconomiaÁgua)),sum(TOTAL {<Ano=,MesAno = {"$(=date( addmonths(min(MesAno),-1),'MMM YYYY' ))"}>} QtdeEconomiaÁgua))


Abs e Sucesso!

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
pablolabbe
Luminary Alumni
Luminary Alumni

Não precisa trocar por aspas duplas por que o elemento do conjunto não é uma  pesquisa avançada, mas somente um único item que é a data.

Se utiliza aspas duplas quando usamos agregações, curingas ou intervalos para fazer pesquisa.

https://help.qlik.com/pt-BR/sense/November2017/Subsystems/Hub/Content/ChartFunctions/SetAnalysis/set...

Thiago_Justen_

Tenho me baseado em Dates in Set Analysis. Mas vou passar a prestar mais atenção nisso, que ainda é uma dúvida minha - quando usar double quotes e quando não usar. Em geral, sei que para literais uso single quotes, e para buscas/expansões double quotes.

Ainda chego lá pablolabbe‌...

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
pablolabbe
Luminary Alumni
Luminary Alumni

Se a expansão retorna somente um elemento, você pode usar single quote ou até mesmo não usar o single quote.

Exemplo;

sum ({<Ano = {'2018'}>} Vendas) - funciona com single quote

sum ({<Ano = {2018}>} Vendas) - funciona sem single quote

sum ({<Pais = {Brasil}>} Vendas) - funciona sem single quote

sum ({<Pais = {'Reino Unido'}>} Vendas) - Aqui precisa de single quote por que a string tem um espaço em branco.

sum ({<Ano = {$(=max(Ano)-1)}>} Vendas) - funciona sem single quote

sum ({<Ano = {"<=$(=max(Ano)-1)"}>} Vendas) - neste caso precisa de double quote por que tem operação de pesquisa de menor igual '<=' e não por causa da expansão de dolar.


Espero ter esclarecido