Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.
Hola
Estoy tratando de aplicar diferentes criterios de filtrado dependiendo de la división de ventas, gracias a amitchandak y las funciones SUMX/SWITCH puedo aplicar según lo previsto, pero una división genera un problema.
Mi modelo contiene tres tablas de la siguiente manera:
DIVISIÓN | DIVISION_NAME |
1 | B2B |
2 | B2C |
3 | TIENDA |
VENDEDOR | DIVISION_ID | SALESMAN_NAME |
1 | 1 | John |
2 | 2 | Pedro |
3 | 1 | Claire |
TOTAL_PRICE | SALESMAN_ID | IN_SHOP | ARTÍCULO | A | B |
1000 | 1 | Y | A | 1 | 1 |
2000 | 1 | N | B | 2 | 2 |
1500 | 2 | Y | C | 2 | 2 |
2500 | 3 | Y | D | 1 | 2 |
1000 | -1 | Y | E | 1 | 1 |
Los ID están vinculados en una relación de uno a varios, por lo que puedo graficar las ventas por división y por vendedor usando este código.
MTD = SUMX(
VALUES(DIVISIONS[DIVISION]),
SWITCH(
DIVISIONS[DIVISION],
1, CALCULATE(SUM(SALES[TOTAL_PRICE]),
FILTER(SALES, SALES[A] = 1)),
2, CALCULATE(SUM(SALES[TOTAL_PRICE]),
FILTER(SALES, SALES[A] = 2 && SALES[B] = 2)),
3, CALCULATE(SUM(SALES[TOTAL_PRICE]),
FILTER(SALES, SALES[IN_SHOP] = "Y"),
0
)
)
La división SHOP puede ser generada por división B2B y B2C y también en la propia, pero ambas divisiones se filtran cuando se grafican vs división y vendedor, también se intentó deshabilitar la relación y agregar USERELATIONSHIP en el caso 1 y 2 pero genera un valor constante que se agrega a todas las divisiones, ¿hay alguna forma de deshabilitar la relación solo en el caso 3?
El comportamiento previsto es obtener lo siguiente.
DIVISIÓN | VENTAS |
B2B | 3500 |
B2C | 1500 |
TIENDA | 6000 |
Gracias en ventaja
@orlando9427 , parece que está creando una columna, no una medida.
Puede utilizar la combinación cruzada con None para deshabilitar la unión
Crear una medida
MTD = SUMX(
VALORES(DIVISIONES[DIVISIÓN]),
INTERRUPTOR(
Max(DIVISIONES[DIVISIÓN]),
1, CALCULAR(SUMA(VENTAS[TOTAL_PRICE]),
FILTRO(VENTAS, VENTAS[A] = 1)),
2, CALCULAR(SUMA(VENTAS[TOTAL_PRICE]),
FILTRO(VENTAS, VENTAS[A] = 2 && VENTAS[B] = 2)),
3, CALCULAR(SUMA(VENTAS[TOTAL_PRICE]),
FILTER(SALES, SALES[IN_SHOP] = "Y"),
0
)
)