Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
walterlh
Creator II
Creator II

Selección de meses

Hola amigos! mi consulta tiene que ver con la selección correcta de los meses en el calendario creado con cuadros de listas. Tengo dos años diferentes, 2013 y 2014. El problema es que al querer seleccionar los últimos 3 meses (para un análisis) necesito solo Diciembre de 2013, Enero de 2014 y Febrero de 2014 y cuando hago la selección común me trae todos los datos que necesito y también Enero 2013 y Febrero 2013 porque los junta con los mismos meses de 2014. Qué puedo hacer para seleccionar solo lo que quiero?

Imagen113624165.png

1 Solution

Accepted Solutions
javier_florian
Creator III
Creator III

Hola Walter,

Para la construcción de la variable ten en cuenta la siguiente expression:

Num(Year(Fecha)&If(Len(Num(Month(Fecha)))=1,'0'&Num(Month(Fecha)),Num(Month(Fecha)))) as Año_Mes,

Y para trimestre móvil, un set expression así:

{<Año_Mes={">=$(=Num(If(Num(Right(Max(Año_Mes),2))=2,(Max(Año)-1)&'12',If(Num(Right(Max(Año_Mes),2))=1,(Max(Año)-1)&'11',(Max(Año_Mes))-2))))<=$(=Num(Max(Año_Mes)))"}>}

Esta expression la puedes emplear en un Sum({"aquí va la expression"} Ventas), y te realiza el cálculo de acuerdo al mes seleccionado o al mes actual.

-JFlorian

View solution in original post

11 Replies
jolivares
Specialist
Specialist

Para este caso, me imagino que tienes una grafica, lo mejor es hacer una variable que le puedas especificar los meses que quieres ver hacia atras y asi lo selecciona.  Tal y como lo tienes ahora no es posible, ya que diciembre pertenece tanto a 2013 como a 2014.

Otra opcion es que hasta un campo con la funcion MonthName(Fecha) en el script y le pongas MesAno.  Aqui QV te devuelve Dic 2013, Ene 2014... etc.  Haces una lista con este campo y lo puedes seleccionar.  Tal vez esta opcion no es tan practica.

Not applicable

mmmm. en mi caso el filtro afectaba gráficas y tablas lo que hicimos fue en una de las tablas agregamos la fecha completa, le dimos selectores desplegables y ya el cliente podría filtrar cosas de este tipo <2012/01/15<2013/01/20

espero te sirva

walterlh
Creator II
Creator II
Author

Hola TalianaFernandez muchas gracias por contestar a mi pregunta. Mi calendario afecta a todo el documento de QLikView, es decir a todas las tablas y gráficos. Los gráficos más importantes son de comparaciones de ventas entre un mes y otro, utiizando una comparación donde al seleccionar un mes me trae las ventas de dicho mes y el anterior, mi problema me arruina todos estos informes (tablas pivot y simples, gráficos, etc.) ya que si elijo Enero de 2014 donde debería aparecer Dic 2013 sale todo nulo porque creo que al cambiar de año no tiene efecto mi código (Sum({$<Mes={$(=Only(Mes)-1)}>} MontoVenta)) para calcular el monto de venta del mes anterior. Se te ocurre algo?
javier_florian
Creator III
Creator III

Hola Walter,

En proyectos que he modificado, he tenido que emplear YYYYMM para poder manejar por ejemplo, graficos o pivot table para trimestre móvil, es decir, traer info para 201312, 201401 y 201402.

Por lo tanto tu puedes traer:

- Mes actual: Max(Añomes),

- Trimestre móvil: Max(Año_Mes))-2

- Año actual: Max(Año),

-JFlorian

walterlh
Creator II
Creator II
Author

Gracias por tu aporte Javier, me parece factible así que lo voy a intentar! Un abrazo.

Not applicable

La mejor opción sin duda es la de Javier

walterlh
Creator II
Creator II
Author

Lo estuve intentando y me queda por ejemplo enero de 2013 así "20131". No consigo que me queden los meses de dos dígitos, con el cero delante en aquellos que solo tienen uno. Porque sino Enero de 2014 (20141) es más chico que Diciembre de 2013 (201312). Como hago que los meses tengan el formato de dos dígitos? es decir 01, 02, 03, ...., 11, 12

Not applicable

Prueba con algo como esto:

if mes<10 then

mes1='0' & mes

else

mes1=mes

end if

Fecha=$(Año) & &(mes1)

javier_florian
Creator III
Creator III

Hola Walter,

Para la construcción de la variable ten en cuenta la siguiente expression:

Num(Year(Fecha)&If(Len(Num(Month(Fecha)))=1,'0'&Num(Month(Fecha)),Num(Month(Fecha)))) as Año_Mes,

Y para trimestre móvil, un set expression así:

{<Año_Mes={">=$(=Num(If(Num(Right(Max(Año_Mes),2))=2,(Max(Año)-1)&'12',If(Num(Right(Max(Año_Mes),2))=1,(Max(Año)-1)&'11',(Max(Año_Mes))-2))))<=$(=Num(Max(Año_Mes)))"}>}

Esta expression la puedes emplear en un Sum({"aquí va la expression"} Ventas), y te realiza el cálculo de acuerdo al mes seleccionado o al mes actual.

-JFlorian