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
Anonymous
Not applicable

Los últimos 6 meses como en dax measure para acciones

Hola a todos, tengo una tabla de acciones que ha elevado la fecha, la fecha cerrada, la fecha de vencimiento y los campos de estado. Necesito crear un objeto visual que dé durante los últimos 6 meses dentro del SLA, atrasado, 30 más días de acciones vencidas como al final del mes. Dentro de las acciones de SLA se encuentran acciones que estaban abiertas al final del mes pero no más allá de su fecha de vencimiento, las acciones vencidas son acciones que estaban abiertas pero que estaban más allá de su fecha de vencimiento, 30 más acciones vencidas eran acciones vencidas que tenían más de 30 días después de su fecha de vencimiento. La definición de acciones abiertas se genera al final del mes y el estado abierto O status - cerrado, fecha elevada antes del final del mes y la fecha cerrada es después del final del mes. En la actualidad, el gráfico se genera mediante una vista SQL que no es ideal, ya que no permite cortar y cortar el objeto visual. Me gustaría saber si puedo crear una medida que me daría dentro del SLA, atrasado y 30 más días de retraso como al final del mes basado en las condiciones anteriores para los últimos 6 meses? Gracias.

1 ACCEPTED SOLUTION
Anonymous
Not applicable

Hola @v-shex-msft

Me las arreglé para resolverlo con tu ayuda. La solución implicada en el uso de la medida DAX a continuación. La tabla de Power BI ahora coincide con la tabla de salida deseada que publiqué anteriormente. Gracias de nuevo por su apoyo.

Measure 3 = 
VAR currDate =
    MAX ( dateTable[Date] )
RETURN
    SWITCH (
        SELECTEDVALUE ( Category[Type] ),
        "Raised",
            COUNTROWS (
                FILTER (
                    'Table',
                    [DateRaised] IN VALUES ( dateTable[Date] )
                 )
                )
            ,
        "Within SLA",
            COUNTROWS (
                FILTER (
                    'Table',
                    [DateRaised] <= currDate
                        && OR([CUrrentStatus] = "Open",[CUrrentStatus]="Closed"&&[DateClosed]>CurrDate) && [DUeDate]>= currDate)
                ),
        "Overdue",
            COUNTROWS (
                FILTER (
                    'Table',
                    [DateRaised] <= currDate
                        && OR([CUrrentStatus] = "Open",[CUrrentStatus]="Closed"&&[DateClosed]>CurrDate) && [DUeDate]< currDate)
                ),
        "Overdue 30 plus",
            COUNTROWS (
                FILTER (
                    'Table',
                    [DateRaised] <= currDate
                        && OR([CUrrentStatus] = "Open",[CUrrentStatus]="Closed"&&[DateClosed]>CurrDate) && [DUeDate]< currDate && DATEDIFF('Table'[DUeDate],currDate,DAY)>=30)
                )
    )

View solution in original post

8 REPLIES 8
Anonymous
Not applicable

Hola, como se sugiere aquí son los datos de acciones ficticios y la tabla de salida deseada para la visualización de PBI. Necesito que sea un rango de fechas dinámico (es decir, rodando 6 meses para 4 métricas enumeradas). He experimentado con combinaciones de tabla de fechas a la tabla de acciones sin procesar y varias medidas DAX basadas en estas relaciones inactivas, pero en vano. Una vez más cualquier ayuda sería muy apreciada.

Datos crudos ficticios

ActionIDCUrrentStatusDateRaisedFecha CerradaDUeDate
1Cerrado16/03/202019/05/202013/08/2020
2Abierto24/01/2020 05/11/2020
3Abierto07/03/2020 31/12/2020
4Cerrado23/03/202031/05/202019/12/2020
5Abierto17/01/2020 02/07/2020
6Cerrado26/02/202026/04/202005/04/2020
7Abierto30/03/2020 08/12/2020
8Cerrado23/06/202029/07/202001/10/2020
9Abierto14/01/2020 20/12/2020
10Cerrado17/02/202013/06/202031/12/2020
11Cerrado18/06/202019/06/202003/08/2020
12Cerrado25/04/202014/05/202016/08/2020
13Cerrado13/01/202021/04/202009/12/2020
14Cerrado04/03/202028/03/202006/06/2020
15Cerrado18/02/202026/04/202021/02/2020
16Cerrado19/01/202025/05/202014/07/2020
17Abierto07/02/2020 03/11/2020
18Abierto07/05/2020 18/10/2020
19Cerrado28/06/202005/07/202019/09/2020
20Cerrado22/05/202001/06/202016/07/2020
21Cerrado23/04/202031/05/202009/07/2020
22Cerrado15/01/202011/05/202026/02/2020
23Abierto21/06/2020 01/09/2020
24Abierto06/02/2020 18/12/2020
25Cerrado17/04/202005/06/202011/11/2020
26Cerrado14/06/202020/06/202011/11/2020
27Cerrado08/06/202027/06/202012/12/2020
28Abierto05/03/2020 22/04/2020
29Cerrado25/04/202017/05/202005/06/2020
30Abierto29/04/2020 30/08/2020

