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

Cálculo del total móvil mensual para los tickets abiertos y cerrados

Hola a todos
Estoy buscando ayuda para resolver el siguiente problema:

Ticket_IDOpen_DateClosed_Date
101/01/202001/01/2020
201/12/202105/12/2021
301/13/202101/14/2021
401/14/202101/15/2021
501/15/202101/16/2021
601/16/202101/17/2021
701/17/202101/18/2021
801/18/202101/19/2021
901/19/202101/20/2021
1003/20/202203/21/2022
1103/21/202203/22/2022
1203/22/202203/23/2022

Del conjunto de datos anterior,
1.Necesito calcular el total móvil mensual para los tickets en estado abierto
2. Calcula el total móvil mensual de los tickets en estado Cerrado
3. También necesito trazar los totales móviles mensuales para boletos abiertos y cerrados en el gráfico de líneas de ejes múltiples.

Gracias de antemano.

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

Así es como lo hice:

Crear una tabla de fechas:

DateTable = CALENDAR(DATE(2020,1,1), DATE(2022,12,1))

Cree una columna calculada en esa tabla. Esto es solo para que pueda dividir por mes (formateado como AAAA Mmm):

YYYY Mmm = FORMAT('DateTable'[Date], "Mmm YYYY")

Crear tres medidas para calcular el número de tickets abiertos dentro de un período determinado; el número de entradas cerradas en un plazo determinado; y el número de entradas que siguen abiertas durante un período determinado.

TicketCount (Opened in Period) = 
    VAR _StartDate = FIRSTDATE('DateTable'[Date])
    VAR _LastDate = LASTDATE('DateTable'[Date])

    RETURN
        CALCULATE(
            COUNTROWS('TicketData'),
            'TicketData'[Open_Date] >= _StartDate,
            'TicketData'[Open_Date] <= _LastDate
        )

TicketCount (Closed in Period) = 
    VAR _StartDate = FIRSTDATE('DateTable'[Date])
    VAR _LastDate = LASTDATE('DateTable'[Date])

    RETURN
        CALCULATE(
            COUNTROWS('TicketData'),
            'TicketData'[Closed_Date] >= _StartDate,
            'TicketData'[Closed_Date] <= _LastDate
        )

TicketCount (Open During Period) = 
    VAR _StartDate = FIRSTDATE('DateTable'[Date])
    VAR _LastDate = LASTDATE('DateTable'[Date])

    RETURN
        CALCULATE(
            COUNTROWS('TicketData'),
            _StartDate <= 'TicketData'[Closed_Date],
            'TicketData'[Open_Date] <= _LastDate
        )

Para obtener sus datos de muestra, agregué una tabla calculada llamada TicketData:

TicketData = 
    DATATABLE(
        "TicketID", INTEGER, "Open_Date", DATETIME, "Closed_Date", DATETIME,
        {
            {"1","01/01/2020","01/01/2020"},
            {"2","01/12/2021","05/12/2021"},
            {"3","01/13/2021","01/14/2021"},
            {"4","01/14/2021","01/15/2021"},
            {"5","01/15/2021","01/16/2021"},
            {"6","01/16/2021","01/17/2021"},
            {"7","01/17/2021","01/18/2021"},
            {"8","01/18/2021","01/19/2021"},
            {"9","01/19/2021","01/20/2021"},
            {"10","03/20/2022","03/21/2022"},
            {"11","03/21/2022","03/22/2022"},
            {"12","03/22/2022","03/23/2022"}
        }
    )

Y esas medidas parecen funcionar cuando las dejo caer en una tabla (por mes)

EylesIT_0-1653326137883.png

Y cuando se grafica por mes:

EylesIT_1-1653326292833.png

Espero que esto ayude.

Me acabo de dar cuenta de que estabas buscando totales mensuales. Aquí hay tres medidas que creo que lograrán esto:

Monthly Rolling Total (Opened) = 
    // Number of tickets whose Opened_Date was in the last 30 days prior to the current day
    VAR _LastDate = LASTDATE('DateTable'[Date])
    VAR _StartDate = DATEADD(_LastDate, -30, DAY)

    RETURN
        CALCULATE(
            COUNTROWS('TicketData'),
            'TicketData'[Open_Date] >= _StartDate,
            'TicketData'[Open_Date] <= _LastDate
        )

Monthly Rolling Total (Closed) = 
    // Number of tickets whose Closed_Date was in the last 30 days prior to the current day
    VAR _LastDate = LASTDATE('DateTable'[Date])
    VAR _StartDate = DATEADD(_LastDate, -30, DAY)

    RETURN
        CALCULATE(
            COUNTROWS('TicketData'),
            'TicketData'[Closed_Date] >= _StartDate,
            'TicketData'[Closed_Date] <= _LastDate
        )

Monthly Rolling Total (Open) = 
    // Number of tickets whose status was Open in the last 30 days prior to the current day
    VAR _LastDate = LASTDATE('DateTable'[Date])
    VAR _StartDate = DATEADD(_LastDate, -30, DAY)

    RETURN
        CALCULATE(
            COUNTROWS('TicketData'),
            _StartDate <= 'TicketData'[Closed_Date],
            'TicketData'[Open_Date] <= _LastDate
        )

Gracias por la solución, pero esto no funciona cuando la columna de fecha tiene valores duplicados.

Por ejemplo: cuando tengo 2 tickets para el mismo Open_Date, la solución anterior falla.

¿Puede ayudar a resolver este escenario?

Gracias de antemano.

@Sattam ¿Podría publicar los datos de ejemplo que muestran que se produce este problema? He agregado una fila adicional de datos a los datos de muestra originales que proporcionó para que contengan una fecha duplicada y las medidas parezcan devolver el número correcto. Los TicketIDs 12 y 13 tienen el mismo Open_Date y Close_Dates.

Cuando creo una tabla visual con Fecha y el Total Móvil Mensual (Abierto), para el 22/03/2022 obtengo el recuento correcto de 4 tickets (los ID de ticket 10, 11, 12 y 13 tienen un Open_Date del 20/02/2022 al 22/03/2022)

EylesIT_0-1653466698733.png

TicketData = 
    DATATABLE(
        "TicketID", INTEGER, "Open_Date", DATETIME, "Closed_Date", DATETIME,
        {
            {"1","01/01/2020","01/01/2020"},
            {"2","01/12/2021","05/12/2021"},
            {"3","01/13/2021","01/14/2021"},
            {"4","01/14/2021","01/15/2021"},
            {"5","01/15/2021","01/16/2021"},
            {"6","01/16/2021","01/17/2021"},
            {"7","01/17/2021","01/18/2021"},
            {"8","01/18/2021","01/19/2021"},
            {"9","01/19/2021","01/20/2021"},
            {"10","03/20/2022","03/21/2022"},
            {"11","03/21/2022","03/22/2022"},
            {"12","03/22/2022","03/23/2022"},
            {"13","03/22/2022","03/23/2022"}
        }
    )

@Sattam Espero que esto ayude

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.