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

Calcular la duración de la fase/etapa

Hola Queridos ayudantes de Power Bi,

Necesito algunos consejos. Me gustaría calcular la duración de la fase para todos los candidatos en mis datos.

¿Hay alguna forma adecuada de resolverlo?

Así es como se ven mis datos (por favor vea mi foto adjunta).

AnaStone_100_0-1643498840225.png

Explicación:

Bandeja de entrada - Revisión (11 de mayo-14 de mayo))-4 días

Reseña -1ª Entrevista (14 de mayo) - 1 día

1ª Entrevista -Selección1 (14 Mayo-19 Mayo) - 6 días

... y así sucesivamente

hasta la etapa final de contratación el 14 de junio para esta persona.

Cualquier ayuda muy apreciada.

¡Muchas gracias!

1 ACCEPTED SOLUTION

Hay @AnaStone_100 ,

¿Es esto lo que estás buscando?

tomfox_1-1643542907479.png

Lo resolví en dos pasos con dos columnas calculadas diferentes.

Primero, necesitamos crear una columna de índice para que podamos iterar a través de cada fila y calcular la diferencia entre sus respectivas fechas. Dado que tenemos filas que tienen la misma fecha, necesitamos tener una segunda columna que decida cuál clasificar primero o segundo. En su caso, elegí to_stage_id, por lo que el ranking se ve así:

tomfox_0-1643542460455.png

index = 
VAR MaxToStageID = MAX( 'Table'[to_stage_id] )
VAR result =
    RANKX (
        ALL ( 'Table' ),
        'Table'[activity_created] * MaxToStageID + 'Table'[to_stage_id],
        ,
        ASC,
        DENSE
    )
RETURN
    result

Los chicos de sqlbi han hecho un blog sobre este tema sobre cómo clasificar / crear índices en múltiples columnas.

Después de eso, creé otra columna calculada que usa el índice para iterar a través de la tabla calculando la diferencia de fecha:

tomfox_2-1643543057856.png

tomstest = 
VAR Index =  ('Table'[index])
VAR PreviousIndex = ('Table'[index] - 1 )
VAR result = 
        DATEDIFF( 
            CALCULATE ( 
                VALUES ( 'Table'[activity_created] ),
                FILTER ( ALL ('Table'), 'Table'[index] = PreviousIndex )  
            ),
            CALCULATE ( 
                VALUES ( 'Table'[activity_created] ),
                FILTER ( ALL ('Table'), 'Table'[index] = Index )  
            ),
            DAY
        )
RETURN result

¡Espero que esto ayude!


/Tom

https://www.tackytech.blog

https://www.instagram.com/tackytechtom

View solution in original post

7 REPLIES 7
Syndicate_Admin
Administrator
Administrator

@AnaStone_10@AnaStone_100 ,

También puede crear un índice a través del Editor de Power Query:

vluwangmsft_0-1644302382405.png

Y puede descargar el archivo pbix para verificar con su archivo.

vluwangmsft_1-1644302415547.png

Saludos

Lucien

Syndicate_Admin
Administrator
Administrator

Hola Tom, Gracias por el esfuerzo y tu solución.

Sí, lo que has logrado funcionará para mí como un objetivo final, pero cuando replico tu solución en mis datos obtengo 0 como resultado.

Creo que el problema radica en la columna to_stage_id. Los Id tal vez no sean una buena idea para clasificar.

También he intentado crear la columna Índice con esta lógica, pero no me está dando el resultado deseado.

Índice =
RANKX('Solicitud de empleo FT', 'Solicitud de empleo FT'[activity_created].[Fecha], , ASC, Denso)
¿Alguna otra idea de cuál podría ser el problema?
Syndicate_Admin
Administrator
Administrator

He probado esta fórmula en una columna calculada, está cerca de lo que yo qué pero no exactamente.

Columna de prueba =
DÓNDE Temp =
TOPN (
1,
FILTRO (
'tabla',
'tabla''[candidate_id] = ANTERIOR ( 'tabla''[candidate_id])
&& 'tabla''[activity_created] < ANTERIOR ( 'tabla''[activity_created])
),
'tabla''[activity_created], DESC
)
DEVOLUCIÓN
DATEDIFF ( BRIBONA ( Temp, 'tabla''[activity_created] ), 'tabla''[activity_created], DÍA )
Este es el resultado que obtuve
AnaStone_100_2-1643535161303.png

Revisión -1ª Entrevista (14 de mayo) - 1 día no 3.

y el total de 48 no es correcto. hay 35 días (11 de mayo-14 de junio).

¿Puede mostrarme también cómo puedo calcular el total de días correctos desde la fecha de inicio hasta la fecha de finalización?

Hay @AnaStone_100 ,

¿Es esto lo que estás buscando?

tomfox_1-1643542907479.png

Lo resolví en dos pasos con dos columnas calculadas diferentes.

Primero, necesitamos crear una columna de índice para que podamos iterar a través de cada fila y calcular la diferencia entre sus respectivas fechas. Dado que tenemos filas que tienen la misma fecha, necesitamos tener una segunda columna que decida cuál clasificar primero o segundo. En su caso, elegí to_stage_id, por lo que el ranking se ve así:

tomfox_0-1643542460455.png

index = 
VAR MaxToStageID = MAX( 'Table'[to_stage_id] )
VAR result =
    RANKX (
        ALL ( 'Table' ),
        'Table'[activity_created] * MaxToStageID + 'Table'[to_stage_id],
        ,
        ASC,
        DENSE
    )
RETURN
    result

Los chicos de sqlbi han hecho un blog sobre este tema sobre cómo clasificar / crear índices en múltiples columnas.

Después de eso, creé otra columna calculada que usa el índice para iterar a través de la tabla calculando la diferencia de fecha:

tomfox_2-1643543057856.png

tomstest = 
VAR Index =  ('Table'[index])
VAR PreviousIndex = ('Table'[index] - 1 )
VAR result = 
        DATEDIFF( 
            CALCULATE ( 
                VALUES ( 'Table'[activity_created] ),
                FILTER ( ALL ('Table'), 'Table'[index] = PreviousIndex )  
            ),
            CALCULATE ( 
                VALUES ( 'Table'[activity_created] ),
                FILTER ( ALL ('Table'), 'Table'[index] = Index )  
            ),
            DAY
        )
RETURN result

¡Espero que esto ayude!


/Tom

https://www.tackytech.blog

https://www.instagram.com/tackytechtom

¡Hola!

Buscaba algo similar. Pero encontró esto.

Mi pregunta es que mi interés es calcular cuánto tiempo se quedan las oportunidades en cada etapa. Entonces, en su caso, cuando la oportunidad entró en la etapa 2, la fecha fue el 14 de mayo, y cuando entró en la etapa 3 la fecha fue el 19 de mayo. Por lo tanto, la duración de la etapa 2 para esta oportunidad debería ser 5. Pero en su caso, se muestra 0 días. Ese es el resultado de la etapa anterior.

¿Me equivoqué?

@shafiq ,

Echa un vistazo aquí.

Allí, cubrimos dos casos diferentes al calcular la diferencia de fecha entre filas. De lo contrario, puede abrir un nuevo tema, agregar algunos datos de muestra y etiquetarme.

¡Estoy más que feliz de echarle un vistazo! 🙂

/Tom
https://www.tackytech.blog/
https://www.instagram.com/tackytechtom/

Muchas gracias por eso. Ya he hecho una pregunta sobre eso y está resuelto. Estaba pidiendo esto

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.