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

Don't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.

Reply
Syndicate_Admin
Administrator
Administrator

Calcular la antigüedad de los incidentes cerrados en función de la fecha de cierre del incidente

Hola a todos,

Tengo el siguiente escenario en el que quiero calcular el tiempo que se tarda en resolver incidentes, he calculado la medida como se muestra a continuación,

Quiero calcular la medida a continuación en función de la fecha en que se cerró el incidente, pero tengo la tabla conectada para crear la fecha y, por lo tanto, todas las fechas se filtran en función de la fecha de creación, quiero saber cómo calcular el tiempo que tardan los incidentes resueltos en función de la fecha en que se cerró el incidente. Su ayuda sería útil en el tema anterior. Gracias

Time taken for Resolved incidents = 
VAR AveDur =
    CALCULATE(AVERAGEX(Incidents,Incidents[Aged_Days_Incidents Closed_minutes] ),FILTER(ALL('Incidents'[Date incident closed].[Date]), Incidents[Date incident closed].[Date] <=MAX(Incidents[Date incident closed].[Date])))

VAR Days =
    INT ( AveDur / 60 / 24 )
VAR Hours =
    INT ( AveDur / 60 - Days * 24 )
VAR Minutes =
    ROUND ( MOD ( AveDur, 60 ), 0 )
VAR DaysText =
    IF ( Days >= 1, FORMAT ( Days, "General Number" ))
VAR HoursText =
    FORMAT ( Hours, "General Number" ) & "H"
VAR MinutesText =
    FORMAT ( Minutes, "General Number" ) & "M"
RETURN
     IF(VALUE(DaysText) = BLANK(), BLANK(), VALUE(DaysText))

1 ACCEPTED SOLUTION

Hola @reddevil

Puede utilizar la función USERRELATIONSHIP para calcular en función de una relación inactiva. Por ej.

VAR AveDur =
    CALCULATE(
            AVERAGEX(Incidents,Incidents[Aged_Days_Incidents Closed_minutes]),
            USERELATIONSHIP(Incidents[Date incident closed],DimDate[Date])
            )

View solution in original post

11 REPLIES 11
Syndicate_Admin
Administrator
Administrator

Hola @reddevil

  • Cree una tabla de fecha independiente (dimensión) en lugar de utilizar la columna de fecha de la tabla principal.
  • Combine la tabla Incidente con la tabla Fecha en la fecha de creación y la fecha de cierre (solo habrá una relación activa).
  • En la mayoría de los escenarios, la relación con la fecha de creación permanece activa y la fecha de cierre permanece inactiva.
  • Para calcular el tiempo necesario utilizando la fecha cerrada, debe usar la función USERRELATIONSHIPCOMO se muestra a continuación:
VAR AveDur =
    CALCULATE(
            AVERAGEX(Incidents,Incidents[Aged_Days_Incidents Closed_minutes]),
            USERELATIONSHIP(Incidents[Date incident closed],DimDate[Date])
            )

¿Respondí a tu pregunta?
¡Por favor, ayúdanos haciendo clic en el botón de pulgar hacia arriba y marca mi publicación como una solución!

Gracias

Syndicate_Admin
Administrator
Administrator

Gracias @BIDataRef @hnguy71, lo he resuelto utilizando la tabla DC como segmentador.

Syndicate_Admin
Administrator
Administrator

Hola

Comparta algunos datos con los que trabajar y muestre el resultado esperado. Comparta datos en un formato que se pueda pegar en un archivo de MS Excel.

Hola Ashish,

A continuación se muestran los datos de muestra:

Nombre del estadoFecha de creaciónFecha de cierre del incidentePromedio
Cerrado25/06/202411/07/2024
Cerrado25/06/202411/07/2024
Cerrado25/06/202411/07/2024
Cerrado15/02/202427/08/2024
Cerrado15/02/202420/06/2024
Resultado esperado: Tiempo necesario para resolver incidentes en función de la fecha en que se cerró el incidente
Tenemos cálculos de año de fin, año de trimestre y año de mes
Syndicate_Admin
Administrator
Administrator

Hola @reddevil

Desde tu cálculo, no parece que estés usando ninguna tabla de fechas. No estoy seguro de lo que quieres decir con "conectado". ¿Está utilizando una segmentación de datos en su página o en el panel de filtro con la fecha de creación para filtrar sus datos?

Si ese es el caso, te sugiero que hagas dos cosas:

  1. Configura una tabla de fechas dedicada y crea una relación con tu tabla de hechos. Un ACTIVO para la fecha de creación y uno INACTIVO para la fecha de cierre
  2. Configure una tabla desconectada que contenga las mismas fechas y utilícela como segmentación. Las fechas o períodos recuperados de allí deben usarse para calcular las expresiones creadas y cerradas

Hola @hnguy71

Intenté aplicar eso, pero estoy usando solo un filtro como fecha cerrada de la tabla de incidentes que está conectada a la tabla de fechas.

Hola @reddevil ,

De forma muy similar a la respuesta de @BIDataRef, tendría que ajustar la expresión para incluir una nueva función llamada USERELATIONSHIP.

CALCULATE(
	AVERAGEX(
		Incidents,
		Incidents[Aged_Days_Incidents Closed_minutes]
		),
	FILTER(
		ALL('Incidents'[Date incident closed].[Date]), 
		Incidents[Date incident closed].[Date] <= MAX(Incidents[Date incident closed].[Date])
	), 
	USERELATIONSHIP(Incidents[Date incident closed].[Date], YOUR_DATE_TABLE[Date]) 
)

Sin embargo, es posible que aún tenga un problema porque los valores de la segmentación dependen de la "Fecha de creación" en lugar de las fechas de creación y cierre. Aquí es donde recomendaría crear una tabla separada y desconectada con todos los valores de fecha posibles.

¿Cree que debería usar la tabla desconectada en la función USERELATIONSHIP?

Hola @hnguy71 ,

Gracias por responder, sí, tengo problemas con la segmentación de fechas de creación y creé una tabla de fechas separada similar a la tabla de fechas de creación. ¿Cree que debería usar esa tabla de fechas para la segmentación ya que tengo otras medidas en la tabla que dependen de la segmentación de fecha de creación?

Hola @hnguy71

Tengo una tabla de fechas conectada a la tabla de incidentes mediante Crear fecha. He implementado la relación inactiva basada en la fecha cerrada en la tabla de fechas. Además, ¿cómo creamos la medida de envejecimiento para los incidentes resueltos en función de la fecha de cierre?

Hola @reddevil

Puede utilizar la función USERRELATIONSHIP para calcular en función de una relación inactiva. Por ej.

VAR AveDur =
    CALCULATE(
            AVERAGEX(Incidents,Incidents[Aged_Days_Incidents Closed_minutes]),
            USERELATIONSHIP(Incidents[Date incident closed],DimDate[Date])
            )

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Prices go up Feb. 11th.

Jan25PBI_Carousel

Power BI Monthly Update - January 2025

Check out the January 2025 Power BI update to learn about new features in Reporting, Modeling, and Data Connectivity.

Jan NL Carousel

Fabric Community Update - January 2025

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

Top Solution Authors