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

Somar determinado valor a partir de uma condição

Olá pessoal! 
Preciso de ajuda com a seguinte questão.

Tenho a tabela abaixo:

CODIGOITEMVALOR
2222110
2222225
222235
5555145
5555261
5555388
5555410

 

Preciso somar o valor, cujo item for o maior de cada código. Fiz a regra abaixo, mas não funciona direito. Parece que pega o maior valor e não o valor do maior item de cada código.

//sum(
//IF(
//aggr(
//max(
//aggr(ITEM,
//CODIGO, ITEM)), CODIGO)
//,VALOR))
5 Solutions

Accepted Solutions
Thiago_Justen_

Olá @TiagoMotta 

Você pode usar Aggr(If(ITEM=Max(TOTAL <CODIGO> ITEM), Sum(VALOR)), CODIGO, ITEM)

Abs e Sucesso!!

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

View solution in original post

TiagoMotta
Contributor II
Contributor II
Author

Fala @Thiago_Justen_,

Deu certo aqui. Muito obrigado! Abs!

View solution in original post

Thiago_Justen_

Opa @TiagoMotta,

Use o sum para obtero resultado:

Sum(Aggr(If(ITEM=Max(TOTAL <CODIGO> ITEM), Sum(VALOR)), CODIGO, ITEM))

 

thiago_justen_0-1634660955864.png

 

Abs e Sucesso!!

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

View solution in original post

TiagoMotta
Contributor II
Contributor II
Author

Obrigado novamente!

View solution in original post

TiagoMotta
Contributor II
Contributor II
Author

Boa tarde @Thiago_Justen_ !

Vê se pode me ajudar com o problema abaixo.

Tenho 2 contratos com vários itens. Preciso pegar a soma do ultimo aditivo de cada contrato e quando o contrato não tiver aditivo, somar os itens, porém quando faço a regra abaixo, ele considera os itens do contrato cujos os aditivos estão vazios e era para considerar só os itens que possui aditivo e os últimos. Não sei se conseguir explicar.

CODIGO ITEM ADITIVO VALOR
2222 1   10
2222 2   25
5555 1   5
5555 2   45
5555 3 1 61
5555 4 1 10

 

IF(IsNull (ADITIVO),VALOR,
if(
     num(
               Aggr(
                         If(ADITIVO=Max(TOTAL <CONTRATO> ADITIVO), VALOR

                           )
                          )
               )
  )

)

 

Inseri uma coluna de teste e era para aparecer assim:

CODIGO ITEM ADITIVO VALOR TESTE
2222 1   10 10
2222 2   25 25
5555 1   5  
5555 2   45  
5555 3 1 61 61
5555 4 1 10 10

 

Mas aparece assim:

CODIGO ITEM ADITIVO VALOR TESTE
2222 1   10 10
2222 2   25 25
5555 1   5 5
5555 2   45 45
5555 3 1 61 61
5555 4 1 10 10

 

Abs!

View solution in original post

8 Replies
Thiago_Justen_

Olá @TiagoMotta 

Você pode usar Aggr(If(ITEM=Max(TOTAL <CODIGO> ITEM), Sum(VALOR)), CODIGO, ITEM)

Abs e Sucesso!!

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

Fala @Thiago_Justen_,

Deu certo aqui. Muito obrigado! Abs!

Thiago_Justen_

Precisando pode contar comigo.

Abs e Sucesso!!

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

@Thiago 

Mais uma pergunta. A regra na tabela deu certo, porém quando jogo em um KPI não aparece valor. Como faço para resolver?

Thiago_Justen_

Opa @TiagoMotta,

Use o sum para obtero resultado:

Sum(Aggr(If(ITEM=Max(TOTAL <CODIGO> ITEM), Sum(VALOR)), CODIGO, ITEM))

 

thiago_justen_0-1634660955864.png

 

Abs e Sucesso!!

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

Obrigado novamente!

TiagoMotta
Contributor II
Contributor II
Author

Boa tarde @Thiago_Justen_ !

Vê se pode me ajudar com o problema abaixo.

Tenho 2 contratos com vários itens. Preciso pegar a soma do ultimo aditivo de cada contrato e quando o contrato não tiver aditivo, somar os itens, porém quando faço a regra abaixo, ele considera os itens do contrato cujos os aditivos estão vazios e era para considerar só os itens que possui aditivo e os últimos. Não sei se conseguir explicar.

CODIGO ITEM ADITIVO VALOR
2222 1   10
2222 2   25
5555 1   5
5555 2   45
5555 3 1 61
5555 4 1 10

 

IF(IsNull (ADITIVO),VALOR,
if(
     num(
               Aggr(
                         If(ADITIVO=Max(TOTAL <CONTRATO> ADITIVO), VALOR

                           )
                          )
               )
  )

)

 

Inseri uma coluna de teste e era para aparecer assim:

CODIGO ITEM ADITIVO VALOR TESTE
2222 1   10 10
2222 2   25 25
5555 1   5  
5555 2   45  
5555 3 1 61 61
5555 4 1 10 10

 

Mas aparece assim:

CODIGO ITEM ADITIVO VALOR TESTE
2222 1   10 10
2222 2   25 25
5555 1   5 5
5555 2   45 45
5555 3 1 61 61
5555 4 1 10 10

 

Abs!

TiagoMotta
Contributor II
Contributor II
Author

@Thiago_Justen_ , consegue me ajudar com a questão anterior?