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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Guli
Helper I
Helper I

Cómo filtrar una tabla en función del resultado de la segmentación de datos seleccionado.

Tengo dos tablas como abajo:

Tabla A:

Guli_0-1596317498042.png

Tabla B:

Guli_1-1596317541582.png

Quiero relacionar estas dos tablas, pero dado que su relación es de muchos a muchos, el uso de la función relacionada no es útil.

Mis resultados objetivos son:
cuando seleccione ID-1:
La Tabla A será como:

Guli_2-1596317734561.png

Desearía poder crear dinámicamente este tipo de tabla A, habiendo correspondido el valor de la tabla B en función del ID de segmentación de datos.
Lo que hice fue crear una mesa de puente, Temp, usando la expresión de

Filtro Temp('Tabla B','Tabla B'[ID]-"1"), esto puede ayudarme a crear una tabla temporal con solo el caso ID-1 y, a continuación, usar la expresión de
_withTableB de matchkey
CONCATENATEX('Temp',IF(SEARCH(FIRSTNONBLANK('Table B'[Filmtype],1),Table A[Film],,999) <>999,'Table B'[Filmtype],""))
Funcionó.
Sin embargo, cuando escribí la tabla temporal como:
Temp-FILTER('Tabla B','Tabla B'[ID]-convert(selectedvalue (Tabla B[ID]),string)), tiene como objetivo establecer el ID de condición filtrado como resultado de la segmentación de datos, no funciona.
Cualquier sugerencia sería maravillosa, gracias!

9 REPLIES 9
v-yingjl
Community Support
Community Support

Hola @Guli ,

Puede establecer el estado de relaciones de varios a varios como inactivo y crear esta medida para lograrlo:

matchkey_with_TableB = 
IF (
    ISFILTERED ( 'Table B'[ID] ),
    CALCULATE (
        MAX ( 'Table B'[Filmtype] ),
        USERELATIONSHIP ( 'Table A'[Film], 'Table B'[Filmtype] )
    )
)

userelationship.png

Archivo de ejemplo adjunto que espera ayudarle: Cómo filtrar una tabla en función de la segmentación de datos seleccionada result.pbix

Best Looks,
Yingjie Li

Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

@v-yingjl , sería maravilloso si pudiera tener un bien en esta pregunta:) Después de hacer coincidir estas dos tablas, necesito tener un indicador de coincidencia, para ver si el valor en estas dos columnas es el mismo. Usé el siguiente DAX, esperaba ver 1 cuando Film-matchkey_with_TableB, pero no funcionó. ¿Tienes alguna solución para esto? Gracias.

@v-yingjl , el DAX es

indicador : IF('Tabla A'[Película]'Tabla A'[matchkey_with_TableB],1,BLANK())
v-yingjl
Community Support
Community Support

Hola @Guli ,

Puede crear esta medida:

indicator = 
IF(
    SELECTEDVALUE('Table A'[Film]) = 'Table A'[matchkey_with_TableB],
    1,BLANK()
)

indicator.png

Best Looks,
Yingjie Li

Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

@v-yingjl ¡¡Gracias!!

Gracias tan much@Yingjie, esta solución resolvió mi problema!

Greg_Deckler
Super User
Super User

@Guli - Pon una mesa de puente entre ellos. Utilice la tabla Bridge en la segmentación de datos. Una tabla de puentes solo tiene una lista distinta de valores de las tablas. Usted puede construir uno como este:

Tabla: DISTINCT(UNION(SELECTCOLUMNS('Table1',"SomeName",[Column1]),SELECTCOLUMNS('Table2',"SomeName",[Column2])))

Asegúrese de que "SomeName" es el mismo para ambos.


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

Gracias, Greg. El resultado no es exactamente lo que quiero, funcionaría si puedo averiguar cómo crear dinámicamente una tabla (O decir, filtrar dinámicamente una tabla).

Quiero filtrar la tabla A como tabla B, en función de la condición cuando la tabla A[columna 1] es el resultado de una segmentación de datos (usaré la columna 1 como segmentación de datos). Si señalo específicamente

Tabla B-FILTER('Tabla A','Tabla A '[columna 1]-"1"), será una tabla que se filtrará de la Tabla A con la columna 1-1,

¿qué debo hacer para hacer esto dinámico? No quiero señalar,' Tabla A '[columna 1]-algo cada vez, en su lugar, usando,'Tabla A '[columna 1]-selectedvalue(Tabla[columna 1]), pero algo que esto no funciona. ¿Tienes alguna sugerencia?

¡Gracias!

@Guli - Si no desea usar una tabla de puentes, y no estoy seguro de que entiendo por qué se opone a esto, potencialmente podría usar un selector complejo - https://community.powerbi.com/t5/Quick-Measures-Gallery/The-Complex-Selector/m-p/1116633#M534


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

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

April Fabric Community Update

Fabric Community Update - April 2024

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