Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Prepping for a Fabric certification exam? Join us for a live prep session with exam experts to learn how to pass the exam. Register now.

Reply
Syndicate_Admin
Administrator
Administrator

Número dinámico de columnas con n columnas: objeto visual de tabla

Hola

Estoy tratando de crear un análisis detallado en el que las columnas del objeto visual de la tabla se seleccionan dinámicamente, ¡y realmente agradecería su ayuda!

Básicamente, tengo una tabla de resumen que muestra una lista de reglas de negocio y un recuento de ubicaciones que lo activaron solo hoy. Al hacer clic en un recuento de ubicaciones, quiero crear una página de obtención de detalles que muestre la lista de ubicaciones y un montón de datos de ubicación relacionados con la regla de negocio. Hay más de 100 reglas de negocio y cada ubicación también tiene varias 100 columnas. El problema al que me enfrento es que solo quiero mostrar columnas que sean relevantes para cada regla de negocio, y el número de columnas variará en función de la regla de negocio. Habrá ocasiones en las que las columnas relevantes se superpondrán para diferentes reglas de negocio. Así es como se ve la tabla de resumen:

BusinessRuleID (BusinessRuleID)LocationCount (Recuento de ubicaciones)
11
22
32

¿Hay alguna manera de crear un objeto visual de tabla que elija dinámicamente las columnas que necesito en función de la regla de negocio en la que estoy explorando?

Estos son algunos ejemplos:

Si la regla de negocio #1 trata sobre la coherencia geográfica, en la obtención de detalles, me gustaría que el objeto visual de la tabla mostrara LocationID, Location, Country y City.

LocationID (Identificación de ubicación)LocationName (Nombre de la ubicación)PaísCiudad
1Tienda AReino UnidoMúnich

Si la regla de negocio #3 trata sobre si se completan todos los detalles del contacto 2, en la obtención de detalles, me gustaría que el objeto visual de la tabla mostrara LocationID, Ubicación, Nombre del contacto 2, Teléfono del contacto 2, Correo electrónico del contacto 2.

LocationID (Identificación de ubicación)LocationName (Nombre de la ubicación)Contacto 2 NombreContacto 2 TeléfonoContacto 2 Correo electrónico
2Tienda BPersona B def@gmail.com
3Tienda CPersona B456

Estos son los datos subyacentes que tengo en este momento:

RESULTADOS - Una tabla que contiene todas las ubicaciones, qué reglas de negocio activó y en qué fecha (la fecha de hoy es el 20 de octubre de 2023 para mí)

ResultsID (Identificación de resultados)LocationID (Identificación de ubicación)BusinessRuleID (BusinessRuleID)Fecha
11118/10/23
21119/10/23
31120/10/23
41220/10/23
52220/10/23
62320/10/23
73320/10/23

REGLAS DE NEGOCIO: una tabla con una lista de reglas de negocio, así como su nombre y descripción.

BusinessRuleID (BusinessRuleID)NombreDescripción
1Geografía incoherente (nivel alto)El país y la ciudad no coinciden
2Detalles de contacto 1 incompletosHay espacios en blanco en el nombre, el correo electrónico o el teléfono del contacto 1, todos son obligatorios
3Contacto incompleto 2 DetallesHay espacios en blanco en el nombre, el correo electrónico o el teléfono del contacto 2, todos son obligatorios

Para los datos de UBICACIÓN, esta es la tabla original:

LocationID (Identificación de ubicación)UbicaciónPaísCiudadMunicipioContacto 1 NombreContacto 1 TeléfonoContacto 1 Correo electrónicoContacto 2 NombreContacto 2 TeléfonoContacto 2 Correo electrónico
1Tienda AReino UnidoMúnichWestminsterPersona A abc@gmail.comPersona B456def@gmail.com
2Tienda BReino UnidoLondresWestminster123abc@gmail.comPersona B def@gmail.com
3Tienda CReino UnidoLondresWestminsterPersona A123abc@gmail.comPersona B456

Por último, esto es a lo que lo convertí, pero me quedé atascado hasta ahora:

