Skip to main content
Announcements
Qlik Introduces a New Era of Visualization! READ ALL ABOUT IT
cancel
Showing results for 
Search instead for 
Did you mean: 
asier
Partner - Contributor III
Partner - Contributor III

Acumulado de las ventas de año hasta el mes seleccionado

Buenos días a todos, tengo una tabla simple con una dimensión por familia y una expresión con la suma del campo importe. Quiero añadir una columna para obtener el importe acumulado hasta el mes seleccionado de tal modo que en una expresión veo las ventas de mayo y en la otra expresión veo las ventas acumuladas hasta mayo, incluido el mes de mayo.

Saludos y gracias a todos

1 Solution

Accepted Solutions
jmmayoral3
Creator
Creator

Supongo que tendrás varios años, cada uno con sus correspondientes meses.

Te propongo que te crees en el calendario maestro un campo mas que contenga el periodo con el formato AñoMes (ejemplo: 201407 para julio de 2014).

La forma de crearlo sería algo así:

LOAD *,

    Año*100+num(Mes)                                                                            as AñoMes,

  ......

después crea una variable que contenga el máximo periodo seleccionado. Si un usario selecciona, por ejemplo,  marzo, abril y mayo de 2015, esta variable tendrá 201505.

ejemplo: vPeriodoMayorSeleccion = MAX(AñoMes)

Crea otra variable que contenga el primer periodo del año seleccionado. siguiendo con el ejemplo anterior, esta variable debería contener 201501

ejemplo: vInicioAño = =num(left(MAX(AñoMes),4)&'01')

Por último, definir una nueva variable, o directamente una expresión en el gráfico (yo prefiero definir variables que luego uso en los gráficos como expresiones porque si hay que hacer una modificación sólo lo hago en un sitio) que haga el cálculo:

ejemplo: vImporteAcumuladoAño= num(sum({1<AñoMes={'>=$(vInicioAño)<=$(vPeriodoMayorSeleccion)'}>} [importe]),'#.##0,0%');

Ojo. Observa que el conjunto es {1}, no {$}. esto es así porque tienes que sumar importes de meses que NO están en la selección que hace el usuario.

View solution in original post

6 Replies
JoaquinLazaro
Partner - Specialist II
Partner - Specialist II

Puedes poner tu expresión?

Con mes menor o igual a mayo será suficiente !!!!

alex_millan
Creator III
Creator III

Hola Asier,

para calcular el total hasta el mes seleccionado puedes utilizar el Set Analysis, así:

Sum({<MesID = {"<=$(=Max(MesID))"}, Año =, Mes =, Dia= >}Importe)

Para utilizar esta sentencia, puedes utilizar un campo MesID en el que relaciones secuencialmente todos los meses, así, si los datos empiezan en Octubre-2014, su MesID será 1 y Mayo-2015 tendrá MesID igual a 8.

Esta expresión deberás adaptarla según tu estructura de datos. Espero que te sea útil.

Un saludo

jmmayoral3
Creator
Creator

Supongo que tendrás varios años, cada uno con sus correspondientes meses.

Te propongo que te crees en el calendario maestro un campo mas que contenga el periodo con el formato AñoMes (ejemplo: 201407 para julio de 2014).

La forma de crearlo sería algo así:

LOAD *,

    Año*100+num(Mes)                                                                            as AñoMes,

  ......

después crea una variable que contenga el máximo periodo seleccionado. Si un usario selecciona, por ejemplo,  marzo, abril y mayo de 2015, esta variable tendrá 201505.

ejemplo: vPeriodoMayorSeleccion = MAX(AñoMes)

Crea otra variable que contenga el primer periodo del año seleccionado. siguiendo con el ejemplo anterior, esta variable debería contener 201501

ejemplo: vInicioAño = =num(left(MAX(AñoMes),4)&'01')

Por último, definir una nueva variable, o directamente una expresión en el gráfico (yo prefiero definir variables que luego uso en los gráficos como expresiones porque si hay que hacer una modificación sólo lo hago en un sitio) que haga el cálculo:

ejemplo: vImporteAcumuladoAño= num(sum({1<AñoMes={'>=$(vInicioAño)<=$(vPeriodoMayorSeleccion)'}>} [importe]),'#.##0,0%');

Ojo. Observa que el conjunto es {1}, no {$}. esto es así porque tienes que sumar importes de meses que NO están en la selección que hace el usuario.

ramoncova06
Specialist III
Specialist III

lo ideal seria ver un ejemplo de los datos para poder recomendar alguna solucion

Yo usaria algo parecido a lo que recomienda Alex, pero agregando las fecha mínima del Año a la expresion

Sum({<MesID = {"<=$(=Max(CalendarDate)) >=$(yearstart(Max(CalendarDate))))"}, Año =, Mes =, CalendarDate= >}Importe)

asier
Partner - Contributor III
Partner - Contributor III
Author

Gracias a todos por las respuestas, al final la solución que me ha servido es la de Jose Manuel.

Gracias a todos!!!

asier
Partner - Contributor III
Partner - Contributor III
Author

Muchas gracias, es justo lo que buscaba.