Tabla de salida deseada para visualización

Enero-20Feb-20Mar-20Abr-2020 de mayoJunio-20
Elevado656526
Dentro del SLA6914161212
Atrasado022211
Vencen a 30 más002111

Hola @mindem,

Intento crear dos tablas calculadas con valores de fecha y categorías que se usan en la matriz y escribir una fórmula de medida para resumen de los resultados en función de la categoría de matriz y los rangos de datos de la tabla sin procesar. Puede probarlo si cumple con sus requisitos.

Mesas:

Category = 
DATATABLE (
    "Type", STRING,
    "Index", INTEGER,
    {
        { "Raised", 1 },
        { "Within SLA", 2 },
        { "Overdue", 3 },
        { "Overdue 30 plus", 4 }
    }
)

dateTable = 
VAR list =
    UNION (
        ALL ( 'Table'[DateClosed] ),
        ALL ( 'Table'[DateRaised] ),
        ALL ( 'Table'[DUeDate] )
    )
RETURN
    CALENDAR ( MINX ( list, [DateClosed] ), MAXX ( list, [DateClosed] ) )

Medida:

Measure = 
VAR currDate =
    MAX ( dateTable[Date] )
RETURN
    SWITCH (
        SELECTEDVALUE ( Category[Type] ),
        "Raised",
            COUNTROWS (
                FILTER (
                    'Table',
                    [DateRaised] IN VALUES ( dateTable[Date] )
                        && OR ( [DateClosed] > currDate, [DateClosed] = BLANK () )
                )
            ),
        "Within SLA",
            COUNTROWS (
                FILTER (
                    'Table',
                    [DateRaised] IN VALUES ( dateTable[Date] )
                        && [DateClosed] <= [DUeDate]
                )
            ),
        "Overdue",
            COUNTROWS (
                FILTER (
                    'Table',
                    [DateRaised] IN VALUES ( dateTable[Date] )
                        && OR ( [DateClosed] > [DUeDate], [DateClosed] = BLANK () )
                )
            ),
        "Overdue 30 plus",
            COUNTROWS (
                FILTER (
                    'Table',
                    [DateRaised] IN VALUES ( dateTable[Date] )
                        && OR ( [DateClosed] > [DUeDate], [DateClosed] = BLANK () )
                        && DATEDIFF (
                            [DUeDate],
                            MIN ( [DateClosed], MAXX ( ALL ( dateTable[Date] ), [Date] ) ),
                            DAY
                        ) >= 30
                )
            )
    ) + 0

22.png
saludos

Xiaoxin Sheng

Community Support Team _ Xiaoxin
If this post helps, please consider accept as solution to help other members find it more quickly.
Anonymous
Not applicable

Hola Xiaoxin, gracias por su trabajo en esto, pero esto no es exactamente lo que estoy buscando. Dentro del SLA, las medidas Vencidas y vencidas 30 más deben ser de hasta e incluyendo el mes de presentación de informes, lo que significa que deben ser acumulativas). Así que para febrero, por ejemplo, necesito saber cuántas acciones planteadas hasta el final de febrero fueron dentro del SLA al final de febrero. Esto incluye ahora las acciones cerradas que estaban abiertas al final de febrero (determinadas en función de la fecha de cierre de la acción).

Hola @mindem ,

Tal vez usted puede probar este, ahora la fórmula va a rodar en el rango de fechas (incluir registros anteriores) basado en la fecha actual:

Measure 2 = 
VAR currDate =
    MAX ( dateTable[Date] )