LocationID (Identificación de ubicación)ColumnName (Nombre de columna)ColumnType (Tipo de columna)ColumnValue
1UbicaciónMensaje de textoTienda A
1PaísMensaje de textoReino Unido
1CiudadMensaje de textoMúnich
1MunicipioMensaje de textoWestminster
1Contacto 1 NombreMensaje de textoPersona A
1Contacto 1 TeléfonoNúmero entero
1Contacto 1 Correo electrónicoMensaje de textoabc@gmail.com
1Contacto 2 NombreMensaje de textoPersona B
1Contacto 2 TeléfonoNúmero entero456
1Contacto 2 Correo electrónicoMensaje de textodef@gmail.com
2UbicaciónMensaje de textoTienda B
2PaísMensaje de textoReino Unido
2CiudadMensaje de textoLondres
2MunicipioMensaje de textoWestminster
2Contacto 1 NombreMensaje de texto
2Contacto 1 TeléfonoNúmero entero123
2Contacto 1 Correo electrónicoMensaje de textoabc@gmail.com
2Contacto 2 NombreMensaje de textoPersona B
2Contacto 2 TeléfonoNúmero entero
2Contacto 2 Correo electrónicoMensaje de textodef@gmail.com
3UbicaciónMensaje de textoTienda C
3PaísMensaje de textoReino Unido
3CiudadMensaje de textoLondres
3MunicipioMensaje de textoWestminster
3Contacto 1 NombreMensaje de textoPersona A
3Contacto 1 TeléfonoNúmero entero123
3Contacto 1 Correo electrónicoMensaje de textoabc@gmail.com
3Contacto 2 NombreMensaje de textoPersona B
3Contacto 2 TeléfonoNúmero entero456
3Contacto 2 Correo electrónicoMensaje de texto

¿Es posible lo que estoy tratando de hacer?

¡Muchas gracias!

4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

Hola Liu Yan,

Gracias por su respuesta.

Tengo un problema en el que el objeto visual ha superado los recursos disponibles, lo que podría deberse al volumen de los datos.

¿Sería posible hacer algo similar si la Tabla A se pivotara como la tabla LOCATION original, de la siguiente manera:

LocationID (Identificación de ubicación)UbicaciónPaísCiudadMunicipioContacto 1 NombreContacto 1 TeléfonoContacto 1 Correo electrónicoContacto 2 NombreContacto 2 TeléfonoContacto 2 Correo electrónico
1Tienda AReino UnidoMúnichWestminsterPersona A abc@gmail.comPersona B456def@gmail.com
2Tienda BReino UnidoLondresWestminster123abc@gmail.comPersona B def@gmail.com
3Tienda CReino UnidoLondresWestminsterPersona A123abc@gmail.comPersona B456

Además, ¿sería posible automatizar la selección sin codificarla en el conmutador agregando una nueva tabla entre la tabla y la tabla A que se verá así:

BusinessRuleID (BusinessRuleID)ColumnName (Nombre de columna)ColumnOrder
1País1
1Ciudad2
3Contacto 2 Correo electrónico1
3Contacto 2 Nombre2
3Contacto 2 Teléfono3

Gracias por su ayuda de nuevo, ¡realmente lo aprecio!

Syndicate_Admin
Administrator
Administrator

@sinfa ,

Estos son los pasos que puedes seguir:

1. Crear medida.

Measure =
var _select=SELECTEDVALUE('Table A'[BusinessRuleID])
var _column=SELECTCOLUMNS(FILTER(ALL('Table A'),'Table A'[BusinessRuleID] =_select),"LocationID",[LocationID])
return
SWITCH(
    TRUE(),
    _select = 1 &&MAX('Table'[ColumnName]) in {"Country","Location","City"},MAX('Table'[ColumnValue]),
    _select =3 && MAX('Table'[ColumnName]) in {"Location","Contact 2 Name","Contact 2 Phone","Contact 2 Email"},MAX('Table'[ColumnValue]),BLANK())

2. Resultado:

vyangliumsft_0-1698048965488.png

vyangliumsft_1-1698048965494.png

Saludos

Liu Yang

Si esta publicación ayuda, considere aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente

Syndicate_Admin
Administrator
Administrator

Gracias por su respuesta 🙂

También pensé en usar parámetros de campo, pero no estoy exactamente seguro de cómo implementarlo. ¿Te importa elaborar un poco más?

¡Gracias!

Syndicate_Admin
Administrator
Administrator

Hola

Puede utilizar parámetros de campo para seleccionar dinámicamente las columnas.

https://learn.microsoft.com/en-us/power-bi/create-reports/power-bi-field-parameters

Helpful resources

Announcements
PBIApril_Carousel

Power BI Monthly Update - April 2025

Check out the April 2025 Power BI update to learn about new features.

Notebook Gallery Carousel1

NEW! Community Notebooks Gallery

Explore and share Fabric Notebooks to boost Power BI insights in the new community notebooks gallery.

April2025 Carousel

Fabric Community Update - April 2025

Find out what's new and trending in the Fabric community.

Top Solution Authors
Top Kudoed Authors