Anónimo
Hola a todos,
Recientemente estoy leyendo La guía definitiva de DAX. Y todos los contextos me están volviendo loco.
Si tenemos una relación como esta:
Y una columna calculada:
Product[SalesWithSUMX] = AVERAGEX( Customer, CALCULATE(SUM(Sales[SalesAmount])) )
Sé que antes de que CALCULATE evalúe el nuevo argumento de filtro (que no es ninguno en el ejemplo anterior), primero hace la transición del contexto de fila al contexto de filtro.
Por lo que aprendí sobre el contexto de fila, si queremos acceder a las columnas en una tabla diferente, deberíamos usar RELATED o RELATEDTABLE, pero también se dice que todas las relaciones deben ser del mismo tipo, que es de uno a uno. muchos o muchos a uno y todos van en la misma dirección; de lo contrario, la TABLA RELACIONADA o RELACIONADA no funcionará.
Entonces, si queremos que la tabla de clientes y productos se relacionen a través de uno a muchos y luego de muchos a uno, con la tabla puente intermedia ‘Ventas’ en el medio, y no podemos usar RELATEDTABLE, entonces, ¿cómo funciona el contexto de la fila? se propaga? ¿Cómo conectamos la tabla de productos con la tabla de clientes? ¿Cuál es el contexto de fila antes de que CALCULATE haga la transición de contexto?
¿Alguien puede explicar un poco más?
¡Gracias por adelantado!
LaurentCouartou
Cuando se evalúa la función CALCULAR, hay dos contextos de fila disponibles: uno de la tabla Producto y otro de la tabla Cliente.
Ambos se utilizan para filtrar el Ventas tabla antes de evaluar SUM (Ventas[SalesAmount]).
Sin embargo, la tabla Producto no filtra la tabla Cliente en esta expresión. La expresión podría haberse escrito de esta manera:
Product[SalesWithSUMX] = AVERAGEX( ALL(Customer), CALCULATE(SUM(Sales[SalesAmount])) )
La fórmula se lee como:
Para cada fila en el Cliente tabla, calcule SUM (Ventas[Amount]) por:
– el cliente en la iteración actual
– el producto de la fila actual en la tabla Producto
Luego, promedia los resultados.
Por eso, las funciones RELATED o RELATEDTABLE no sirven. Utilizaría RELACIONADO, por ejemplo, si quisiera agregar una columna calculada en la tabla Producto que se basara en la Subcategoría del producto.
LaurentCouartou
Cuando se evalúa la función CALCULAR, hay dos contextos de fila disponibles: uno de la tabla Producto y otro de la tabla Cliente.
Ambos se utilizan para filtrar el Ventas tabla antes de evaluar SUM (Ventas[SalesAmount]).
Sin embargo, la tabla Producto no filtra la tabla Cliente en esta expresión. La expresión podría haberse escrito de esta manera:
Product[SalesWithSUMX] = AVERAGEX( ALL(Customer), CALCULATE(SUM(Sales[SalesAmount])) )
La fórmula se lee como:
Para cada fila en el Cliente tabla, calcule SUM (Ventas[Amount]) por:
– el cliente en la iteración actual
– el producto de la fila actual en la tabla Producto
Luego, promedia los resultados.
Por eso, las funciones RELATED o RELATEDTABLE no sirven. Utilizaría RELACIONADO, por ejemplo, si quisiera agregar una columna calculada en la tabla Producto que se basara en la Subcategoría del producto.
MattAllington
Los filtros se propagan automáticamente de un lado al otro. Si activa el filtrado bidireccional, puede hacer que se propaguen al revés. Pero tenga cuidado. Dependiendo de la complejidad de su modelo, en ocasiones la propagación del filtro bidireccional puede provocar errores circulares.
En realidad, está preguntando sobre uno de los temas más difíciles de DAX. Aprendí todo lo que sé sobre muchas a muchas relaciones de los italianos. Este es un buen lugar para comenzar. http://www.sqlbi.com/tv/many-to-many-relationships-in-dax-3/
También mira la publicación de mi blog aquí http://exceleratorbi.com.au/many-many-relationships-dax-explained/
Soy un tipo de Excel, así que trato de explicar cómo piensan los chicos de Excel
minhvuong93
En respuesta a MattAllington
@MattAllington
Querido Matt,
También estoy usando Excel y tengo el problema con este tipo de relación de muchos a muchos,
¿Podrías ayudarme a echar un vistazo a mi publicación? Quizás puedas tener alguna sugerencia.
Busco unas medidas calculadas pero con una especie de relación complicada
http: //community.powerbi.com/t5/Desktop/HELP-Many-to-many-replationship-Sum-ignore-filter/mp/155249 …