Forum Discussion
¿Cuál es la lógica del filtrado mediante relación?
- 4 years ago
Entonces, según un experto con el que estaba hablando.
Cuando Power BI se enfrenta a este tipo de situación (tabla filtrada por diferentes tablas), elegirá la relación más corta y la aplicará en lugar de las demás.
Es por eso que mi tabla STOCK se filtra por calendario (relación más corta) y no por tabla MASTERDATA (relación más larga).
Proporcione el archivo PBIX de muestra que ha creado con las frutas y verduras. Puedes compartir usando OneDrive, Dropbox, Google Drive....
Aquí está:
https://drive.google.com/file/d/1teqraA1J8bXpl40o0-YaHvmslHLMXsbZ/view?usp=sharing
Gracias
- Syndicate_Admin5 years ago
Administrator
Hay un problema con el modelo: la tabla Crossfilter está filtrando los valores de la tabla Masterdata porque están vinculados por el campo SubItem que está limitado en la tabla Crossfilter:
Por lo tanto, cada vez que haga referencia / filtre, etc. por la tabla de filtro cruzado, los datos maestros se filtrarán para "melocotón" y / o "ensalada", y el filtro se propagará hasta la tabla de existencias. Por lo tanto, los otros valores serán ignorados.
Le sugiero que sustituye la tabla Crossfilter por una nueva tabla que contenga los valores únicos de Item, y vincule este campo en una relación de uno a muchos con la tabla de E&O y Masterdata.
- Syndicate_Admin5 years ago
Administrator
@PaulDBrown Gracias por su ayuda / análisis, pero todavía tengo la misma pregunta (o no entendí su respuesta).
Tal vez no tengo claro cuándo explico el problema. Lo siento.
En realidad, como se describe, la tabla cruzada debe filtrar MASTERDATA y STOCK porque en CROSSTABLE solo tenemos "melocotón" y "ensalada".
Podemos ver en las fotos de mi antiguo post que cuando pido cada mes que cuente el SUBITEM distinto:
- en MASTERDATA, el resultado es 2 para cada mes (melocotón y ensalada) porque no hay noción de fecha en MASTERDATA y por lo tanto los 2 subelementos aparecen para todo el período. Esa parte es lógica.
- en STOCK, el resultado es 4 de enero, 3 de febrero y 3 de marzo. Esos resultados corresponden a toda la tabla. Entonces, ¿por qué STOCK no ha sido filtrado por el SUBITEM proveniente de MASTERDATA (es decir, melocotón y ensalada)? Esperaba el siguiente resultado: 2 para enero (melocotón y ensalada), 0 para febrero y 1 para marzo (ensalada).
(NB: Mi power bi real es mucho más complejo que eso, y estoy de acuerdo en que el ejemplo con frutas y verduras no tiene sentido, pero fue solo para duplicar el problema con más simples y menos datos).Gracias 🙂
- Syndicate_Admin5 years ago
Administrator
¡Entiendo! ¡Mis sinceras disculpas! Entendí completamente mal el problema.
Ok, la razón por la que está viendo estos resultados es:
1) La relación entre E&O y Crossfilter es bidireccional:Las filas filtradas por fecha en E&O se propagan a Crossfilter, que a su vez filtra Masterdata para mostrar solo los dos valores de subítem en Crossfilter. Resultado para los datos maestros de Subitem = 2 (ensalada y melocotón filtrados por Crossfilter).
2) La relación entre E&O y Crossfilter es única:
El contexto de filtro proveniente de la tabla de fechas solo filtra las filas de las tablas E&O y STOCK (ya que no pueden propagarse a otras tablas debido a la naturaleza de las relaciones en una sola dirección).Por lo tanto, el valor devuelto en MASTERDATA no tiene filtros = 7