Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Como hago un acumulado.

Hola tengo el siguiete problema

Tengo la siguiete tabla:

VENTAS

9%

8.5%

7%

4.3%

4%

1.9%

1.5%

Esto sale de esta dimension

sum({$<AGRUPADOR={'01_VENTAS'}>}DATA_AVER/TC)/ SUM ({$<AGRUPADOR={'01_VENTAS'}>}Total DATA_AVER/TC)

Como le puedo hacer para que se vaya acumulando la venta con la fila anterior por ejemplo.

VENTAS

9%

17.5%

24.5%

28.8%

32.8%

34.7%

36.2%

Me podrian ayudar a hacer este acumulado por favor.

Gracias.

1 Solution

Accepted Solutions
Miguel_Angel_Baeyens

Hola,

Si es una cuestión de script, utiliza la función Peek():

RangeSum(Peek('Acumulado'), Ventas) AS Acumulado

Si es una cuestión de expresión, puedes hacerlo de varias formas:

  • En el caso de una tabla simple, duplica la expresión (botón derecho sobre la expresión, copiar y pegar) y selecciona de la parte inferior "Acumulación completa".
  • Si esta opción no está disponible, puedes hacerlo a través de la expresión

RangeSum(Above([VENTAS], 0, NoOfRows()))

Espero que te sirva.

Miguel Angel Baeyens

BI Consultant

Comex Grupo Ibérica

View solution in original post

9 Replies
Miguel_Angel_Baeyens

Hola,

Si es una cuestión de script, utiliza la función Peek():

RangeSum(Peek('Acumulado'), Ventas) AS Acumulado

Si es una cuestión de expresión, puedes hacerlo de varias formas:

  • En el caso de una tabla simple, duplica la expresión (botón derecho sobre la expresión, copiar y pegar) y selecciona de la parte inferior "Acumulación completa".
  • Si esta opción no está disponible, puedes hacerlo a través de la expresión

RangeSum(Above([VENTAS], 0, NoOfRows()))

Espero que te sirva.

Miguel Angel Baeyens

BI Consultant

Comex Grupo Ibérica

Not applicable
Author

Hola muchas mejor opte por cambiar a tabla simple y  poner acumulacion completa, ahora tengo tro problema yo tenia un if que si fuera es de 0% a 50% me ponga AA, si es de 51% a 80% ponga A, si es 81% a 95% me pomga B, si es 96 en adelante ponga C.

Pero lo tenia con un if con la epxresion de  la venta pero ps ahora ya se acumulo la venta pero el otro no lo puedo acumular.

este es la expresion de VENTAS

sum({$<AGRUPADOR={'01_VENTAS'}>}DATA_AVER/TC)/ SUM ({$<AGRUPADOR={'01_VENTAS'}>}Total DATA_AVER/TC)

y este es mi IF  de la otra expresion

if(sum({$<AGRUPADOR={'01_VENTAS'}>}DATA_AVER/TC)/ SUM ({$<AGRUPADOR={'01_VENTAS'}>}Total DATA_AVER/TC)>=.0<<.50,'AA',
if(sum({$<AGRUPADOR={'01_VENTAS'}>}DATA_AVER/TC)/ SUM ({$<AGRUPADOR={'01_VENTAS'}>}Total DATA_AVER/TC)>=.51<<.80,'A',
if( sum({$<AGRUPADOR={'01_VENTAS'}>}DATA_AVER/TC)/ SUM ({$<AGRUPADOR={'01_VENTAS'}>}Total DATA_AVER/TC)>=.81<<.95,'B',
if(sum({$<AGRUPADOR={'01_VENTAS'}>}DATA_AVER/TC)/ SUM ({$<AGRUPADOR={'01_VENTAS'}>}Total DATA_AVER/TC)>=.96,'C'))))

VENTAS      ABC VENTAS

9%                     AA

17%                   AA

50%                  A

80%                    B

96%                    C

100%                  C

Como le hago.

Miguel_Angel_Baeyens

Hola,

La sintaxis de los rangos en la función condicional If() en QlikView es algo diferente, aunque estás muy próximo a lo que solicitas

if(sum({$<AGRUPADOR={'01_VENTAS'}>}DATA_AVER/TC)/ SUM ({$<AGRUPADOR={'01_VENTAS'}>}Total DATA_AVER/TC)<=.50,'AA',

if(sum({$<AGRUPADOR={'01_VENTAS'}>}DATA_AVER/TC)/ SUM ({$<AGRUPADOR={'01_VENTAS'}>}Total DATA_AVER/TC)<=.80,'A',

if( sum({$<AGRUPADOR={'01_VENTAS'}>}DATA_AVER/TC)/ SUM ({$<AGRUPADOR={'01_VENTAS'}>}Total DATA_AVER/TC)<=.95,'B',

if(sum({$<AGRUPADOR={'01_VENTAS'}>}DATA_AVER/TC)/ SUM ({$<AGRUPADOR={'01_VENTAS'}>}Total DATA_AVER/TC)<=.96,'C'))))

Puede que me haya equivocado con los paréntesis, así que chequea la sintaxis antes, pero esa es la idea.

Espero que te sirva.

Miguel Angel Baeyens

BI Consultant

Comex Grupo Ibérica

Not applicable
Author

no esto ya lo tengo  esta bien solo que la ventas ya aperecen acumuladas y ahora y mientras se van acumulando va creciendo el % hasta llegar hasta 100.

Y con  antes todos estaban por debajo del 50% y son todos AA..

Lo que necesito es saber como ahora el ABCVENTAS me tome el acumulado y no el valor real que tiene porque si me tomael valor real siempre me va a dae AA y con el acumulado si va creciendo el % y me va dando diferentes ABC.

Espero si me aya dado a entender.

Saludos.

Miguel_Angel_Baeyens

Hola,

Puesto que ya tienes por un lado la agregación para valor, y también tienes el acumulado, puedes crear una nueva expresión que sea el Sum() partido por el RangeSum(), y es este valor el que deberías utilizar en el If() para obtener el ABC de Ventas.

Espero que te sirva.

Miguel Angel Baeyens

BI Consultant

Comex Grupo Ibérica

Not applicable
Author

Muchas gracias pero ya quedo listo lo que hice fue poner la exprecion que me mandaste para el acumulado y para el ABC use un if (column (1)) y listo salio.

Not applicable
Author

Hola oye una pregunta mas espero me puedas ayudar tengo lo siguiente.

Ventas         ABCVENTAS         Utope        ABCUTOPE

9%                      AA                       43%              AA

20%                    AA                       12%                C

60%                     A                         30%               A

80%                     C                         10%               B

Necesito hacer un conteo que me diga tienes tantos AA tanto de UTOPE como de venta y tambien que me los junte  como en el siguiene ejemplo

-------UTOPE       AA            A           B          C

|

V         AA             1              1          -             1

E

N           A             1               -          -              -

T

A           C             -                -           1             -

Espero me puedas ayudar.

Saludos.

Miguel_Angel_Baeyens

Hola Héctor,

Puedes probar en una tabla pivotante colocando ABCUTOPE en posición horizontal, arriba. Si no te resulta, deberás crear una dimensión calculada con los distintos valores AA, A, B, C, etc... sobre los que poder realizar un Sum() o un Count(). Sin conocer más de cerca los datos es difícil aconsejar cómo crear esta dimensión, seguramente con Aggr() y la fórmula que hayas empleado para el ABC, o similar.

Saludos.

Miguel Angel Baeyens

BI Consultant

Comex Grupo Ibérica

Not applicable
Author

ok muchas gracias por todo tu aporte una cosa mas como pongo en horizontal mi ABCUTOPE ya que solo me aprece como vertical.

Gracias.