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
giogiogio
Helper II
Helper II

Relación de uno a varios y columnas calculadas

Hola a todos,

Tengo dos tablas con relación "uno a varios" vinculadas por la columna "ID" donde:
- Table1 tiene valores de identificación únicos
- Table2 tiene un subconjunto de esos ID, pero potencialmente repetido varias veces (hasta 3). La Tabla2 también tiene una columna "Gato" que, si se filtra por Gato , "A" hace que la lista de ID en Table2 sea única de nuevo (teoréticamente la relación vuelve a un "uno a uno" con la Tabla1).

La pregunta es: ¿cómo puedo configurar un código DAX para una columna calculada en la Tabla1 que devuelve "YES" si Table2 tiene una entrada para ese ID y tiene Cat "A" y "NO" si no hay ningún ID en Table2 o si hay el ID pero con Cat<>"A"?

A partir de ahora tengo un Table3 que tiene identificadores únicos y varias columnas para que los diferentes "Cat" tengan la relación uno a uno y la función RELACIONADA funcionando, pero me gustaría deshacerme de esta duplicación.

¡Gracias!

1 ACCEPTED SOLUTION
amitchandak
Super User
Super User

@giogiogio ,

Una nueva columna en la Tabla 1

if(isblank(countx(filter(table2,table1[ID] - table2[ID] y table2[Cat] ?"A"),table2[Cat])),"No","Sí")

View solution in original post

5 REPLIES 5
az38
Community Champion
Community Champion

Hola @giogiogio

puede crear una medida

Measure = 
var _count = CALCULATE(COUNTROWS(Table2), FILTER(ALL(Table2), Table2[ID] = SELECTEDVALUE(Table1[ID] && Table2[Cat] = "A") )
RETURN
IF(_count > 0, "YES", "NO")

y no entiendo por qué necesitas tercera mesa. Estoy seguro de que podría haber una solución más apropiada


do not hesitate to give a kudo to useful posts and mark solutions as solution
LinkedIn

@az38 gracias por la pista.
Eso es para una medida, pero estoy tratando de encontrar una manera de crear una columna calculada en Table1, ya que me gustaría usar esto también como una segmentación de datos / categoría en los gráficos y no sólo como una medida

az38
Community Champion
Community Champion

@giogiogio

lo mismo pero con EARLIER()

Column= 
var _count = CALCULATE(COUNTROWS(Table2), FILTER(ALL(Table2), Table2[ID] = EARLIER(Table1[ID]) && Table2[Cat] = "A") )
RETURN
IF(_count > 0, "YES", "NO")


do not hesitate to give a kudo to useful posts and mark solutions as solution
LinkedIn
giogiogio
Helper II
Helper II

Gracias a los dos caballeros, ambas soluciones están funcionando bien!
@amitchandak@az38

amitchandak
Super User
Super User

@giogiogio ,

Una nueva columna en la Tabla 1

if(isblank(countx(filter(table2,table1[ID] - table2[ID] y table2[Cat] ?"A"),table2[Cat])),"No","Sí")

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.