Confundido acerca de la propagación del contexto de fila y la transición de contexto CALCULAR

Un usuario Pregunto ✅

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.

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 …

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *