Skip to main content
Announcements
NEW Customer Portal: Initial launch will improve how you submit Support Cases. FIND OUT MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

¿Es posible crear un if en donde se compare una variable con el máximo valor que puede tomar esa variable?

Quiero crear rangos de colores mediante una expresión y lo quiero hacer dividiendo el rango en iguales amplitudes (min-máx /3, máx /3-máx*2/3 y máx*2/3-max)

El problema que tengo es que cuando quiero armar los rangos me pone como que todos los valores entran en el rango más alto.

La expresión que estoy usando es la siguiente:

=If($(vShareClientesZC) < Max(Aggr(Count(distinct ClienteId)/sum(HogaresxMzna),ManzanaKey))/3 ,'#ff0b05',

If($(vShareClientesZC) < Max(Aggr(Count(distinct ClienteId)/sum(HogaresxMzna),ManzanaKey))*2/3 ,'#ffff05',

if(IsNull($(vShareClientesZC)),'#ff0b05','#40ff00')))

Lo que yo creo que está pasando es que Qlik está comparando cada share con el mismo valor de share divido 3, etc... No está comparándolo con el valor max de share de todas las filas.

¿Alguien sabe como puedo solucionarlo?

Muchas gracias por adelantado.

2 Replies
hector_munoz
Specialist
Specialist

Hola Juan Pablo,

Mírate el 'análisis de conjuntos' porque así vas a poder crear una expresión que te permita asignar un valor fijo a una variable.

Por ejemplo, si en una variable almaceno = Max(Year(Fecha_Venta)), cada vez que la use contra un registro me va a tener en cuenta los valores de Fecha_Venta asociados con él y además el resto de valores seleccionados en los demás campos y con todos ellos va a calcular el año máximo. Si a la misma variable le asigno = Max({1} Year(Fecha_Venta)), esta va a almacenar siempre el año máximo independientemente de contra qué lo compare o qué esté seleccionado. Para ello uso el conjunto {1} que es el de todos los datos del modelo independientemente de las selecciones.

Espero que te sirva.

Saludos,
H

rubenmarin

Hola Juan Pablo, puedes añadir las expresiones por separado para comprobar los valores y ver que está haciendo:

- $(vShareClientesZC)

- Max(Aggr(Count(distinct ClienteId)/sum(HogaresxMzna),ManzanaKey))

Puede que falten algunos 'TOTAL' o '{1}' en la parte del max, si es un valor global igual sería mejor calcularlo en una variable para poder usar algo como:

If($(vShareClientesZC) < $(vMaxShare)/3 ,'#ff0b05', ...