Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik Open Lakehouse is Now Generally Available! Discover the key highlights and partner resources here.
cancel
Showing results for 
Search instead for 
Did you mean: 
rcarrion
Contributor
Contributor

Trimestres con varias Variables

Muy Buenas,

Soy nuevo en el Foro y quisiera hacer una pregunta por si alguien me pudiera ayudar. En Qlikview 12, ¿Como podria acumular sumas teniendo definidas Variables distintas de mes y año. hasta ahora, me dá el resultado con la Variable "mes" AND "año", pero si selecciono dos o tres meses y un año, no tengo resultados.

Gracias por vuestra ayuda.

9 Replies
rubenmarin

Hola, no acabo de entender la pregunta, ¿Podrías poner un ejemplo de la expresión que estás usando? Si puedes subir un documento que muestre el problema sería incluso más fácil de responder.

Comentar también que hay un foro dedicado a preguntas en español: https://community.qlik.com/t5/Qlik-en-Espa%C3%B1ol/gp-p/spanish-group

Saludos.

rcarrion
Contributor
Contributor
Author

Hola Ruben y Gracias  de antemano por intentar ayudarme. Te aclaro:

Tengo definidas determinadas Variables referente a Fechas (Dia, meses, Trimestres, Semestre...), cuando selecciono mas de dos-tres variables..(2 meses,.... 2 Trimestres...) no me dá resultados.

Te adjunto QVW por si te ayuda.

Gracias otra vez.

 

    

rubenmarin

Buenas, el planteamiento que usas no parece el más optimo, pero por tratar de que funcione así...

- Si seleccionas varios meses la variable mes select tendrá todos esos valores, por ejemplo: abr., may., por lo que hará la comparación completa: ¿'abr., may.'='abr.'? ¿'abr., may.'='may.'-> Ninguna se cumple, por lo que ningún if se ejecuta.

Para evitar lo anterior se podría usar SubstringCount() o Index() para buscar una cadena dentro de otra.

- Si usas varios If concatenados al final solo se ejecutará uno, porque una vez entra en la parte TRUE de uno ejecuta esa parte y no va a mirar el resto de IFs.

Para eviar esto puedes  incluir los ifs dentro de un rangesum para que e eejcuten todos los que cumplan la condición.

O podrías quitar el set analysis de cada mes para que los sume todos.

- Por otra parte los datos están solo el día 1, si seleccionas cualquier otro día no tendrá datos para sumar

 

Adjunto el documento con 2 opciones para la primera expresión, puedes guiarte con esa para tratar de arreglar la siguientes.

Saludos.

rcarrion
Contributor
Contributor
Author

Muchisimas gracias Ruben.

Lo voy a probar y te tengo informado.

Un Saludo.

rcarrion
Contributor
Contributor
Author

Hola Ruben

He estado siguiendo tus instrucciones y probando con la solución que me dabas. No salen los resultados.

Te aclaro, el problema de los meses-años que te describo, es que dependiendo del mes,  los cálculos que debe realizar en las formulas pueden ser distintos (y en varios meses lo son). Por ello pensé  utilizar Variables y Condicionales para cada Expresión.  

En la Columna de OBJ. PTOS. CORE que añades la funcion "RangeSum(If(SubStringCount.....", cuando seleccionas varios meses, no dá los resultados. También me pasaría igual con la columna CORE PARTI, que al seleccionar varios meses-año, tampoco da el resultado.

Desconozco cual sería la sintaxis o función en el script de la Expresión (seguramente existe) para solucionarlo. Sigo con ello.

Un saludo

rubenmarin

Buenas, esa columna solo tiene el ejemplo para los meses 4 y 5, habría que completarla para añadir el resto de meses:

If(SubStringCount(MES_SELECT,MES4) AND YEAR_SELECT=ANO19 -> Añade los datos del mes 4 de 2019

If(SubStringCount(MES_SELECT,MES5) AND YEAR_SELECT=ANO19 -> Añade los datos del mes 5 de 2019

-> Faltaría añadir el resto de meses

Al estar dentro de un substring si no hay datos para un mes suma cero.

Si solo necesitas el dato de un mes podrías filtrar por "max(Mes)" para obtener el mes que debes mostrar y aplicar la fórmula que le corresponda.

Saludos.

rcarrion
Contributor
Contributor
Author

Buenas Ruben. Muchas gracias por tu respuesta. Efectivamente he probado la solución que me comentas, y ya si funciona. No obstante, te consulto,  ya que me encuentro con los siguientes problemas:

1.- Cuando selecciono mas de 6 Meses en el mismo Año, no realiza bien el acumulado (Si selecciono 6 meses, Si lo da bien).

2.-Cuando tengo que seleccionar varios meses de distintos años  (MES11, AÑO19 - MES12, AÑO19- MES1, AÑO20...), lógicamente no me da las sumas (Nuestros Objetivos van desde Abril-19 a Marzo-20). Como podría solucionarlo.  Muchisimas gracias anticipadas.

Saludos.

rubenmarin

Lo de que solo sume 6 meses no le veo mucho sentido...puede que estés superando el límite de texto para una expresión.. y para lo de mostrar distintos años habría que tener unca mpo que tenga a la vez el mes y el año en un único valor.

En cualquier caso habría que buscar una forma más sencilla de hacer las expresiones, lo ideal sería que la expresión para calcular los objetivos fuese solo Sum(Obj_Ptos_Peg_Parti) y que el script se prepare haciendo las operaciones necesarias para que el campo Obj_Ptos_Peg_Parti sume los valores que corresponden a cada mes.

O si eso se te complica como mucho sumar siempre los campos Obj_Ptos_Peg_Parti_01 a Obj_Ptos_Peg_Parti_20 y que en el script se ponga un cero a los que no deban sumar según el periodo, o hacer la operaciones que correspondan para que al final sea una operación común para todos los meses.

rcarrion
Contributor
Contributor
Author

Ok. Ruben. Lo probaré.  Muchas gracias.

Saludos