Skip to main content
Announcements
See why Qlik is a Leader in the 2024 Gartner® Magic Quadrant™ for Analytics & BI Platforms. Download Now
cancel
Showing results for 
Search instead for 
Did you mean: 
francis_gr
Creator
Creator

Simplificar codigo de dimension y analisis de conjuntos

Buenas!!

Tengo un grafico de barras donde utilzo 2 dimensiones

Dimension 1

=If(Date(MakeDate(Año,mes),'MM/YYYY')>=Ini_Hco and Date(MakeDate(Año,mes),'MM/YYYY')<=Date(MakeDate(Year(FechaInforme),Month(FechaInforme)),'MM/YYYY'),MESAÑO)

Donde Ini_Hco es una variable que indica la fecha a partir de la que quiero muestre los datos (12-2006) y FechaInforme es otra variable que me indica la fina de los datos a mostrar (08-2010)

Dimension 2 es un campo de una tabla access
El problema es que el grafico no es estable, es decir, las barras desaparecen por momentos y vuelven a aparecer.

Creo que el problema puede ser que la 1 dimension es muy compleja, por lo que agradecería si alguien me puede indicar como podría simplificarse.
Respecto a mi segunda pregunta..¿me podrían explicar para que casos se utiliza el "análisis de conjuntos?
Gracias por su ayuda
3 Replies
Miguel_Angel_Baeyens

Hola,

A tu primera pregunta te sugeriría que creases un calendario maestro, de forma que todas las posibles dimensiones temporales las tengas ya en una tabla aparte enlazadas con tu campo de fecha principal.

En el foro tienes muchos ejemplos y variados sobre como realizar un calendario maestro (o varios calendarios) pero básicamente es crear una nueva tabla cuyo campo de enlace es el campo de fecha, al que añades otros campos que puedan resultar útiles para tus aplicaciones: Año, Mes, Semana, Año-Mes, Semana-Mes, Semana-Año, Día, Día de la semana...

Por otro lado, el análisis de conjuntos se utiliza en funciones de agregación para acotar los registros sobre los que dicha agregación debe hacerse. Imagina que tienes una tabla de Ventas y otra de Clientes, y otra de Representantes, y en tu nueva tabla pivotante quieres mostrar sólo aquellas ventas de aquellos clientes cuyo Representante es "Rep1". Una manera fácil de hacerlo es a través del análisis de conjuntos, por ejemplo utilizando como expresión

Sum({< Representante = {'Rep1'} >} Ventas)


Y como dimensión el campo Cliente.

Otro ejemplo sería mostrar sólo las ventas de 2010

Sum({< Año = {2010} >} Ventas)


La ventaja del análisis de conjuntos es la velocidad comparado con una expresión con if() y el uso de memoria. Con pocos registros no se nota mucho pero con medio millón de registros es posible que un gráfico no llegue a cargarse.

Espero que te sirva.

francis_gr
Creator
Creator
Author

Muchas gracias Miguel!!

He buscado en el foro y he podido crear mi tabla de calendario como me indicaste.

Respecto a los conjuntos, me quedan claros tus ejemplos.

He encontrado esta expresión. Me la podrías explicar?? en especial como opera esta parte de la expresion

({$<[Mes Datos]+={*}>}

Sum ({$<[Mes Datos]+={*}>} N_OPER_ANU_RET) /Sum ({$<[Mes Datos]+={*}>} N_OPER_COB)

Gracias



Miguel_Angel_Baeyens

Hola,

Sinceramente, no le veo mucho sentido así sin más. En teoría, indica que a las selecciones actuales en el campo "Mes Datos" en el momento de mostrar el gráfico se le añadan todos los posibles valores seleccionados. Posiblemente en su modelo de datos tenga sentido para forzar de alguna forma a que tome todos los posibles valores de ese campo. Habitualmente no hace falta esa expresión, ya que por defecto el análisis de conjuntos ya se toma sobre todos los valores de un campo, salvo que en el propio conjunto se modifiquen.

Si tienes el ejemplo, prueba a eliminar todo el análisis de conjuntos. Probablemente el resutlado sea el mismo sin él.

Un saludo.