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

Obtenga el último estado de registro al final del día para cada día

Hola quiero crear una nueva tabla en DAX a partir de una en la que tengo el estado de los registros y necesito crear nuevos registros para cada día en periodo, con el estado al final del día, se ve algo así

Tabla1 Cuadro2 resultado
Fecha IdtranidopCreated_atestado fechaidopestado
01/01/2022 1101/01/2022 11:00Sentada 01/01/20221Sentada
02/01/2022 2202/01/2022 13:25Sentada 02/01/20222EstadoB
03/01/2022 3102/01/2022 16:25EstadoB 02/01/20221EstadoB
04/01/2022 4302/01/2022 17:25Sentada 02/01/20223Sentada
05/01/2022 5103/01/2022 11:25EstadoC 03/01/20221Declaró
06/01/2022 6103/01/2022 13:25Declaró 03/01/20222EstadoB
07/01/2022 7203/01/2022 13:30EstadoB 03/01/20223Sentada
08/01/2022 8403/01/2022 13:40Sentada 03/01/20224Sentada
09/01/2022 9205/01/2022 13:25EstadoC 04/01/20221Declaró
10/01/2022 10205/01/2022 16:25EstadoB 04/01/20222EstadoB
11/01/2022 11306/01/2022 13:25EstadoB 04/01/20223Sentada
12/01/2022 12408/01/2022 13:25Declaró 04/01/20224Sentada
13/01/2022 13309/01/2022 13:25EstadoB 05/01/20221Declaró
05/01/20222EstadoB
05/01/20223Sentada
05/01/20224Sentada
.....

Gracias

2 ACCEPTED SOLUTIONS
Syndicate_Admin
Administrator
Administrator

@cristianj,

Pruebe esta tabla calculada:

LastStateOfRecord = 
VAR vBaseTable =
    CROSSJOIN ( VALUES ( Table1[Date] ), VALUES ( Table2[idop] ) )
VAR vTableWithState =
    ADDCOLUMNS (
        vBaseTable,
        "Latest State",
            VAR vDate = Table1[Date]
            VAR vIdop = Table2[idop]
            VAR vRowsForID =
                FILTER (
                    Table2,
                    vIdop = Table2[idop]
                        && INT ( Table2[Created_at] ) <= Table1[Date]
                )
            VAR vMaxDate =
                MAXX ( vRowsForID, Table2[Created_at] )
            VAR vLatestRow =
                FILTER ( vRowsForID, Table2[Created_at] = vMaxDate )
            VAR vLatestState =
                MAXX ( vLatestRow, Table2[state] )
            RETURN
                vLatestState
    )
VAR vResult =
    FILTER ( vTableWithState, [Latest State] <> BLANK () )
RETURN
    vResult

DataInsights_0-1651162496106.png

View solution in original post

@cristianj,

Debe adjuntar la tabla de fechas entre comillas simples en el DAX. O bien, puede nombrar su tabla de fechas DimDate, Dates, Calendar, etc.

View solution in original post

4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

gracias, me has guardado, si es posible, quiero preguntar una cosa más, ¿hay alguna manera, de usar un valor filtrado como fecha en una segmentación de datos, y dependiendo del valor seleccionado, usar esa fecha, elegida por el usuario en un dax

<<

PostatLaVanzare2 =
Dónde datadeales=SELECTEDVALUE('DimDate'[Fecha].[Fecha])
devolución
CALCULABLE(
resumir(
Filtro(order_state_updates,order_state_updates[created_at]<fecha(2022,4,28)+(5/24) ),
order_state_updates[order_id],
"Último Estado",LASTNONBLANKVALUE(order_state_updates[id],Máximo(order_state_updates[order_state]))
)

>>

is there a way in which i coul replace fecha(2022,4,28)+(5/24) ) con un valor seleccionable?

muchas gracias de nuevo mucho

Syndicate_Admin
Administrator
Administrator

@cristianj,

Pruebe esta tabla calculada:

LastStateOfRecord = 
VAR vBaseTable =
    CROSSJOIN ( VALUES ( Table1[Date] ), VALUES ( Table2[idop] ) )
VAR vTableWithState =
    ADDCOLUMNS (
        vBaseTable,
        "Latest State",
            VAR vDate = Table1[Date]
            VAR vIdop = Table2[idop]
            VAR vRowsForID =
                FILTER (
                    Table2,
                    vIdop = Table2[idop]
                        && INT ( Table2[Created_at] ) <= Table1[Date]
                )
            VAR vMaxDate =
                MAXX ( vRowsForID, Table2[Created_at] )
            VAR vLatestRow =
                FILTER ( vRowsForID, Table2[Created_at] = vMaxDate )
            VAR vLatestState =
                MAXX ( vLatestRow, Table2[state] )
            RETURN
                vLatestState
    )
VAR vResult =
    FILTER ( vTableWithState, [Latest State] <> BLANK () )
RETURN
    vResult

DataInsights_0-1651162496106.png

Lo intento, pero me da un error

cristianj_1-1651253494995.png

@cristianj,

Debe adjuntar la tabla de fechas entre comillas simples en el DAX. O bien, puede nombrar su tabla de fechas DimDate, Dates, Calendar, etc.

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.