RETURN
    SWITCH (
        SELECTEDVALUE ( Category[Type] ),
        "Raised",
            COUNTROWS (
                FILTER (
                    'Table',
                    [DateRaised] IN VALUES ( dateTable[Date] )
                        && OR ( [DateClosed] > currDate, [DateClosed] = BLANK () )
                )
            ),
        "Within SLA",
            COUNTROWS (
                FILTER ( 'Table', [DateRaised] <= currDate && [DateClosed] <= [DUeDate] )
            ),
        "Overdue",
            COUNTROWS (
                FILTER (
                    'Table',
                    [DateRaised] <= currDate
                        && OR ( [DateClosed] > [DUeDate], [DateClosed] = BLANK () )
                )
            ),
        "Overdue 30 plus",
            COUNTROWS (
                FILTER (
                    'Table',
                    [DateRaised] <= currDate
                        && OR ( [DateClosed] > [DUeDate], [DateClosed] = BLANK () )
                        && DATEDIFF (
                            [DUeDate],
                            MIN ( [DateClosed], MAXX ( ALL ( dateTable[Date] ), [Date] ) ),
                            DAY
                        ) >= 30
                )
            )
    )

2.png

saludos

Xiaxoin Sheng

Community Support Team _ Xiaoxin
If this post helps, please consider accept as solution to help other members find it more quickly.
Anonymous
Not applicable

Hola @v-shex-msft

Me las arreglé para resolverlo con tu ayuda. La solución implicada en el uso de la medida DAX a continuación. La tabla de Power BI ahora coincide con la tabla de salida deseada que publiqué anteriormente. Gracias de nuevo por su apoyo.

Measure 3 = 
VAR currDate =
    MAX ( dateTable[Date] )
RETURN
    SWITCH (
        SELECTEDVALUE ( Category[Type] ),
        "Raised",
            COUNTROWS (
                FILTER (
                    'Table',
                    [DateRaised] IN VALUES ( dateTable[Date] )
                 )
                )
            ,
        "Within SLA",
            COUNTROWS (
                FILTER (
                    'Table',
                    [DateRaised] <= currDate
                        && OR([CUrrentStatus] = "Open",[CUrrentStatus]="Closed"&&[DateClosed]>CurrDate) && [DUeDate]>= currDate)
                ),
        "Overdue",
            COUNTROWS (
                FILTER (
                    'Table',
                    [DateRaised] <= currDate
                        && OR([CUrrentStatus] = "Open",[CUrrentStatus]="Closed"&&[DateClosed]>CurrDate) && [DUeDate]< currDate)
                ),
        "Overdue 30 plus",
            COUNTROWS (
                FILTER (
                    'Table',
                    [DateRaised] <= currDate
                        && OR([CUrrentStatus] = "Open",[CUrrentStatus]="Closed"&&[DateClosed]>CurrDate) && [DUeDate]< currDate && DATEDIFF('Table'[DUeDate],currDate,DAY)>=30)
                )
    )

v-shex-msft
Community Support
Community Support

Hola @mindem,

Por favor, comparta algunos datos ficticios y los resultados esperados, entonces podemos probar la fórmula de codificación en él.

Cómo obtener respuestas a su pregunta rápidamente
saludos

Xiaoxin Sheng

Community Support Team _ Xiaoxin
If this post helps, please consider accept as solution to help other members find it more quickly.
amitchandak
Super User
Super User

@mindem , En este Necesita una tabla de fechas unida con todas las fechas y Una unión se activará y otras estarán inactivas. Puede activar la unión mediante userelation.

Consulte https://community.powerbi.com/t5/Community-Blog/HR-Analytics-Active-Employee-Hire-and-Termination-tr...

Lo mejor para mostrar 6 meses es la segmentación de fecha relativa :https://docs.microsoft.com/en-us/power-bi/visuals/desktop-slicer-filter-date-range

si no, entonces siga este approch :https://www.youtube.com/watch?v=duMSovyosXE

Para obtener lo mejor de la función de inteligencia del tiempo. Asegúrese de que tiene un calendario de fechas y que se ha marcado como la fecha en la vista de modelo. Además, únete a ella con la columna de fecha de tus hechos. recomienda:
https://radacad.com/creating-calendar-table-in-power-bi-using-dax-functions


Apreciamos tus Felicitaciones.

Join us as experts from around the world come together to shape the future of data and AI!
At the Microsoft Analytics Community Conference, global leaders and influential voices are stepping up to share their knowledge and help you master the latest in Microsoft Fabric, Copilot, and Purview.
️ November 12th-14th, 2024
 Online Event
Register Here
VijayP
Super User
Super User

@mindem

Déjame saber si este video te ayuda a https://www.youtube.com/watch?v=3bV9BfB3_Oc&t=1s, por favor comparte tus kudoes

Vijay Perepa




Did I answer your question? Mark my post as a solution! Appreciate your Kudos!!
MY Blog || My YouTube Channel || Connect with me on Linkedin || My Latest Data Story - Ageing Analysis

Proud to be a Super User!


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!

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