Forum Discussion
DAX
Por favor, escriba el DAx de una manera y la salida después de escribir esto es por favor ayude a @123abc
Puedo ver que está tratando de asignar una clasificación a los valores en la columna "Vals". El requisito es restablecer el rango cada vez que aparezca una entrada de "Producto". Proporcionaré un enfoque DAX más detallado y organizado para lograr esto.
A continuación, se muestra una guía paso a paso para escribir la medida DAX para este caso:
Solución DAX para la clasificación personalizada
- Cree una columna calculada con la siguiente fórmula DAX:
Rango =
VAR CurrentRow = Tabla[ID]
VAR IsProduct = Tabla[Vals] = "Producto"
DEVOLUCIÓN
SI(
IsProduct,
RANKX(
FILTER(Tabla, Tabla[ID] <= CurrentRow && Table[Vals] = "Producto"),
Tabla[ID],
ASC
),
CALCULAR(
MAXX(
FILTER(Tabla, Tabla[ID] < CurrentRow && Table[Vals] = "Producto"),
RANKX(FILTER(Tabla, Tabla[ID] <= CurrentRow && Table[Vals] = "Producto"), Tabla[ID], , ASC)
)
)
)
Explicación:
- CurrentRow: Contiene el valor del "ID" de la fila actual.
- IsProduct: Comprueba si la fila actual tiene el valor "Producto" en la columna "Vals".
- Si la condición:
- Si la fila actual contiene "Producto", genera un nuevo rango usando RANKX().
- Para las filas que no contienen "Producto", asigna el rango del "Producto" más reciente por encima de la fila actual.
Salida esperada basada en la imagen:
ID Rango de Vals1 Producto 1 2 Leche 1 3 Mantequilla 1 4 Queso 1 5 Yogur 1 6 Producto 2 7 Muesli 2 8 Gachas 2 9 Producto 3 10 Plátano 3 Este enfoque debe generar la salida esperada, donde cada "Producto" comienza un nuevo rango, y todos los demás valores por debajo de él siguen el mismo rango hasta que aparece un nuevo "Producto".
¡Avísame si esto resuelve el problema!