Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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:
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 !
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.
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, 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.
Pessoal,
Consegui resolver o problema lendo alguns documentos que eu tenho sobre AGGR().
De qualquer forma, obrigado pela ajuda
Estou anexando o QVF mostrando como ficou !
Veja se atende
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.
Obrigado por compartilhar Jean.