Yael
Hola,
Necesita ayuda con la función DAX, por favor.
A continuación se muestra una foto de mi fuente de datos, estoy interesado en completar el campo «Es la fecha máxima» con valores de 1/0.
Numero de fila | Fecha | Número de transacción | Cliente | Categoría de cliente | Es la fecha máxima |
1 | 6-mar-18 | 100 | A-John | A | |
2 | 6-mar-18 | 200 | B-Kim | B | |
3 | 7-mar-18 | 300 | A-John | A | |
4 | 7-mar-18 | 400 | A-John | A |
Quiero que ese campo se calcule de acuerdo con los filtros aplicados por el usuario:
Si el usuario selecciona en el filtro Cliente = «A-John», quiero ver Es la fecha máxima = 1 para las filas 3 y 4
Si el usuario selecciona en el filtro Categoría de cliente = «B», quiero ver Es la fecha máxima = 1 para la fila 2
etcétera…
¿Cómo puedo hacer esto por favor?
¡Gracias!
v-jiascu-msft
Hola @Yael,
Consulte una demostración aquí.
1. Necesita tablas dimensionales en su escenario.
2. Dos rebanadoras.
3. La medida podría ser así:
Measure = VAR maxdate = CALCULATE ( MAX ( 'Table1'[Date] ), ALL ( 'Table1'[Row Number] ) ) RETURN IF ( MIN ( 'Table1'[Date] ) = maxdate, 1, 0 )
Atentamente,
Valle
Yael
En respuesta a v-jiascu-msft
Gracias @ v-jiascu-msft. Intenté crear la medida en DateDim:
IsMaxDate =
VAR maxdate =
CALCULAR (MAX (dim[Date]), TODOS (tenue[DatePK]))
REGRESO
SI (MAX (tenue[Date]) = fecha máxima, 1, 0)
Cuando arrastro esta medida a mi tabla de hechos, veo que está duplicando las filas para fechas que no existen en el hecho + todas las filas obtienen 1 en «IsMaxDate»
Zubair_Muhammad
En respuesta a Yael
Hola @Yael
Prueba este
IsMaxDate = VAR maxdate = CALCULATE ( MAX ( dim[Date] ), ALLSELECTED () ) RETURN IF ( MAX ( dim[Date] ) = maxdate, 1, 0 )
Yael
En respuesta a Zubair_Muhammad
Ahora recibo 1 solo en una fila, pero el hecho aún muestra filas para todas las fechas (incluso aquellas que no existen en el hecho):
Yael
En respuesta a Yael
¿Alguna otra idea sobre cómo podemos crear una función general que calcule MAX y Min según los valores en filtros / segmentaciones?
GeorgeBuster
Hola yael
Por un lado, no puede crear columnas calculadas en función de los filtros del informe porque los valores de estas columnas se calculan cuando los datos se cargan antes de que el usuario seleccione el filtro.
Por otro lado, si desea llenar su columna con 1/0, donde 1 es una vez por usuario, podemos hacerlo:
Es la fecha máxima =
VAR CLIENTE = MAX (Cliente)
REGRESO
SI(
Fecha = CALCULAR (
MAX (fecha);
TODOS (TransactionsTable);
Cliente = CLIENTE
);
1;
0
)
Espero que esto le pueda ayudar,
Jorge.
Yael
En respuesta a GeorgeBuster
¡Gracias @GeorgeBuster! el DAX anterior devuelve un mensaje de error, sin especificar dónde está el problema …
GeorgeBuster
En respuesta a Yael
¿Podrías compartir una captura de pantalla? Quizás podamos encontrar el error. Gracias.