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

Don't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.

Reply
Syndicate_Admin
Administrator
Administrator

Ayuda con el objeto visual y los contextos de la segmentación de datos/tabla

Hola amigos,

Todavía soy un novato en PowerBi, así que busco ayuda aquí. Para establecer el contexto, tengo 3 tablas.

Tabla 1:

ID único | Nombre | Empresa | Tema

Dis1 | Carnero | Comp1 | Powerbi

Dis2 | Carnero | Comp1 | DAX

Dis3 | Juan | Comp2 | SomeTopic1

Dis4 | Juan | Comp2 | Algunos2

Dis5 | Joe | Comp3 | Blah1

Dis6 | Joe | Comp3 | Blah2

Dis6 | Per1 | Comp2 | Blah2

Tabla 2

Nombre | Nombre de la empresa | Attr1 | Attr2 | ...

Carnero | Comp1 | ...

Juan | Comp2 | ...

Joe | Comp3 | ...

Per1 | Comp2 | ...

Per2 | Comp1 | ...

Cuadro 3

NombreNuevo | CompNuevo

Carnero | Comp1

John | Comp2

Joe | Comp3

Per1 | Comp2

Per2 | Comp1

Relaciones:

Tabla2 -> Tabla1 (1:* Nombre de la empresa -> empresa)

Tabla2 -> Tabla3 (*:* CompanyName -> CompNew)

Esto es lo que estoy tratando de hacer: tengo una segmentación que muestra los nombres de las personas (Tabla2). Al seleccionar un nombre, quiero poder mostrar una tabla de todos los que están en la misma empresa que la persona seleccionada. Quiero que una columna de esta tabla muestre el recuento de discusiones (de la Tabla1) para cada persona de la Tabla3. Ejemplo

Selección de Slicer (Tabla2): John

Salida

Nombre | Empresa | Recuento de discusiones

Juan | Comp2 | 2

Per1 | Comp2 | 1

Selección de Slicer (Tabla2): Carnero

Salida

Nombre | Empresa | Recuento de discusiones

Carnero | Comp1 | 2

Per2 | Comp1 | 0

Soy capaz de obtener los datos sin el conteo. Intenté crear una medida con los recuentos, pero cada vez que agrego la medida a la tabla (visual) obtengo todos los nombres frente a solo los que se filtran a través de la segmentación. No tengo claro cómo poder garantizar que el contexto de la fila filtrada se traslade a la Tabla1 (he probado TREATAS, INTERSECT sin éxito)... Cualquier ayuda es apreciada.

Gracias

Carnero

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Gracias a todos por la ayuda. Pude resolver esto. Necesitaba crear otra relación entre Tabla3 y Tabla1 (basada en el nombre de varios a varios). Luego pude usar esa relación, el nombre de la persona de la Tabla3, el nombre de la empresa de la Tabla2, ignorar todo el resto de los filtros (ALL(Tabla1)) y agregar un conjunto de filtros que coincidan con el nombre y la empresa de arriba. Esto dio como resultado datos vacíos para todos los nombres y los datos correctos para aquellos que coincidían. Pude filtrar los vacíos en la imagen y eso funcionó.

Gracias de nuevo por toda su ayuda.

+Carnero

View solution in original post

7 REPLIES 7
Syndicate_Admin
Administrator
Administrator

Gracias a todos por la ayuda. Pude resolver esto. Necesitaba crear otra relación entre Tabla3 y Tabla1 (basada en el nombre de varios a varios). Luego pude usar esa relación, el nombre de la persona de la Tabla3, el nombre de la empresa de la Tabla2, ignorar todo el resto de los filtros (ALL(Tabla1)) y agregar un conjunto de filtros que coincidan con el nombre y la empresa de arriba. Esto dio como resultado datos vacíos para todos los nombres y los datos correctos para aquellos que coincidían. Pude filtrar los vacíos en la imagen y eso funcionó.

Gracias de nuevo por toda su ayuda.

+Carnero

Syndicate_Admin
Administrator
Administrator

Hola @RamEHG ,

Revisé la publicación y tengo una pregunta para ti.

Vi que la relación es 1:*, pero en la Tabla 2, hay 2 Comp1 y 2 Comp2 en ella, por lo tanto , no se pueden configurar como uno para manay.

vstephenmsft_0-1738566868739.png

Si desea el resultado esperado que mencionó, puede cambiar sus relaciones como se muestra a continuación.

vstephenmsft_1-1738567376734.png

Este es el resultado:

