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

Join us for an expert-led overview of the tools and concepts you'll need to become a Certified Power BI Data Analyst and pass exam PL-300. Register now.

Reply
Syndicate_Admin
Administrator
Administrator

Tiempo entre fechas para cada identificador único: varias variables de fecha

Hola

Soy nuevo en Power BI y tengo algunos problemas para encontrar una forma de calcular el número promedio de días transcurridos entre dos fechas con los datos a continuación, para una base de datos de administración de casos. La diferencia entre las fechas debe calcularse de dos maneras diferentes, considerando solo los casos cerrados:

  • Diferencia entre el "initial_contact_date" para los casos que se abrieron y cerraron el mismo día ("Survivor_closed_case"="sí"), lo que significa que el caso solo tiene una presentación/fila. En este caso la diferencia será cero al ser el mismo día. Véase, por ejemplo, "editedorg1-30".
  • Diferencia entre el "initial_contact_date" del primer envío y el "Follow_up_date" del último envío/fila, para los casos en que este último estaba cerrado ("Survivor_closed_case"="sí")

Descripción de los datos:

  • Una fila = un caso presentado
  • Cada fila tiene un identificador único ("Unique_ID_merged")
  • Cada caso (identificado con "Unique_ID_merged") puede tener uno o varios rows_
    • Cada caso tendrá el primer envío ("New_or_registered"="new_case"). Si el caso está cerrado, tomará el valor "sí" al "Survivor_closed_case"). Este tipo de envío tendrá una fecha como valor para "initial_contact_date"). La fecha de cierre del caso será la misma que la de "initial_contact_date". Ver "org2-30" en los datos
    • Cada caso puede tener presentaciones de seguimiento ("New_or_registered" = "tracking_existing caso") y, si el caso está cerrado, tomará el valor "sí" al "Survivor_closed_case"). Para estos envíos, solo tenemos un valor de fecha como el "Follow_up_date", y solo podemos conocer los "initial_contact_date" del primer envío, vinculándolos a través del "Unique_ID_merged". Ver "org1-16" en los datos.

Esto nos ayudará a saber cuánto tiempo, en promedio, se tarda en cerrar un caso de violencia una vez que la sobreviviente ha decidido cerrarlo. Después 😍 de esto, intentaré calcular el número promedio de días que un caso ha estado abierto, para los casos que aún no se han cerrado (ver "org3-10" en los datos)

Unique_ID_mergedNew_or_registeredInitial_contact_dateFollow_up_dateSurvivor_closed_case
org3-10new_case20/08/2024nulono
org3-10tracking_existing_casenulo21/08/2024no
org1-16new_case27/08/2024nulono
org1-16tracking_existing_casenulo28/08/2024no
org1-16tracking_existing_casenulo30/08/2024
org2-30new_case06/09/2024nulo
2 ACCEPTED SOLUTIONS
Syndicate_Admin
Administrator
Administrator

Promedio=

Promediox(

Valores( datum[Unique_ID_merged] ),

var initialContact =

Calcular( min( datum[initial_contact_date ))

var cerradoContactoInicial =

Calcular(

min( fecha[inital_contact_date),

Datum[Survivor_closed_case] = "sí"

)

var lastFollowup =

Calcular(

Max( fecha[follow_up_date),

Datum[Survivor_closed_case] = "sí"

)

Devolución

Datediff(initialContact, coalesce (closedInitialContact, lastFollowup))

)

View solution in original post

Syndicate_Admin
Administrator
Administrator

¡Hola, muchas gracias! Solo un par de ajustes, en particular, el tercer argumento para DATEDIFF. ¡Esto es lo que funcionó!

Promedio de días de cierre =
PROMEDIOX(
VALORES('DB'[Unique_ID_merged]),
VAR initialContact =
CALCULAR(MIN('DB'[initial_contact_date]))
VAR closedInitialContact =
CALCULAR(
MIN('DB'[initial_contact_date]),
'DB'[Survivor_closed_case] = "Sí"
)
VAR closedLastFollowup =
CALCULAR(
MÁXIMO('DB'[follow_up_date]),
'DB'[Survivor_closed_case] = "Sí"
)
DEVOLUCIÓN
DATEDIFF(initialContact, COALESCE(closedInitialContact, closedLastFollowup),DÍA)
)

View solution in original post

3 REPLIES 3
Syndicate_Admin
Administrator
Administrator

Muchas gracias por su ayuda. Quería hacer algo similar para los casos que seguían abiertos, así que ambos 'DB'[initial_contact_date]), 'DB'[Survivor_closed_case] = "no" Y 'DB'[follow_up_date]), 'DB'[Survivor_closed_case] = "no")Usando HOY().

¿Tiene sentido lo siguiente? ¡Muchas gracias de nuevo!

Avgdaysopen = 
AVERAGEX(
    FILTER(
        'DB',
        'DB'[Survivor_closed_case] = "no"
    ),
    VAR OpenInitialContact =
        CALCULATE(
            MIN('DB'[initial_contact_date])
        )
    VAR lastFollowupOpen =
        CALCULATE(
            MAX('DB'[follow_up_date])
        )
    RETURN
        DATEDIFF(OpenInitialContact, TODAY(), DAY)
)
Syndicate_Admin
Administrator
Administrator

¡Hola, muchas gracias! Solo un par de ajustes, en particular, el tercer argumento para DATEDIFF. ¡Esto es lo que funcionó!

Promedio de días de cierre =
PROMEDIOX(
VALORES('DB'[Unique_ID_merged]),
VAR initialContact =
CALCULAR(MIN('DB'[initial_contact_date]))
VAR closedInitialContact =
CALCULAR(
MIN('DB'[initial_contact_date]),
'DB'[Survivor_closed_case] = "Sí"
)
VAR closedLastFollowup =
CALCULAR(
MÁXIMO('DB'[follow_up_date]),
'DB'[Survivor_closed_case] = "Sí"
)
DEVOLUCIÓN
DATEDIFF(initialContact, COALESCE(closedInitialContact, closedLastFollowup),DÍA)
)
Syndicate_Admin
Administrator
Administrator

Promedio=

Promediox(

Valores( datum[Unique_ID_merged] ),

var initialContact =

Calcular( min( datum[initial_contact_date ))

var cerradoContactoInicial =

Calcular(

min( fecha[inital_contact_date),

Datum[Survivor_closed_case] = "sí"

)

var lastFollowup =

Calcular(

Max( fecha[follow_up_date),

Datum[Survivor_closed_case] = "sí"

)

Devolución

Datediff(initialContact, coalesce (closedInitialContact, lastFollowup))

)

Helpful resources

Announcements
Join our Fabric User Panel

Join our Fabric User Panel

This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.

June 2025 Power BI Update Carousel

Power BI Monthly Update - June 2025

Check out the June 2025 Power BI update to learn about new features.

June 2025 community update carousel

Fabric Community Update - June 2025

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