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
PBI5851
Helper V
Helper V

Cálculo del valor anterior por año, mes y día

Hola

Tengo una tabla de matriz que tengo que mostrar el Año , Mes y Fecha en filas y los recuentos de cuentas únicas por día como columna. A esto, necesito agregar una nueva columna para indicar el arriba /abajo del "calendario" anterior. Es decir, durante un día, necesito mostrar el swing arriba/abajo del día anterior. Para el mes, el recuento único en ese mes con el swing arriba/abajo del mes anterior y similar para el año.

Soy capaz de obtener los valores según por debajo de DAX para los días, pero los meses y años son incorrectos, ya que parece estar sumando los días, en lugar de la cuenta única para ese mes. Y posteriormente tiene que hacer esto cuando los datos aumentan por año.

AccessDateAcctID
9/1/2020A1001
9/1/2020B1001
9/1/2020C1001
9/1/2020D1001
9/1/2020E1001
9/2/2020A1001
9/2/2020B1001
9/2/2020C1001
9/2/2020D1001
9/2/2020E1001
9/2/2020F1001
9/3/2020B1001
9/4/2020C1001
9/4/2020D1001
9/5/2020C1001
9/5/2020D1001
9/5/2020E1001
9/5/2020F1001
9/5/2020G1001
8/1/2020A1001
8/1/2020B1001
8/1/2020C1001
8/1/2020D1001
8/1/2020E1001
8/2/2020C1001
8/2/2020D1001
8/2/2020E1001
8/4/2020C1001
8/3/2020D1001
8/3/2020E1001
8/4/2020F1001
8/4/2020G1001
8/5/2020D1001
8/5/2020E1001
8/5/2020F1001
7/1/2020A1001
7/1/2020B1001
7/1/2020C1001
7/1/2020D1001
7/1/2020E1001
7/2/2020B1001
7/2/2020C1001
7/2/2020D1001
7/3/2020A1001
7/3/2020B1001
7/3/2020C1001
7/3/2020D1001
7/3/2020E1001

La salida prevista para mes y día es ..

AccessDateCountof AcctIDSwing de conde anterior
Septiembre70
9/5/202053
9/4/202021
9/3/20201-5
9/2/202061
9/1/202052
Agosto72
8/5/202030
8/4/202031
8/3/20202-1
8/2/20203-2
8/1/202052
Jul50
7/5/202032
7/4/202050
7/3/202052
7/2/20203-2
7/1/202050

Así que julio tenía 5 cuentas únicas y agosto tenía 7 únicos por lo que el repunte de 2 para agosto. Los días individuales dentro de julio son correctos, ya que son únicos para ese día y así sucesivamente.

* Asumo sólo 5 días en un mes para este ejemplo. 8/1/20 está mirando el 7/5/20, y el 9/1/20 está mirando el 8/5. En el informe completo, 9/1 estará mirando 8/31, y 8/1 estará mirando 7/31 etc para el valor anterior para la oscilación arriba /abajo.

Los DAX que estoy usando son.

Recuento de AcctID: CALCULATE(DISTINCTCOUNT(Account[AcctID]),USERELATIONSHIP(Date[Date],Account[AccessDate]))

AcctID Yesterday ? CALCULATE(DISTINCTCOUNT(Account[AcctID]),DATEADD(Date[Date],-1,DAY),USERELATIONSHIP(Date[Date],Account[AccessdateDate]))

Oscilación del conteo anterior [Recuento de AcctID]-[Sedid ayer]

Por favor, hágamelo saber si mi identificación de solicitud posible dentro de la misma matriz? O tengo que separarlos en un año y mes y imágenes diarias.

1 ACCEPTED SOLUTION
Icey
Community Support
Community Support

Hola @PBI5851 ,

¿Qué te parece esto:

Previous Count swing =
VAR ThisMonth =
    MONTH ( MAX ( 'Account'[AccessDate] ) )
VAR LastDayofPreviousMonth =
    CALCULATE (
        MAX ( 'Account'[AccessDate] ),
        FILTER (
            ALLSELECTED ( 'Account' ),
            MONTH ( 'Account'[AccessDate] ) = ThisMonth - 1
        )
    )
VAR ValueofLastDayofPreviousMonth =
    CALCULATE (
        [AcctID Count],
        FILTER (
            ALLSELECTED ( 'Account' ),
            'Account'[AccessDate] = LastDayofPreviousMonth
        )
    ) + 0
VAR PreviousCount =
    IF (
        HASONEVALUE ( Account[AccessDate] ),
        CALCULATE (
            [AcctID Count],
            FILTER (
                ALL ( 'Account' ),
                'Account'[AccessDate]
                    = MAX ( 'Account'[AccessDate] ) - 1
            )
        ),
        IF (
            ThisMonth = MONTH ( MINX ( ALLSELECTED ( Account ), Account[AccessDate] ) ),
            0,
            CALCULATE (
                [AcctID Count],
                FILTER (
                    ALLSELECTED ( 'Account' ),
                    MONTH ( 'Account'[AccessDate] ) = ThisMonth - 1
                )
            )
        )
    )
RETURN
    [AcctID Count]
        - IF (
            DAY ( MAX ( Account[AccessDate] ) ) = 1,
            ValueofLastDayofPreviousMonth,
            PreviousCount
        )

account.PNG

Saludos

Icey

Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

View solution in original post

4 REPLIES 4
Icey
Community Support
Community Support

Hola @PBI5851 ,

¿Qué te parece esto:

Previous Count swing =
VAR ThisMonth =
    MONTH ( MAX ( 'Account'[AccessDate] ) )