La segmentación se crea a partir de la tabla 3. En el objeto visual de la tabla, el campo Compañía, el campo Nombre y los recuentos son de la Tabla 1.

vstephenmsft_2-1738567438551.png

vstephenmsft_3-1738567527794.png

Puedes consultar más detalles en mi archivo adjunto.

Saludos
Esteban Tao

Si esta publicación ayuda, considere Acéptalo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente

Gracias de nuevo por la respuesta. Cometí un error en las relaciones: debería ser Tabla2 -> Tabla1 (1:*) (Nombre -> Nombre). Básicamente, tengo una mesa de personas (Tabla2) y una mesa de reuniones (Tabla1). Cada uno de ellos tiene diferentes atributos. Estoy tratando de tener una segmentación con el nombre de una persona. La selección de una persona en particular debe mostrarme a todas las demás personas de la misma empresa junto con el recuento de reuniones que ha tenido cada una de esas personas. De ahí la creación de la Tabla3 para poder discernir "otras personas que trabajaron con la persona seleccionada". Y luego estoy tratando de obtener el conteo de reuniones para cada uno de ellos. Parece que no puedo hacer que el contexto de fila que se muestra en Table3 se aplique a Table1 en este proceso.

Gracias

¡Gracias de nuevo

Carnero

Syndicate_Admin
Administrator
Administrator

Hola

He resuelto una pregunta similar en el archivo adjunto.

Espero que esto ayude.

Gracias por esto. Esto funciona muy bien con una relación establecida entre 2 mesas. Tengo un problema ligeramente diferente en el sentido de que tengo 3 tablas (aunque una es un subconjunto de la segunda tabla solo para poder mostrar a personas relacionadas en compañía de la persona seleccionada).

Gracias

Carnero

Syndicate_Admin
Administrator
Administrator

Hola @RamEHG ,

Para lograr el resultado deseado, necesita una medida que filtre correctamente la empresa en función de la persona seleccionada y cuente las discusiones en consecuencia. Dado que Table2 y Table3 tienen una relación de varios a varios, debe asegurarse de que el contexto del filtro se propague correctamente. El enfoque consiste en capturar la empresa de la persona seleccionada, filtrar la Tabla3 en función de esa empresa y, a continuación, contar el número de conversaciones de cada persona de esa empresa de la Tabla1.

La siguiente medida del DAX logra esto:

Count of Discussions = 
VAR SelectedCompany = 
    SELECTEDVALUE(Table2[CompanyName]) 

RETURN
    CALCULATE(
        COUNT(Table1[UniqueID]),
        FILTER(
            Table3, 
            Table3[CompNew] = SelectedCompany
        )
    )

Esta medida funciona recuperando primero la empresa asociada a la persona seleccionada en la Tabla2 mediante SELECTEDVALUE(Table2[CompanyName]). A continuación, aplica un filtro en la Tabla3 para incluir solo las filas en las que la empresa coincida con la empresa seleccionada. Por último, COUNT(Table1[UniqueID]) calcula el número de discusiones de las personas dentro de esa empresa.

Por ejemplo, cuando se selecciona John en la segmentación, el objeto visual de la tabla mostrará John y Per1 en Company Comp2 con recuentos de discusión de 2 y 1, respectivamente. Del mismo modo, si se selecciona Ram, la tabla mostrará Ram y Per2 en Company Comp1 con recuentos de discusión de 2 y 0.

Para garantizar que las relaciones funcionen correctamente, deben estar activas y la lógica de filtrado de la medida debe aplicarse correctamente. Si se seleccionan varias personas en la segmentación, SELECTEDVALUE devuelve BLANK(), por lo que es posible que sea necesario realizar ajustes mediante VALUES(Table2[CompanyName]) para escenarios de selección múltiple. Si Table3 no filtra correctamente, podría ser útil ajustarlo con ALL(Table3) dentro de la función FILTER.

Saludos

Gracias por la rápida respuesta. Lo intenté pero no funciona. Obtengo la información, pero obtengo todas las filas de la Tabla 1. Así que, esencialmente, para John obtengo

Carnero | 0

Juan | 2

Joe | 0

Per1 | 2

Lo que me cuesta es conseguir que Table1 filtre no sólo por empresa, sino también por los nombres seleccionados en Table3

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Prices go up Feb. 11th.

Jan25PBI_Carousel

Power BI Monthly Update - January 2025

Check out the January 2025 Power BI update to learn about new features in Reporting, Modeling, and Data Connectivity.

Jan NL Carousel

Fabric Community Update - January 2025

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

Top Solution Authors