Dax a Sql, función Windowing / Lag (sobre partición por equivalente en Dax)

Un usuario Pregunto ✅

durmiendo

Vengo de sql a dax. Espero ayuda, por favor. Estoy intentando crear una columna que tenga el valor de fila anterior (LAG) para un grupo.

Mi cálculo de columna es el siguiente:

Lag_Inv_Score1 = CALCULATE (MAX (‘Hoja1′[Inv_Score1]), FILTRO (Hoja1, ‘Hoja1′[ID]= ANTES (‘Hoja1′[ID]) && Hoja1[Date]

Sin embargo, mi resultado no es el esperado. Para las columnas de retraso Inv Score1: para el grupo AAA1, espero 6, 5 pero tenemos 6,6. Me pregunto dónde me estoy equivocando. Cualquier consejo aquí sería muy apreciado.

screenshot.pngSaludos ML.

Hola @mleepin

Creo que esta columna calculada se acerca a lo que necesita. Su fórmula devolvía el valor MAX de todos los valores anteriores, en lugar de la fila lógica anterior.

Lav_Inv_Score1 = 
VAR myID = 'Sheet1'[ID]
VAR myLastDate = MAXX(FILTER('Sheet1','Sheet1'[ID]=myID && 'Sheet1'[Date] < EARLIER('Sheet1'[Date])),'Sheet1'[Date])
RETURN SUMX(FILTER('Sheet1','Sheet1'[Date] = myLastDate && 'Sheet1'[ID] = myID),'Sheet1'[Inv_Score1])

image.png

durmiendo

En respuesta a Phil_Seamark

El plomo parece funcionar así:

Lead_Inv_Score1 = VAR myID = Hoja1[ID] VAR myNextDate = MINX (FILTER (Sheet1, Sheet1[ID] = myID && Sheet1[Date] > ANTES (Hoja1[Date])), Hoja1[Date]) RETORNO SUMX (FILTRO (Hoja1, Hoja1[Date] = myNextDate && Sheet1[ID] = myID), Hoja1[Inv_Score1]).

Saludos ML.

Hola @mleepin

Creo que esta columna calculada se acerca a lo que necesita. Su fórmula devolvía el valor MAX de todos los valores anteriores, en lugar de la fila lógica anterior.

Lav_Inv_Score1 = 
VAR myID = 'Sheet1'[ID]
VAR myLastDate = MAXX(FILTER('Sheet1','Sheet1'[ID]=myID && 'Sheet1'[Date] < EARLIER('Sheet1'[Date])),'Sheet1'[Date])
RETURN SUMX(FILTER('Sheet1','Sheet1'[Date] = myLastDate && 'Sheet1'[ID] = myID),'Sheet1'[Inv_Score1])

image.png

durmiendo

En respuesta a Phil_Seamark

El plomo parece funcionar así:

Lead_Inv_Score1 = VAR myID = Hoja1[ID] VAR myNextDate = MINX (FILTER (Sheet1, Sheet1[ID] = myID && Sheet1[Date] > ANTES (Hoja1[Date])), Hoja1[Date]) RETORNO SUMX (FILTRO (Hoja1, Hoja1[Date] = myNextDate && Sheet1[ID] = myID), Hoja1[Inv_Score1]).

Saludos ML.

durmiendo

En respuesta a Phil_Seamark

Hola,

Gracias, esto funciona bien. Saludos ML. Si tuviera que hacer lo mismo con el plomo, ¿el cálculo sería muy similar? Una vez más, cualquier consejo aquí sería muy apreciado.

ML.

Deja un comentario

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