Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Syndicate_Admin
Administrator
Administrator

Contar las filas consecutivas de una categoría

Hola a todos, estoy tratando de crear una columna calculada donde cuento el número de semanas consecutivas que un empleado está en un cuartil determinado. Debe ser una columna calculada por DAX. Para tener en cuenta, un empleado diferente puede comenzar a trabajar en diferentes id_weeks.

Para agregar, cada vez que un empleado cambia de cuartil, el contador se restablece.

Como ejemplo, tengo que ser capaz de crear la columna "Semanas en cuartil" en la siguiente tabla.

id_weekid_employeecuartilSemanas en cuartil
11P11
21P12
31P21
41P11
51P12
32P31
42P41
52P42
23P21
33P22
43P23
53P24
63P11
73P12
2 REPLIES 2
Syndicate_Admin
Administrator
Administrator

Hola, tuve que hacer algunos cambios, pero lo hice funcionar.
Aquí está el resultado final:

Semanas en cuartil =
Dónde __index = CALCULAR(..MAX([id_week])) ¿Cuál es mi índice de fila actual?
Dónde __group = CALCULAR(..MAX([id_employee])) ¿Cuál es mi grupo actual?
Dónde __tmpTable1 = FILTRO(Todo('Tabla'),[id_employee]=__group&&[id_week]<__index) Devolver todas las filas anteriores a la fila actual dentro del mismo "grupo"
Dónde __tmpTable2 = ADICIONES(__tmpTable1,"__diff",[id_week] - MAXX(FILTRO(Todo(«Cuadro»),[id_week]<ANTERIOR([id_week]) && [id_employee]=ANTERIOR([id_employee])),[id_week])) Para cada fila devuelta, calcule la diferencia entre el valor de índice actual y el valor de índice anterior dentro del mismo grupo. Para las filas de la secuencia agrupada, esto será 1, pero para las filas dentro de un grupo que están fuera de secuencia, este valor será mayor que 1
Dónde __max = MAXX(__tmpTable2,[id_week]) Calcule el índice máximo en la tabla filtrada actual.
Dónde __maxStart = MAXX(FILTRO(__tmpTable2,[__diff]>1),[id_week]) Para tener en cuenta los "saltos" en la agrupación, calcule el valor máximo del índice del último "salto" (la fila justo después del salto donde el grupo comienza de nuevo) Este será el índice más grande donde la diferencia con el índice anterior en el mismo grupo es mayor que 1 (fila anterior)
Dónde __tmpTable3 = FILTRO(__tmpTable2,[id_week]>=__maxStart) Filtrar todos los demás archivos basura porque no queremos contar filas antes del salto
DEVOLUCIÓN Si(ISBLANK(__max),1,Si(__max=__index-1,CUENTAS(__tmpTable3)+1,1)) Si __max está en blanco, sabemos que estamos al principio de la tabla, así que 1. Si el índice máximo de nuestra tabla original es 1 menor que el índice actual, sabemos que estamos en secuencia, por lo que contamos todas nuestras filas filtradas (que no incluyen filas más allá de un "salto"), de lo contrario devolvemos 1 porque sabemos que estamos en la fila inmediatamente después de un "salto".


¡Gracias!

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.