Skip to main content
Announcements
Accelerate Your Success: Fuel your data and AI journey with the right services, delivered by our experts. Learn More
cancel
Showing results for 
Search instead for 
Did you mean: 
francis_gr
Creator
Creator

como contar los datos del último mes

Buenas noches!!

Estoy haciendo un grafico de barras para que me cuente aquellas personas con movimientos los 2 últimos años. Para el año 2009 no tengo problema ya que solo tengo los datos a diciembre. Para el 2010 no me sale bien ya que como tengo los valores de enero al mes actual (agosto) me acumula los movimientos ( me suma los movimientos de enero al ultimo mes), cuando sólo debería coger los de agosto

El grafico tiene las siguientes dimensiones

Dimension 1

=If([Evolucion Profesional]='P+' or [Evolucion Profesional]='P-','Ev.Prof.',(If([Evolucion Profesional]='CO' or [Evolucion Profesional]='CP','Cmbo.Destino',(If([Evolucion Profesional]='A' or [Evolucion Profesional]='B','Rotacion Externa')))))

Dimension 2



=If(Year([Fecha Inicio])>=Year(Ini_Movilidad) and (Year([Fecha Fin])<=Year(FechaInforme) or Len([Fecha Fin])=0) ,Año)

Donde FechaInforme es una variable que toma el valor en formato dd/mm/AAA del mes anterior al actual en este caso 31/08/2010

Ini_Movilidad es otra variable que toma el valor del ultimo mes del año anterior al actual en formato mm/aaaa, en este caso 12/2009

Año es un campo nuemerico correspondiente al año del registro de la tabla access que cargo para el grafico 2009 o 2010

mes es otro campo numerico de la tabla access con valores de 1 a 12

Dimension 3

Evolucion profesional. Es otro camp de la tabla access

Expresion

Utilizo esta



Sum( If ( IsNull(Centro_Dep) = 0, 1 , 0 ))

No es correcta ya que debería contar para 2009 los cambios de diciembre (unico mes que tengo) y para 2010 los del ultimo mes que tenga cargado (siempre el mes anterior al actual)

Gracias.







Espero me puedan ayudar.









12 Replies
Miguel_Angel_Baeyens

Hola,

¿Podrías adjuntar un fichero de ejemplo con lo que quieres lograr? Posiblemente el uso de funciones como after() o before() pudieran ayudar en tu ejemplo, pero sin ver más no me atrevo a sugerir nada.

Un saludo.

francis_gr
Creator
Creator
Author

Hola Miguel!.

No veo la forma de incluirte un fichero .qvw o una imagen con el grafico,

En en modelo de datos tengo personas con cambios por motivo profesional. Para el año 2009, tengo la foto a diciembre. Para el año actual, si alguien ha tenido un cambio en febrero por ejemplo, me aparecera ya todos los meses de forma que al sacar (eso intento) la informacion al mes actual, me lo cuente como cambio durante el año, lo que pasa es que tal y como está ahora el grafico, me lo cuenta 7 veces (feb a agost) en lugar de una, ya que lo que intento es que me cuente los cambios del ultimo mes cargado (donde estan tambien los producidos los meses anteriores.

Espero que te ayude a entender mi problema.

Saludos

Not applicable

Hola Francis:

Te recomiendo que consultes en la ayuda la parte de Análisis de Conjuntos, por lo que veo defines las metricas con if anidados algo que no es demasiado recomendable, con conjuntos puedes definirte las metricas en función a los filtros que necesites, por ejemplo, imaginemos que tenemos un qlikview para analizar ventas y que queremos obtener el importe del mes 9 (Septiembre) y el año 2010 sin tener en cuenta lo que tenga filtrado un usuario, con conjuntos podriamos definirlo así:

sum({$<Mes={'9'},Año={'2010'}>} [Importe])

Esta expresión se traduce por algo así: Del conjunto de las selecciones actuales ($) donde el Mes es 9 y el año es 2010 sumame el importe. Esta metrica se vería afectada por otros filtros, es decir, si pudieramos filtrar por cliente y seleccionamos uno de ellos el valor que devuelve cambiaría.

Una variante de esta metrica sería:

sum({1<Mes={'9'},Año={'2010'}>} [Importe])

que se traduce por del conjunto de todos los valores donde el mes es 9 y el año 2010 sumame el importe, en este caso no nos afectaría ningún filtro siempre devolvería el valor para el mes 9 y el año 2010 de todo el conjunto de datos.

Por último, podemos hacer esto mas dinámico definiendo el valor del mes y del año como variables, el resultado sería el siguiente

sum({$<Mes={$(vMaxMes)},Año={$(vAñoActual)}>} [Importe])

donde $(vMaxMes) es una variable definida como Max(Mes) y vAñoActual year(today())

Echale un ojo a la página de ayuda y prueba, los conjuntos son realmente útiles y en muchos casos necesarios.

Un saludo

Miguel_Angel_Baeyens

Hola,

En tu página personal (en el menú superior, donde pone tu nombre) puedes añadir un fichero en la parte inferior derecha de la página. Habitualmente, si estás contando códigos de personal, por ejemplo, utilizando algo como

=Count(Distinct Codigo_Personal)


Contará sólo los códigos de personas en el total del año, no mes a mes.

La propuesta del análisis de conjuntos sin duda es útil, dependiendo de como tengas organizado el modelo de datos.

Un saludo.

francis_gr
Creator
Creator
Author

Hola Miguel:

Ya he puesto un ejemplo del grafico que intento realizar. Como verás, el dato que aparece para 2010 es la suma de todos los meses que tengo cargados (enero a agosto), pero yo necesito solo el último mes.

Gracias

francis_gr
Creator
Creator
Author

Hola hvictor.

Muy interesante lo que me indicas. El problema (que veo) es que en tu expresión

sum({$<Mes={$(vMaxMes)},Año={$(vAñoActual)}>} [Importe])

sería valida si quiero mostrar solo el ultimo mes del año actual, pero en mi grafico, tengo que mostrar el dato a diciembre del año anterior al actual (dic-2009) y el ultimo mes cargado del año actual (en mi caso ago-2010).

Saludos

Not applicable

El ejemplo que has puesto pide usuario...

Con respecto a lo que me comentas, las expresiones que necesitarias podrían ser las siguientes.

sum({$<Mes={'12'},Año={$(vAñoAnterior)}>} [Importe]) para diciembre del año anterior

y

sum({$<Mes={$(MaxMesCargado)},Año={$(vAñoActual)}>} [Importe]) para el maximo mes cargado

donde vAñoAnterior es year(today())-1 y MaxMesCargado seria el month(max({1} FechaCarga)).

Un saludo



francis_gr
Creator
Creator
Author

ok!

Ya he quitado el usuario.

Como verás, en la tabla de datos, calculo el ultimo mes, pero no hace bien la cuenta.

Gracias

Not applicable

Francis sustituye tu expresión en el gráfico de barras por esto:

=Sum ({$<mes={$(maxMes)}>} If ( IsNull(Centro_Dep) = 0, 1 , 0 ))

y crea una variable llamada maxMes con el siguiente valor:

=Max(mes)

con eso si seleccionas un año te vevuelve lo que tu necesitas,es decir, el valor a ultimo mes con datos cargados.

Un saludo