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

Dificuldades na soma agregada em tabela

Bom dia!

Estou quebrando a cabeça há dias com um problema. Tenho um campo denominado DPA (Despesa Anual) o qual possui um valor único para cada campo ID. Ocorre que pode haver mais de um documento vinculado a esse mesmo ID e nesse caso o valor da DPA se repete para cada Documento. O meu objetivo é apresentar uma tabela dinâmica na qual o valor da DPA não seja apresentado no nível do Documento, mas seja totalizado corretamente nas quebras. Quando há mais de um documento vinculado (exemplo: ID 1529126) a tabela apresenta o comportamento desejado. O problema é quando há apenas um documento vinculado ao ID (exemplo: 1529724). Nesse caso a tabela não está totalizando a DPA, mas está assumindo para esta o valor "-" (se ao invés de '-' eu colocar 'Teste' no nível do documento, a soma agregada também assumirá esse valor 'Teste'; é como se ela estivesse herdando o valor atribuído ao seu único documento) . Inseri em anexo duas imagens, uma com o comportamento esperado (ID com mais de um documento vinculado) e outra com o comportamento errado (ID com apenas um documento). Já tentei utilizar a função Count(Total <ID> Documento)>1 para distinguir as IDs com mais de um documento, mas não deu certo. O fato é que há algo errado na função de soma quando há apenas um único registro. A seguir, a expressão que coloquei associada ao campo DPA:

 If(Escopo='Despesa Compromissada',  Sum(DPA),

If(Left(Documento,2) = '20', '-' ,

Sum(Aggr(Max(DPA),ID))))

EscopoObjetoIDEstimativaDocumentoDPA
Despesa Discricionária-1529126-2021NE0005501.000.000,00
Despesa Discricionária-1529126-2021NE0005841.000.000,00
Despesa Discricionária-1529126-2021NE0006231.000.000,00
Despesa Discricionária-1529724-2021NE000918500.000,00

 

Labels (1)
1 Solution

Accepted Solutions
gustavovm
Contributor III
Contributor III
Author

Acabei conseguindo resolver da seguinte maneira:

If(Escopo='Despesa Compromissada',Sum(DPA),

If(dimensionality()<>5,Sum(Aggr(Max(DPA),ID))))

View solution in original post

2 Replies
RafaMartins
Creator II
Creator II

Aparentemente esse if na sua medida que não está deixando exibir os dados  If(Left(Documento,2) = '20', '-' ,

já que onde o documento começar com 20 você diz para a tabela trazer os valor '-'

retirando esse if você vai ter um valor único em cada ID

RafaMartins_0-1623952752271.png

 

gustavovm
Contributor III
Contributor III
Author

Acabei conseguindo resolver da seguinte maneira:

If(Escopo='Despesa Compromissada',Sum(DPA),

If(dimensionality()<>5,Sum(Aggr(Max(DPA),ID))))