Skip to main content
Announcements
Qlik Introduces a New Era of Visualization! READ ALL ABOUT IT
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

cuadro de lista con valores calculados

hola, espero me puedan ayudar.

Tengo una tabla en la cual mediante set analysis calculo los valores para una columna y de acuerdo al resultado se le asigna los valores 0 o 1.

ahora como se puede crear una cuadro de lista para poder filtrar los valores 0 o 1 de la tabla?

gracias.

7 Replies
ssanchez
Partner - Contributor III
Partner - Contributor III

Hola Christian:

Para poder seleccionar los valores en una lista, el campo debe ser una dimensión construida en el script de carga. No es posible seleccionar valores de una expresión en un cuadro de lista si no está asociada a una dimensión.

Un alternativa es construir una tabla no asociada al modelo que permita la selección de dos valores e incorporar el valor seleccionado a la expresión que calcula 0 o 1 de forma que anule la expresión dejando sólo los valores seleccionados. Si te es posible, sube un ejemplo e intentamos ver alternativas.

Un saludo

Not applicable
Author

hola santiago gracias por el interés,

para este caso, no puedo hacer el calculo en el sript de carga, por que el calculo de los valores dependen de los rangos de fechas seleccionados.

adjunto un ejemplo simple, con las columnas con los valores calculados (sin rango de fechas), la idea es crear un cuadro de lista que contenga los valores "con stock" y "sin stock" dependiendo de la selección filtre el valor 1 en cada columna.

ssanchez
Partner - Contributor III
Partner - Contributor III

Hola Christian:

Te adjunto un documento con dos posibles soluciones.

La primera muestra los artículos en la tabla con o sin stock a través de un selector independiente del modelo, un nuevo campo denominado TieneStock. La expresión de stock se ha modificado para tener en cuenta la selección en este nuevo campo haciendo null el resultado para las filas no seleccionadas.

La segunda selecciona los materiales con o sin stock a través de un botón con un simple marcador para los materiales que cumplen que tienen un stock superior al mínimo:

=(sum(stock)-sum(stockseguridad))>0

manteniendo las expresiones de las dos columnas de 0 y 1. El resultado es similar al primero pero tiene efecto en todo el documento, no sólo en una tabla, al seleccionar los valores del campo [codigo material].

Ambas soluciones no se pueden aplicar al mismo tiempo ya que pueden dar como resultado selecciones incompatibles y no mostrar datos en la primera tabla.

Espero que te sea útil.

Un saludo

Not applicable
Author

Hola Santiago,

muchas gracias por el ejemplo, adjunto una modificación que he realizado basándome en tu ejemplo, he puesto una condicional para mostrar las columnas de stock dependiendo la selección, en el ejemplo funciona bien, pero en mi desarrollo no, creo que es por la

tabla dinámica y las dimensiones asociadas.

If(Only(TieneStock) = 'Con stock',1,If(len(Only(TieneStock))= 0,1,0))

ejemplo_cuadro_lista.png

ssanchez
Partner - Contributor III
Partner - Contributor III

Hola Christian:

Si el ejemplo es similar a tu caso real, la nueva expresión que me indicas las has colocado en el condicional de la columna para mostrarla o no, por lo que no afecta el comportamiento del resto de mediciones o dimensiones. Se muestra o no dependiendo sólo del valor seleccionado en el campo.

Si te es posible, por favor sube un archivo sólo con esa tabla pivotante (no es necesario script de carga) y vemos la mejor expresión para esas columnas en ese caso concreto.

En el ejemplo es sencillo pero en esta tabla pivotante no tengo claro qué quieres conseguir, si mostrar los materiales con stock (y/o sin stock) por debajo de mínimo y no mostrar el resto de filas o sólo indicar los que tienen stock por debajo de mínimo aunque se muestren el resto de filas por otras expresiones.

Un saludo

Not applicable
Author

Hola Santiago,

adjunto el archivo, podrás observar que las columnas 7,8 y 9 son muy similares a las columnas 10,11 y 12 respectivamente, las primeras columnas se calculan en tiempo de carga y se agrega un flag para el filtro "Stock Seg?", las otras columnas se calculan seleccionando un determinado periodo y restando 6 meses a la fecha seleccionada.

ejemplo, esta seleccionado el periodo 03-2014 por lo tanto el inicio del periodo es  09-2013

en base a todo ese grupo se hace el calculo, es por eso que no se puede hacer en tiempo de carga.

ya agregue la dimensión no relacionada "Tiene Stock Seg" que explicaste, para las columnas 10,11 y 12, pero no he podido hacer que se comporte como el primer filtro "Stock Seg?"

muchas gracias por el interés prestado.

Saludos.

ssanchez
Partner - Contributor III
Partner - Contributor III

Hola Christian:

En el cálculo de la expresiones también debe intervenir el valor seleccionado en el campo "Tiene Stock Seg", no sólo para mostrar la columna sino también para determinar si se calcula o no para los valores de la dimensión. La expresión podría quedar como sigue, también te adjunto el ejemplo.

if(left(only([Tiene Stock Seg]),3)='Con',Sum(Aggr($(eMatConStockSegPend),[Periodo Stock_Seguridad], [Codigo Centro Stock_Seguridad], [Codigo Almacen Stock_Seguridad], [Codigo Material Stock_Seguridad], [Material Stock_Seguridad])),0)

Esto asemeja el cálculo a la columna que ya tenías calculada. Sin embargo, aparte de que su valor deba ser 0 o 1, el que se muestre o no el material que tiene stock por debajo del mínimo depende también de que otras expresiones tengan valor para ese material como ocurre en el caso de la selección del valor "Sin". En este caso la mejor opción es seleccionar realmente los materiales que cumplen la condición de stock con un botón como te mostraba en mi primer ejemplo o con un disparador en el campo Tiene Stock Seg con las mismas acciones que el botón.

Un saludo