Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!Vote for your favorite vizzies from the Power BI Dataviz World Championship submissions. Vote now!
Hola a todos
Tengo dos mesas con una relación de uno a muchos. Ambos tienen una columna con una lista de valores separados por una coma:
por ejemplo: Tabla 1 (Un lado)
| Nombre | Mascotas |
| Bob | perro, pez |
| Sally | gato, pollo |
| Andy | pescado, perro, gato |
Tabla 2 (Muchos lados)
| Nombre | Compras |
| Bob | pollo, ternera |
| Sally | carne de res, leche, pollo |
| Andy | queso, pescado |
Quiero crear una columna calculada en la Tabla 2 que devuelva 'Y' si uno de los elementos de las compras de comestibles se encuentra en la columna mascotas o "N" de lo contrario. (Prefiero hacer esto en DAX)
Eg:
| Nombre | Compras | Elemento coincidente |
| Bob | pollo, ternera | N |
| Sally | carne de res, leche, pollo | Y |
| Andy | queso, pescado | Y |
Siento que una forma de hacerlo sería dividir las compras de comestibles en elementos separados por la coma y usar CONTAINSSTRING() para cada uno de los elementos, pero no estoy seguro de cómo lograr esto en DAX / PBI.
¡Cualquier ayuda sería muy apreciada!
Gracias @parry2k esto también funcionó para mí y está más limpio que lo que tenía.
@purple_SP o puede agregar una nueva columna en Tabla2 con la siguiente expresión, cambie el nombre de la tabla y el nombre de la columna según su modelo.
Matching Item =
VAR __shoppingValue = SUBSTITUTE (Table2[ Grocery Shopping],",","|" )
VAR __totalValues = PATHLENGTH (__shoppingValue )
VAR __petsList = RELATED (Table1[ Pets] )
VAR __matchingTable =
ADDCOLUMNS (
GENERATESERIES (1, __totalValues ),
"@IsMatched", CONTAINSSTRING ( __petsList, PATHITEM ( __shoppingValue, [Value],TEXT ) ) + 0
)
VAR __matchCount = SUMX ( __matchingTable, [@IsMatched])
RETURN IF ( __matchCount > 0, "Yes", "No" )
👉 Aprenda Power BI Suscríbase a nuestro canal YT - @PowerBIHowTo
Pude encontrar una solución a este problema (con muchas gracias a este post: Resuelto: DAX para dividir en filas en Delimeter - Microsoft Fabric Community ) dividiendo la primera lista en filas por un delimitador, usando CONTAINSSTRING para crear una columna que es 1 si el elemento de la primera lista existe en la segunda y 0 en caso contrario, y usar SUMX con una instrucción if para obtener el resultado final.
Vote for your favorite vizzies from the Power BI World Championship submissions!
If you love stickers, then you will definitely want to check out our Community Sticker Challenge!
Check out the January 2026 Power BI update to learn about new features.