Power BI is turning 10, and we’re marking the occasion with a special community challenge. Use your creativity to tell a story, uncover trends, or highlight something unexpected.
Get startedJoin us for an expert-led overview of the tools and concepts you'll need to become a Certified Power BI Data Analyst and pass exam PL-300. Register now.
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!
Solved! Go to Solution.
Una nueva columna en la Tabla 1
if(isblank(countx(filter(table2,table1[ID] - table2[ID] y table2[Cat] ?"A"),table2[Cat])),"No","Sí")
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
@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
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")
Gracias a los dos caballeros, ambas soluciones están funcionando bien!
@amitchandak@az38
Una nueva columna en la Tabla 1
if(isblank(countx(filter(table2,table1[ID] - table2[ID] y table2[Cat] ?"A"),table2[Cat])),"No","Sí")
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.
Check out the June 2025 Power BI update to learn about new features.