Skip to main content
Announcements
Introducing Qlik Answers: A plug-and-play, Generative AI powered RAG solution. READ ALL ABOUT IT!
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Suma Acumulada en Cuadro de Texto.

¡Hola a todos!


Espero me pudieran apoyar  y orientar con este problema que tengo:


Quiero sumar el acumulado de las ventas desde el inicio de Año hasta la selección de mes, por ejemplo:

NoMes Mes      Ventas

     1     Ene      10

     2     Feb      5

     3     Mar      5

     4     Abril 5

Si selecciono Febrero entonces Ventas = 15 o si selecciono Abril entonces Ventas = 35.


Estoy ocupando Set Analysis con la siguiente fórmula:


=rangesum(above(sum({<NoMes = {">=$(=min(NoMes))<=$(=max(NoMes))"},[Año]={"$(#vMaxYear)"} >} VALOR),0,RowNo()))

Esta formula me esta arrojando la suma de mi selección pero no mi acumulación de mi mes mínimo a mi selección en ese momento.

Como nota esto lo quiero colocar en tu cuadro de texto.

¡Muchas gracias anticipadas por su apoyo!

¡Saludos!

1 Solution

Accepted Solutions
Not applicable
Author

Solo el campo que el usuario puede seleccionar.

Hice algunas pruebas con este set analysis y así me salio el resultado que quería:

=sum({<Tabla={'Ventas'},[Año]={"$(#vMaxYear)"},Mes=,NoMes={">=('1')<=$(=vMaxFecha)"}>}Valor)

La variable de vMaxYear tiene este set analysis: =IF(GetSelectedCount(Mes)>0,NoMes,'No')

¡Te agradezco mucho tu apoyo!

View solution in original post

10 Replies
agustinbobba
Partner - Creator
Partner - Creator

Hola Enrique,

Tenes que hacer que tu set análisis no tome en cuenta la selección para obtener el mínimo.

Proba esto:

rangesum(above(sum({<NoMes = {">=$(=min({<NoMes=>}NoMes))<=$(=max(NoMes))"},[Año]={"$(#vMaxYear)"} >} VALOR),0,RowNo()))

Saludos,

Agustin

ramoncova06
Specialist III
Specialist III

el problema esta el min que estas usando, ese se refleja de manera directa sobre tu selección

si lo vas a meter a un texto no es necesario hacer un rangesum ni usar above

yo normalmente recomiendo meter este tipo de funciones en una variable en lugar de hacer el set analysis mas difícil de leer, pero en teoría esto te debe de funcionar

sum({<NoMes = {">=$(=min({<[Año]={"$(#vMaxYear)"},NoMes=>}NoMes))<=$(=max(NoMes))"},[Año]={"$(#vMaxYear)"} >} VALOR)

Not applicable
Author

¡Muchas gracias por tu ayuda Ramón!

Siguiendo tu consejo se me ocurrió hacer esta formula y funciono:

=sum({<NoMes = {">=1<=$(=max(NoMes))"} >} Valor) pero ahora tengo un problema, cuando selecciono únicamente el valor del campo NoMes (que es el mes en numero) funciona pero cuando seleciono el nombre del mes (Enero, Febrero, etc) me sale la suma total.

¿Tendría que adecuar esta fórmula que hice con un tipo de maxstring o algo por el estilo? Esto campos están relacionados bien en mi DER.

¡Gracias!

Not applicable
Author

¡Muchas gracias por tu respuesta Agustín!

Probé tu set analysis pero me arrojo el mismo resultado

ramoncova06
Specialist III
Specialist III

los campos pertenecen a la misma tabla de dimensiones ?

En teoría debería de funcionar sobre los valores possibles, pero los campos deben de tener una relación directa.

Maxstring not va a funcionar porque los meses not tienen un orden alfabético 

Not applicable
Author

Si se encuentran en la misma tabla, pero por una extraña razón solo funciona con el filtro de NoMes y con el campo de Mes me trae la suma completa mas no el acumulado.

ramoncova06
Specialist III
Specialist III

Estas cambiando únicamente el campo que el usuario puede seleccionar ? o también estas modificando el set analysis ?

agustinbobba
Partner - Creator
Partner - Creator

Hola Enrique,

Proba este set analisys.

=sum({1<NoMes={">= $(=Min({1<NoMes=>}NoMes)) <= $(=Max(NoMes))"}>} Ventas)

2016-06-06_17-40-41.png

Not applicable
Author

Solo el campo que el usuario puede seleccionar.

Hice algunas pruebas con este set analysis y así me salio el resultado que quería:

=sum({<Tabla={'Ventas'},[Año]={"$(#vMaxYear)"},Mes=,NoMes={">=('1')<=$(=vMaxFecha)"}>}Valor)

La variable de vMaxYear tiene este set analysis: =IF(GetSelectedCount(Mes)>0,NoMes,'No')

¡Te agradezco mucho tu apoyo!