Qlik Community

New to Qlik Sense

If you’re new to Qlik Sense, start with this Discussion Board and get up-to-speed quickly.

Announcements
QlikWorld 2022, LIVE in Denver CO., May 16-19, 2022. REGISTER NOW TO RECEIVE EARLY BIRD PRICING
cancel
Showing results for 
Search instead for 
Did you mean: 
ClaudiaS220388
Contributor III
Contributor III

generar tabla pivotante a partir de un filtro

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.

Labels (1)
1 Solution

Accepted Solutions
joseph_morales
Creator II
Creator II

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

joseph_morales_0-1614014290993.png

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.

joseph_morales_3-1614014853145.png

 joseph_morales_2-1614014658702.png

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.

joseph_morales_4-1614015090184.png

  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

joseph_morales_5-1614015196880.png

 

joseph_morales_6-1614015229772.png

 

 

Best Regards,
Joseph Morales

View solution in original post

6 Replies
joseph_morales
Creator II
Creator II

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

joseph_morales_0-1614014290993.png

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.

joseph_morales_3-1614014853145.png

 joseph_morales_2-1614014658702.png

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.

joseph_morales_4-1614015090184.png

  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

joseph_morales_5-1614015196880.png

 

joseph_morales_6-1614015229772.png

 

 

Best Regards,
Joseph Morales

View solution in original post

ClaudiaS220388
Contributor III
Contributor III
Author

@joseph_morales,

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. 

ClaudiaS220388_0-1614017459927.png

ClaudiaS220388_1-1614017517882.png

Saludos.

joseph_morales
Creator II
Creator II

Hola @ClaudiaS220388 

¿Que versión de Qlik Sense estas utilizando?, yo lo realice en la versión de abril 2019.

Saludos

Best Regards,
Joseph Morales
ClaudiaS220388
Contributor III
Contributor III
Author

@joseph_morales ,

Estoy usando la siguiente versión:

ClaudiaS220388_0-1614022160645.png

Habría una forma para poder realizarlo con mi versión?

joseph_morales
Creator II
Creator II

@ClaudiaS220388 

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.

joseph_morales_0-1614023295852.png

 

  

Best Regards,
Joseph Morales
ClaudiaS220388
Contributor III
Contributor III
Author

@joseph_morales ,

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.