Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Já baixei vários exemplos e li alguns artigos aqui no forum mas mesmo assim não consigo.
Estou tentando criar uma coluna Curva ABC para identificar os produtos com maior representatividade em movimentações. A,B,C ou X
Os cálculos de todas as colunas eu consegui fazer e estão OK! O problema é apenas na coluna Curva ABC, que sempre exibe o resultado = C
Veja a expressão que eu criei para a coluna Curva ABC:
=IF ([Acumulado] <= 0.4, 'A',
IF ([Acumulado] <= 0.9, 'B',
IF ([Acumulado] > 1, 'C','X')
)
)
Expressão da Coluna Movimentações
count(IDTAREFA) [ ] Relativo
Expressão da Coluna Participação
count(IDTAREFA)
Expressão da Coluna Acumulado:
=Resultado da coluna Participação e Marquei a opção Acumular e Relativo
Eu também gostaria de criar uma tabela da seguinte forma:
CURVA | Quantidade de PRODUTOS para cada curva |
---|---|
A | 2.000 |
B | 1.500 |
C | 500 |
X | 3.000 |
Grato em quem puder me ajudar.
Utilize COUNT(TOTAL movimentos_de_produtos)
O TOTAL possui o parâmetro de quebras, então caso precise considerar o total de alguma dimensão, então faça assim:
COUNT(TOTAL <CAMPO1,CAMPO2,CAMpo3>movimentos_de_produtos)
See Recipe for a Pareto Analysis for a description how to do this.
I would not use the built-in "Relative" or the "Full Accumulation". I would normalize and accumulate the numbers myself.
HIC
Marcio, quando utilizamos o acumulado na opção da expressão, esse valor (da coluna) não consegue ser reaproveitada para outros cálculos. Você precisa fazer o acumulado via código
Segue um artigo que escrevi sobre isso: Acumulado com Expressão
That was the only way I could make it work and excellent performance.
Do you know why the letters A, B, C, X does not change the way I like it?
Bom dia,
Fiz algo assim:
A var PED_QTD_VENDIDO tem o valor da quantidade vendida...
IF(RANGESUM(ABOVE(SUM(PED_QTD_VENDIDO)/SUM(TOTAL PED_QTD_VENDIDO),1,RowNo()),SUM(PED_QTD_VENDIDO)/SUM(TOTAL PED_QTD_VENDIDO)) <= 0.50, 'A',
IF(RANGESUM(ABOVE(SUM(PED_QTD_VENDIDO)/SUM(TOTAL PED_QTD_VENDIDO),1,RowNo()),SUM(PED_QTD_VENDIDO)/SUM(TOTAL PED_QTD_VENDIDO)) <= 0.80, 'B','C'))
EXCELENTE artigo Yuri!
Estou quase conseguindo.
A minha dúvida agora foi para a coluna %participação que reparei que os valores estão errados. Eu preciso faze-la sem usar a opção relative. Como eu faria isso?
Seguindo o meu exemplo eu preciso achar o % de participação do produto em relação ao total de movimentações.
Total de Movimentação = 12.035, ou seja, COUNT(movimentos_de_produtos)
Então o produto código 33984, possui 3.861 movimentações então: 3.861 / 12.035 * 100 = 32%
Como eu consigo "fixar" o valor 12.035 para calcular cada item da tabela?
Utilize COUNT(TOTAL movimentos_de_produtos)
O TOTAL possui o parâmetro de quebras, então caso precise considerar o total de alguma dimensão, então faça assim:
COUNT(TOTAL <CAMPO1,CAMPO2,CAMpo3>movimentos_de_produtos)
Yuri muito obrigado pela ajuda mas ainda não consegui resolver a coluna de % participação.
Eu tentei usar a expressão:
count(movimentos_de_produtos) / count(movimentos_de_produtos)
Os resultados ficaram errados ai constatei que o problema é o total.
Veja que a coluna MOVIMENTAÇÕES é igual a count(movimentos_de_produtos)
Então a soma total da quantidade de movimentações de cada produto = 1.695.562
Exemplo primeiro produto da lista:
33984 possui um total de 3.861 movimentações então o % de participação seria: 3.861 / 1.695.562 * 100 = 0,22%
O sistema exibe 1,77%
Modifiquei apenas para tentar achar o valor de 1.695.562 mas veja que o sistema exibe 218090
Coisa de doido isso aqui
Existe algum CODPROD nulo com movimentação?
Não