Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hola a todos.
Tengo un problema, he estado buscando por internet, como puedo generar una tabla partiendo de un filtro.
Se busca que al visualizar la hoja desde un inicio solo se pueda ver el panel de filtro y el usuario seleccione algo de sus elementos, partiendo de esa información, se genere una tabla pivotante. Cada que que se seleccione diferente elemento en el filtro se modifique el contenido de la tabla.
Agradecería mucho su apoyo.
Saludos.
Hola @ClaudiaS220388
Primero debes diseñar como va a quedar la tabla pivotante en qlik sense y crear una tabla inline en tu script que contenga el nombre de los campos que tendras como dimensiones y otra tabla inline donde tengas las medidas.
En este ejemplo estoy creando 2 tablas inline que tienen como nombre Dimensiones y Medidas los cuales usarea como filtros para controlar que campos se veran en mi tabla pivotante.
Dimensiones:
Load * Inline [
ID_DIM,DIM_DESC
1, CardType
2, Año
3, Mes
];
Medidas:
Load * Inline [
ID_MED,MED_DESC
1, Numero Tarjetas
2, Monto
];
En la parte visual creo mi tabla pivotante con los campos de mi tabla de datos y coloco los campos DIM_DESC y MED_DESC como filtros en la hoja
En la tabla pivotante en la sección de datos, cada dimension en fila o columna tiene una opción que se llama Mostrar la columna si, donde permite ingresar una expresion que permita abilitar el calculo. De igual manera las expresiones tiene esa opción.
La expresión que debes colocar será algo asi:
Para las dimensiones: donde DIM_DESC es mi campo de mi tabla inline y 'CardType' en el elemento de DIM_DESC que hace correspondencia con la columna de tu tabla de datos. Con getelectedcount validas que tengas un elemento seleccionado del filtro DIM_DESC
Asi para cada una de las dimensiones que tenga tu tabla pivotante
SubStringCount(concat(distinct DIM_DESC,'|'),'CardType') and GetSelectedCount(DIM_DESC)
Para las expresiones similar pero usaras el campo MED_DESC de la tabla inline Medidas. Para cada una de tus medidas solo cambia el 'Numero Tarjetas' por el que corresponda
SubStringCount(concat(distinct MED_DESC,'|'),'Numero Tarjetas') and GetSelectedCount(MED_DESC)
Por último, en el modulo de la tabla pivotante "Manejo de datos" colocar la siguiente expresión.
Esto valida que tengas algun elemento de DIM_DESC y de MED_DESC
GetSelectedCount(DIM_DESC)+GetSelectedCount(MED_DESC)
Quedaría tu hoja de esta manera
Hola @ClaudiaS220388
Primero debes diseñar como va a quedar la tabla pivotante en qlik sense y crear una tabla inline en tu script que contenga el nombre de los campos que tendras como dimensiones y otra tabla inline donde tengas las medidas.
En este ejemplo estoy creando 2 tablas inline que tienen como nombre Dimensiones y Medidas los cuales usarea como filtros para controlar que campos se veran en mi tabla pivotante.
Dimensiones:
Load * Inline [
ID_DIM,DIM_DESC
1, CardType
2, Año
3, Mes
];
Medidas:
Load * Inline [
ID_MED,MED_DESC
1, Numero Tarjetas
2, Monto
];
En la parte visual creo mi tabla pivotante con los campos de mi tabla de datos y coloco los campos DIM_DESC y MED_DESC como filtros en la hoja
En la tabla pivotante en la sección de datos, cada dimension en fila o columna tiene una opción que se llama Mostrar la columna si, donde permite ingresar una expresion que permita abilitar el calculo. De igual manera las expresiones tiene esa opción.
La expresión que debes colocar será algo asi:
Para las dimensiones: donde DIM_DESC es mi campo de mi tabla inline y 'CardType' en el elemento de DIM_DESC que hace correspondencia con la columna de tu tabla de datos. Con getelectedcount validas que tengas un elemento seleccionado del filtro DIM_DESC
Asi para cada una de las dimensiones que tenga tu tabla pivotante
SubStringCount(concat(distinct DIM_DESC,'|'),'CardType') and GetSelectedCount(DIM_DESC)
Para las expresiones similar pero usaras el campo MED_DESC de la tabla inline Medidas. Para cada una de tus medidas solo cambia el 'Numero Tarjetas' por el que corresponda
SubStringCount(concat(distinct MED_DESC,'|'),'Numero Tarjetas') and GetSelectedCount(MED_DESC)
Por último, en el modulo de la tabla pivotante "Manejo de datos" colocar la siguiente expresión.
Esto valida que tengas algun elemento de DIM_DESC y de MED_DESC
GetSelectedCount(DIM_DESC)+GetSelectedCount(MED_DESC)
Quedaría tu hoja de esta manera
Muchas gracias por tu pronta respuesta. Al querer ingresar a la opción que me indicas en el apartado 'Mostrar la columna si', no la localizo. Te adjunto imágenes.
Saludos.
Hola @ClaudiaS220388
¿Que versión de Qlik Sense estas utilizando?, yo lo realice en la versión de abril 2019.
Saludos
Estoy usando la siguiente versión:
Habría una forma para poder realizarlo con mi versión?
En es versión creo que no tenia la opción de "Mostrar la columna si", creo que se agregó en junio 2018 asi que mi solución no es viable en febrero 2018. No lo veo muy viable por esa limitación, tendrias que modificar la expresión de dimension y la de medidas
Por ejemplo si tu dimension es CardType tendrias que agregar la condicional If
SubStringCount(concat(distinct DIM_DESC,'|'),'CardType') and GetSelectedCount(DIM_DESC) y despues usar aggr con el misma dimension CardType, asi con cada dimension y expresiones que tengas.
aggr(
if(SubStringCount(concat(distinct DIM_DESC,'|'),'CardType') and GetSelectedCount(DIM_DESC),
CardType
)
,CardType)
Pero el resultado no es el deseado ya que la columna que no seleccionas no muestra da queda gris.
Te agradezco tu ayuda y tu tiempo. Veré que tan viable es actualizar esta versión. Ya que con el ejemplo que me pones, parece que no resuelve en su totalidad lo que requiero. Pero aun así muchas gracias.
Saludos.