Forum Discussion
DAX
Para crear una clasificación basada en la columna "Producto" según la lógica de Power BI, donde se inicia una nueva clasificación cada vez que aparece "Producto", puede usar una fórmula DAX para generar esta clasificación personalizada.
A continuación, se muestra un enfoque de ejemplo:
Datos de muestra (entrada):
Producto de fila
| 1 | A |
| 2 | |
| 3 | |
| 4 | B |
| 5 | |
| 6 | C |
| 7 |
Resultado esperado:
Rango de producto de fila
| 1 | A | 1 |
| 2 | 1 | |
| 3 | 1 | |
| 4 | B | 2 |
| 5 | 2 | |
| 6 | C | 3 |
| 7 | 3 |
Solución DAX:
- Cree una columna calculada en la tabla con esta fórmula DAX:
Por favor, escriba el DAx de una manera y la salida después de escribir esto es por favor ayude a @123abc
- Syndicate_Admin1 year agoAdministrator
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!