Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
jean_raduenz
Contributor
Contributor

Média (avg) com condição

Olá,

Estou com a seguinte dificuldade:

Tenho uma lista com Produto, Vl Unitário, Qtd e Total.   O mesmo produto pode ser vendido por preços unitários diferentes.  Por isto preciso do valor médio unitário (avg) de cada produto.

Com o valor médio de cada produto, preciso verificar se o valor unitário da venda foi maior ou menor que o valor médio daquele produto.   Se a venda foi feita com valor unitário menor que a média do produto, mantém os valores.  Caso a valor unitário da venda seja maior que a média, deve se calcular um novo valor total do ítem da venda ( Média do produto x qtd = NOVO TOTAL).

Exemplo feito em excel:

Capturar2.PNG

Explicando,

Se a MÉDIA do produto A é R$ 1.41, e a venda foi feita com preço unitário de R$1,00 devo considerar R$1.00 * 1 qtd = Total R$ 1,00; (fica como está na base).

Mas quando o Valor unitário da venda do mesmo produto for R$ 1.50 devo considerar R$1.41(média calculada) * 1qtd = Total R$ 1.41.

Obs. Este calculo precisa ser realizado na TELA. Ou seja, não pode ser na carga por que a média pode ser alterada pelo período selecionado e outros filtros.

Já tentei de diversas formas mas infelizmente não deu certo. Se alguém puder ajudar, agradeço!

Anexo estou enviando um QVF  (Qlik Sense) para exemplificar o problema.  A aplicação do meu cliente além de ser grande não posso divulgar.

Desde já obrigado !

Labels (1)
1 Solution

Accepted Solutions
jean_raduenz
Contributor
Contributor
Author

Chegamos em duas opções que funcionam e gostaria de compartilhar aqui:


Opção A:

if(avg(total <Decricao> Vl_Unitario) > Vl_Unitario,  Total,  avg(total <Decricao> Vl_Unitario) * Qtd )



Opção B:

rangemin(avg(total <Decricao> Vl_Unitario),Vl_Unitario)  * Qtd


Obrigado a todos.

View solution in original post

6 Replies
Thiago_Justen_

Jean, estou enviando pelo celular e por isso não abri o qvf. Mas vamos lá:

If (Avg (Aggr (Avg (Vlr.Unitario),Produto)<=Vlr.Unitario,Qtd*Vlr.Unitario,Qtd*Avg (Aggr (Avg (Vlr.Unitario),Produto))


Abs e Sucesso!

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

Thiago,   tentei aplicar a fórmula no qvf mas não funcionou.

If(

    Avg(Aggr( Avg(Vl_Unitario),Decricao )) <= Vl_Unitario,

       

        Qtd * Vl_Unitario,

       

        Qtd * Avg(Aggr (Avg (Vl_Unitario),Decricao))

       

        )

       

Parece que ele só faz o calculo para a primeira linha da tabela ... por isto não esta funcionando.

jean_raduenz
Contributor
Contributor
Author

Pessoal,

Consegui resolver o problema lendo alguns documentos que eu tenho sobre AGGR().

Capturar 22.PNG

De qualquer forma, obrigado pela ajuda

Estou anexando o QVF mostrando como ficou !

Clever_Anjos
Employee
Employee

Veja se atende

Capturar.PNG

jean_raduenz
Contributor
Contributor
Author

Chegamos em duas opções que funcionam e gostaria de compartilhar aqui:


Opção A:

if(avg(total <Decricao> Vl_Unitario) > Vl_Unitario,  Total,  avg(total <Decricao> Vl_Unitario) * Qtd )



Opção B:

rangemin(avg(total <Decricao> Vl_Unitario),Vl_Unitario)  * Qtd


Obrigado a todos.

Thiago_Justen_

Obrigado por compartilhar Jean.

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