VAR LastDayofPreviousMonth =
    CALCULATE (
        MAX ( 'Account'[AccessDate] ),
        FILTER (
            ALLSELECTED ( 'Account' ),
            MONTH ( 'Account'[AccessDate] ) = ThisMonth - 1
        )
    )
VAR ValueofLastDayofPreviousMonth =
    CALCULATE (
        [AcctID Count],
        FILTER (
            ALLSELECTED ( 'Account' ),
            'Account'[AccessDate] = LastDayofPreviousMonth
        )
    ) + 0
VAR PreviousCount =
    IF (
        HASONEVALUE ( Account[AccessDate] ),
        CALCULATE (
            [AcctID Count],
            FILTER (
                ALL ( 'Account' ),
                'Account'[AccessDate]
                    = MAX ( 'Account'[AccessDate] ) - 1
            )
        ),
        IF (
            ThisMonth = MONTH ( MINX ( ALLSELECTED ( Account ), Account[AccessDate] ) ),
            0,
            CALCULATE (
                [AcctID Count],
                FILTER (
                    ALLSELECTED ( 'Account' ),
                    MONTH ( 'Account'[AccessDate] ) = ThisMonth - 1
                )
            )
        )
    )
RETURN
    [AcctID Count]
        - IF (
            DAY ( MAX ( Account[AccessDate] ) ) = 1,
            ValueofLastDayofPreviousMonth,
            PreviousCount
        )

account.PNG

Saludos

Icey

Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

amitchandak
Super User
Super User

@PBI5851 , Puede utilizar la tabla de fechas y la inteligencia de tiempo

Ejemplos

Día detrás de Ventas: CALCULATE(SUM(Sales[Sales Amount]),dateadd('Date'[Date],-1,Day))

Este día: CALCULATE(sum('order'[Qty]), FILTER(ALL('Date'),'Date'[Date]-max('Date'[Date])))
Last Day ? CALCULATE(sum('order'[Qty]), FILTER(ALL('Date'),'Date'[Date]-max('Date'[Date])-1))
Last Day : CALCULATE(sum('order'[Qty]), previousday('Date'[Date]))

Mes

Ventas MTD: CALCULATE(SUM(Sales[Sales Amount]),DATESMTD('Date'[Date]))
Last MTD Sales - CALCULATE(SUM(Sales[Sales Amount]),DATESMTD(dateadd('Date'[Date],-1,MONTH)))
Ventas del último mes: CALCULATE(SUM(Sales[Sales Amount]),previousmonth('Date'[Date]))
Last MTD (completar) Ventas : CALCULATE(SUM(Sales[Sales Amount]),DATESMTD(ENDOFMONTH(dateadd('Date'[Date],-1,MONTH))))
valor del mes anterior: CALCULATE(sum(''Table''[valor total de horas]),previousmonth('Date'[Date]))

diff - [Ventas MTD]-[las últimas ventas MTD]
diff % á divide([MTD Sales]-[last MTD Sales],[last MTD Sales])

año

Ventas YTD á CALCULATE(SUM(Sales[Sales Amount]),DATESYTD('Date'[Date],"12/31"))
Last YTD Sales á CALCULATE(SUM(Sales[Sales Amount]),DATESYTD(dateadd('Date'[Date],-1,Year),"12/31"))
Este año Ventas: CALCULATE(SUM(Sales[Sales Amount]),DATESYTD(ENDOFYEAR('Date'[Date]),"12/31"))
Ventas del año pasado: CALCULATE(SUM(Sales[Sales Amount]),DATESYTD(ENDOFYEAR(dateadd('Date'[Date],-1,Year)),"12/31"))
Last to last YTD Sales - CALCULATE(SUM(Sales[Sales Amount]),DATESYTD(dateadd('Date'[Date],-2,Year),"12/31"))
Año detrás de Ventas: CALCULATE(SUM(Sales[Sales Amount]),dateadd('Date'[Date],-1,Year))
Sólo año vs año, no un nivel por debajo

Este año: CALCULATE(sum('order'[Qty]),filter(ALL('Date'),'Date'[Year]-max('Date'[Year])))
Last Year ? CALCULATE(sum('order'[Qty]),filter(ALL('Date'),'Date'[Year]-max('Date'[Year])-1))

Power BI — Año tras año
https://medium.com/@amitchandak.1978/power-bi-ytd-questions-time-intelligence-1-5-e3174b39f38a
Power BI — Lun th On Month
https://medium.com/@amitchandak.1978/power-bi-mtd-questions-time-intelligence-3-5-64b0b4a4090e
Power BI — Day Intelligence
https://medium.com/@amitchandak.1978/power-bi-day-intelligence-questions-time-intelligence-5-5c3243d...

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.

@amitchandak . Gracias. Usé tu sugerencia el día detrás de las ventas de otro boleto. Si lo leo correctamente, sus soluciones dan el valor correcto si se mira a sólo año o mes. Pero, ¿se puede hacer todo eso en un solo objeto visual.

@PBI5851 , Están planeando cambiar estas medidas.

Luego hemos creado una segmentación de medida.

He hecho una vez combinado se filtra para mes y año - https://community.powerbi.com/t5/Community-Blog/HR-Analytics-Active-Employee-Hire-and-Termination-tr...

Empleado del último período, cambié la cláusula de filtro, lo mismo para un año, mes y día

Otra forma es medir la segmentación: https://radacad.com/change-the-column-or-measure-value-in-a-power-bi-visual-by-selection-of-the-slic...

Dudo que haya una fórmula que pueda hacer. A menos que un año de retraso en los datos, esto funcionará con cada agrupación, día, mes y año

Año detrás de Ventas: CALCULATE(SUM(Sales[Sales Amount]),dateadd('Date'[Date],-1,Year))

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.