Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more.
Get startedGrow your Fabric skills and prepare for the DP-600 certification exam by completing the latest Microsoft Fabric challenge.
Tengo dos tablas que están unidas con una relación de muchos-muchos en el número de artículo.
Uno de ellos (Tabla 1) es una tabla de referencia: contiene aproximadamente 40 entradas de número de artículo de un cierto tipo (algunas de las cuales son duplicados con otros valores diferentes asociados, que es la única razón por la que es muchos-muchos)
El otro (Tabla2) es un registro de devoluciones, con número de artículo como una de las columnas.
Lo que me gustaría hacer es crear una columna calculada en la Tabla2 que verifique si el Número de elemento de esa fila está representado en la Tabla 1.
Product Type X =
if( 'Table2'[ITEM] IN related('Table1'[Item Number]), 1, 0 )
Sin embargo, recibo este mensaje de error: "La columna 'Tabla1 [Número de artículo]' no existe o no tiene relación con ninguna tabla disponible en el contexto actual".
A pesar de que sí tienen una relación en el modelo
¿Algún consejo?
Related() solo funciona en una relación de 1 a muchos, la columna calculada debe crearse en los muchos lados de una relación. Es por eso que no funcionará en su caso.
A medida que me doy la vuelta, crearía una nueva tabla de búsqueda usando la tabla 3=values('Table1'[Item Number] ) y la vincularía a la tabla 2. A continuación, puede escribir una fórmula relacionada
Relacionado no funcionará porque devuelve un solo valor. Debido a la naturaleza de su relación de muchos a muchos, podría devolver varias filas.
Debe contar las filas usando RELATEDTABLE. Sin embargo, también debe pasar el filtro de nuevo a la Tabla 1, por lo que, en ejemplo, crossfilter permite que el filtro vaya en ambos sentidos.
Exists In Table 1 =
VAR RelatedRows =
CALCULATE (
COUNTROWS ( RELATEDTABLE(Table1) ),
CROSSFILTER ( Table1[ID], Table2[ID], Both )
)
RETURN IF ( RelatedRows > 0 , 1, 0 )
La misma idea pero prefiero esta versión.
Exists In Table 1 =
CALCULATE (
INT ( NOT ISEMPTY( ( Table1 ) ) ),
TREATAS ( { Table2[ID] }, Table1[ID] )
)
Estoy recibiendo errores usando ambas fórmulas.
Solo necesita reemplazar Table1[ID] y Table2[ID] con nombres de tabla / columna relevantes de su modelo.
Sí, por supuesto, pero no encuentra table1 sin la función RELATED.
Echa un vistazo a mi ejemplo. Creo que he igualado su modelo hasta donde puedo ver: Archivo de demostración
Si los nombres de las tablas tienen espacios, asegúrese de que estén entre ' ' Por ejemplo, 'Tabla 1'[ITEM]
Creo que este podría ser el problema.
La función DAX "RELATED" no funciona entre las tablas DirectQuery e Import.
Tengo fuentes mixtas.