Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Função p() respeitando dimensões em tabela

Pessoal,

Tenho uma tabela dinâmica (Que lista faturamento do ano selecionado, o faturamento do ano anterior, e a razão entre eles) com a dimensão FullName na linha e Mês na coluna. E como medida estou com a seguinte fórmula:

Sum(

     {<

          Ano={'$(=max(Ano)-1)'},

          [Flag]=,

          FullName=p({<Ano={'$(=max(Ano))'}, [Flag]='ANO-1'>}FullName)

      >}

FAT)

Eu estou somando o Faturamento do ano anterior à seleção, desconsiderando a seleção do Flag, e considerando apenas os FullNames do ano selecionado onde o campo Flag for igual à 'ANO-1'.

O problema está na linha (o objetivo dela é retornar para cada mês o seu universo de FullNames, mas essa expressão está retornando para todos os meses o conjunto de FullName do ano todo):

FullName=p({<Ano={'$(=max(Ano))'}, [Flag]='ANO-1'>}FullName)

Essa linha retorna a relação de FullNames que devem ser considerados (e o valor está certo), mas na quebra de mês o valor fica errado.

Por exemplo, eu tenho no ano inteiro uma coleção de 100 FullNames, mas em Janeiro são apenas 90 FullNames.


Essa fórmula está calculando o faturamento mensal considerando os 100 FullNames para todos os mêses, quando para Janeiro deveria ser considerado 90, para fevereiro só 70 e assim por diante.


Alguém sabe fazer o set analysis:

FullName=p({<Ano={'$(=max(Ano))'}, [Flag]='ANO-1'>}FullName)


Ser calculado respeitando a quebra de dimensão de Mês da tabela?


Att,

Thiago.

Labels (1)
2 Replies
Clever_Anjos
Employee
Employee

A rigor (*) isso não é possível pelo fato que um Set Analysis é calculado antes da agregação por cada linha/dimensão do seu gráfico.

Isso é explicado pelo hic‌ em https://community.qlik.com/blogs/qlikviewdesignblog/2015/02/16/set-analysis

"The condition, however, is in itself like a selection that is evaluated before the cube (the chart) is expanded. Hence, it is not possible to have a condition that is evaluated row by row."

(*) uma alternativa : Evaluating "sets" in the context of a dimension

nicolett_yuri

Como o Clever falou, ou você faz por IF ou por Calendário AsOf

Exemplo de AsOf:

https://community.qlik.com/groups/qlikview-brasil/blog/2015/10/26/calculando-acumulados-com-tabelas-...