Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hola,
Tengo un problemilla con el set analysis, a ver si alguien me puede ayudar.
Estoy trabajando con dos cuadros de texto, en el primero me muestra el valor de un indicador para el año seleccionado, y en caso de que no haya seleccion para el valor máximo; y el segundo cuadro de texto debe mostrar el valor del mismo indicador para el mes anterior al seleccionado.
Mi campo ID_Mes viene en formato YYYYMM.
Os cuento un poco como lo he hecho.
Estas variables las he definido asi:
v_MesActual=max(ID_Mes)
v_MesAnterior=if(Right(v_MesActual,2)='01', num((Left(v_MesActual,4)-1)&'12'), v_MesActual-1)
Por tanto en mi expresion para el mes actual tengo lo siguiente:
count({<ID_Filial={1,2,3},ID_Dept={1,3,5}, ID_Mes={$(v_MesActual)}>}distinct ID_Empleado)
a la hora de definir mi expresión para el mes anterior, le tengo que decir que no "me aplique" los filtros para el mes ya que sino entiende que el mes seleccionado no se corresponde con el mes Anterior (logico) pero siempre me da 0.
count(1{<ID_Filial={1,2,3},ID_Dept={1,3,5}, ID_Mes={$(v_MesAnterior)}>}distinct ID_Empleado)
Lo hago utilizando el 1, pero yo quiero establecer la posibilidad de que filtre por todos los campos excepto por el mes que ya viene definido por la variable.
He probado con dos condiciones en el set Analysis utilizando el operador *, pero me obliga a poner el 1 en ambas. ¿Alguna idea?
Gracias
Maria
Añade Mes= a la expresión y listos
=sum({<OrderDate={$(v_MesAnterior)}, Mes=>}Sales)
Con eso evitas que se aplique la selección de mes al cálculo, si tienes que discriminar algun campo más, haces lo mismo.
Así vas jugando con los campos, incorporándolos o no al set de datos
Hola,
Una duda, estás utilizando un calendario maestro? de ser asi podrías crearte un campo ID para cada mes o periodo (que sea numérico). Así te será más fácil luego solo tendrías que poner esto:
v_MesActual=max(ID_Mes)
v_MesAnterior=max(ID_Mes-1)
Es solo una idea.
saludos,
No lo estoy usando pero podria probar, lo unico que nunca he hecho un calendario maestro solo de fecha sin dia, en formato MMYYYY.
¿Me recomiendas algo antes de probarlo?
Hola María:
En el calendario
LOAD Year(TuFecha) * 12 + Num(Month(TuFecha) as AñoMesOrd
Luego tienes varios recursos, me vale el propuesto por Jordi
v_MesActual=max(AñoMesOrd )
v_MesAnterior=max(AñoMesOrd -1)
Saludos
Joaquín
Básicamente tu propuesta fallará en enero ... 201601 - 1 será 201600 no diciembre de 2015 !!!!!!
Usa la conversión a ordinal !!!!!
Hola,
Si quieres mira este enlance aunque sobre este tema hay muchos. En él te explica como probar y crear el calendario maestro.
Understanding the Master Calendar (video)
Tu échale un ojo y luego decides si te simplifica la vida o te la complica...
Saludos,
Por cierto, tienes las funciones Year(TuFecha) y Month(TuFecha) que te permite cálculos sobre fechas sin tener que manipular substrings de los campos fecha.
Saludos,
Joaquín
Hola,
independientemente de que puedas utilizar otras aproximaciones, yo pruebo con tu definición haciendo unas ligeras modificaciones (yo no defino el vMesActual) y creo que funciona.
Te adjunto ejemplo.
Saludos,
Hola,
Yo creo que tal y como define la variable para el periodo anterior ese punto lo tiene controlado, ¿o hay algo que estoy pasando por alto?
Hola Alex,
Tu opción creo que se adapta quizá más a lo que pide Maria.
Un Saludo