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

Get certified in Microsoft Fabric—for free! For a limited time, the Microsoft Fabric Community team will be offering free DP-600 exam vouchers. Prepare now

Reply
Syndicate_Admin
Administrator
Administrator

Suma el valor máximo antes de 0

Hola Comunidad PBI,

Espero que todos lo estén haciendo bien.

Quiero ordenar mis datos en función de la columna DateTime y realizar la suma del valor máximo antes de cero. En realidad, quiero encontrar que la producción total y el contador de producción se incrementan y el recuento de la producción anterior se agrega en el nuevo recuento de producción. Cuando el cambio cambia o la máquina se detiene por cualquier motivo, el contador se restablece a 0. Quiero encontrar una producción sabia por turnos. A continuación se muestran los datos de ejemplo para referencia y desea sumar los valores en negrita resaltados en rojo según el escenario.

HoraTurnoProducción
7:00:00Turno A0
7:02:00Turno A5
7:04:00Turno A10
7:06:00Turno A15
7:08:00Turno A0
7:10:00Turno A5
07:12:00Turno A10
7:14:00Turno A15
7:16:00Turno A20
07:18:00Turno A25
7:20:00Turno A30
07:22:00Mayús B0
7:24:00Mayús B5
7:26:00Mayús B10
7:28:00Mayús B15
7:30:00Mayús B0
07:32:00Mayús B5
7:34:00Mayús B10
7:36:00Mayús B15
07:38:00Mayús B20
7:40:00Mayús B0

El resultado que quiero es,

Mayús A = 15 + 30 = 45

Mayús B = 15 + 20 = 35

Esperando alguna respuesta postiva.

Saludos

Ibad.

@amitchandak @DataInsights @v-zhangti @ribisht17

7 REPLIES 7
Syndicate_Admin
Administrator
Administrator

Hola

Por favor, compruebe la siguiente imagena y el archivo pbix adjunto.

Picture1.png

desired outcome measure: =
VAR newtable =
    ADDCOLUMNS ( Data, "@index", IF ( Data[Production] = 0, 1, 0 ) )
VAR indexcumulatetable =
    ADDCOLUMNS (
        newtable,
        "@indexcumulate", SUMX ( FILTER ( newtable, Data[Time] <= EARLIER ( Data[Time] ) ), [@index] )
    )
VAR groupbyindexcumulatemax =
    SUMMARIZE (
        GROUPBY (
            indexcumulatetable,
            Shift[Shift],
            [@indexcumulate],
            "@maxtime", MAXX ( CURRENTGROUP (), Data[Time] )
        ),
        [@maxtime]
    )
RETURN
    SUMX (
        FILTER ( data, Data[Time] IN groupbyindexcumulatemax ),
        Data[Production]
    )

Hola @Jihwan_Kim muchas gracias por su apoyo y rápida respuesta. Está funcionando correctamente de acuerdo con la condición dada, pero tengo otro escenario que si el siguiente valor es menor que el valor actual (no específicamente 0) que considere el valor actual como el máximo del contador para calcular la producción.

A continuación se muestran los datos de muestra para su comprensión,

FechaHoraTurnoProducción
8/4/20227:04:00Turno A10
8/4/20227:06:00Turno A15
8/4/20227:08:00Turno A0
8/4/20227:10:00Turno A5
8/4/202207:12:00Turno A10
8/4/20227:14:00Turno A15
8/4/20227:16:00Turno A20
8/4/202207:18:00Turno A25
8/4/20227:20:00Turno A30
8/4/202207:22:00Mayús B5
8/4/20227:24:00Mayús B10
8/4/20227:26:00Mayús B15
8/4/20227:28:00Mayús B20
8/4/20227:30:00Mayús B4
8/4/202207:32:00Mayús B5
8/4/20227:34:00Mayús B10
8/4/20227:36:00Mayús B15
8/4/202207:38:00Mayús B20
8/4/20227:40:00Mayús B0
9/4/20227:00:00Turno A2
9/4/20227:02:00Turno A4
9/4/20227:04:00Turno A6
9/4/20227:06:00Turno A2
9/4/20227:08:00Turno A4
9/4/20227:10:00Turno A1
9/4/202207:12:00Turno A4
9/4/20227:14:00Turno A6
9/4/20227:16:00Turno A8
9/4/202207:18:00Turno A10
9/4/20227:20:00Turno A12
9/4/202207:22:00Mayús B0
9/4/20227:24:00Mayús B2
9/4/20227:26:00Mayús B4
9/4/20227:28:00Mayús B6
9/4/20227:30:00Mayús B0
9/4/202207:32:00Mayús B4
9/4/20227:34:00Mayús B6
9/4/20227:36:00Mayús B8
9/4/202207:38:00Mayús B10
9/4/20227:40:00Mayús B2

El resultado deseado es:

8/4/2022Turno A45
8/4/2022Mayús B40
9/4/2022Turno A22
9/4/2022Mayús B16

Esperamos su respuesta.

Hola

Compruebe el archivo pbix adjunto.

Con respecto al turno 9/4/2022B, no estoy seguro, pero agregué el último número de producción (2) y el número muestra 18.

desired outcome measure V2: =
VAR newtable =
    ADDCOLUMNS (
        ADDCOLUMNS (
            Data_Second,
            "@previousvalue",
                VAR _currentdate = Data_Second[Date]
                VAR _currenttime = Data_Second[Time]
                VAR _currentshift = Data_Second[Shift]
                VAR _previoustime =
                    MAXX (
                        FILTER (
                            Data_Second,
                            Data_Second[Shift] = _currentshift
                                && Data_Second[Date] = _currentdate
                                && Data_Second[Time] < _currenttime
                        ),
                        Data_Second[Time]
                    )
                VAR _previousvalue =
                    MAXX (
                        FILTER (
                            Data_Second,
                            Data_Second[Shift] = _currentshift
                                && Data_Second[Date] = _currentdate
                                && Data_Second[Time] = _previoustime
                        ),
                        Data_Second[Production]
                    )
                RETURN
                    _previousvalue
        ),
        "@index",
            IF (
                [@previousvalue]
                    == BLANK ()
                        || Data_Second[Production] < [@previousvalue],
                1,
                0
            )
    )
VAR indexcumulatetable =
    ADDCOLUMNS (
        newtable,
        "@indexcumulate",
            SUMX (
                FILTER ( newtable, Data_Second[Time] <= EARLIER ( Data_Second[Time] ) ),
                [@index]
            )
    )
VAR groupbyindexcumulatemax =
    SUMMARIZE (
        GROUPBY (
            indexcumulatetable,
            Shift[Shift],
            [@indexcumulate],
            "@maxtime", MAXX ( CURRENTGROUP (), Data_Second[Time] )
        ),
        [@maxtime]
    )
RETURN
    IF (
        HASONEVALUE ( Shift[Shift] ),
        SUMX (
            FILTER ( Data_Second, Data_Second[Time] IN groupbyindexcumulatemax ),
            Data_Second[Production]
        )
    )

@Jihwan_Kim Muchas gracias, está funcionando perfectamente, lo estoy aceptando como una solución.

He publicado un problema más con respecto al mismo tablero, estoy pegando el enlace a continuación, ¿puede verificarlo y analizarlo cómo podemos hacerlo?

https://community.powerbi.com/t5/Desktop/Setting-Shifts-for-analysis-of-machine-data/m-p/2454713#M87...

Esperando una respuesta positiva.

Saludos

Ibad

@Jihwan_Kim gracias por su rápida respuesta.

Lamento haber olvidado agregar la columna de fecha en la fecha de la muestra.

A continuación se muestran los datos actualizados,

FechaHoraTurnoProducción
8/4/20227:00:00Turno A0
8/4/20227:02:00Turno A5
8/4/20227:04:00Turno A10
8/4/20227:06:00Turno A15
8/4/20227:08:00Turno A0
8/4/20227:10:00Turno A5
8/4/202207:12:00Turno A10
8/4/20227:14:00Turno A15
8/4/20227:16:00Turno A20
8/4/202207:18:00Turno A25
8/4/20227:20:00Turno A30
8/4/202207:22:00Mayús B0
8/4/20227:24:00Mayús B5
8/4/20227:26:00Mayús B10
8/4/20227:28:00Mayús B15
8/4/20227:30:00Mayús B0
8/4/202207:32:00Mayús B5
8/4/20227:34:00Mayús B10
8/4/20227:36:00Mayús B15
8/4/202207:38:00Mayús B20
8/4/20227:40:00Mayús B0
9/4/20227:00:00Turno A0
9/4/20227:02:00Turno A2
9/4/20227:04:00Turno A4
9/4/20227:06:00Turno A6
9/4/20227:08:00Turno A0
9/4/20227:10:00Turno A2
9/4/202207:12:00Turno A4
9/4/20227:14:00Turno A6
9/4/20227:16:00Turno A8
9/4/202207:18:00Turno A10
9/4/20227:20:00Turno A12
9/4/202207:22:00Mayús B0
9/4/20227:24:00Mayús B2
9/4/20227:26:00Mayús B4
9/4/20227:28:00Mayús B6
9/4/20227:30:00Mayús B0
9/4/202207:32:00Mayús B4
9/4/20227:34:00Mayús B6
9/4/20227:36:00Mayús B8
9/4/202207:38:00Mayús B10
9/4/20227:40:00Mayús B0

El resultado deseado es:

04/08/2022 -- Turno A -- 45

04/08/2022 -- Turno B -- 35

04/09/2022 -- Turno A -- 18

04/09/2022 -- Turno A -- 16

Syndicate_Admin
Administrator
Administrator

@Ibad_Khan , crear una nueva columna


Columna = var _max = Minx(filter(Data, [Shift] = EARLIER([Shift]) && [Time] > EARLIER([Time])), [Time])
Var _val = Minx(filter(Data, [Shift] = EARLIER([Shift]) && [Time] =_max ), [Production])
return if(_val =0 , [Producción], BLANK())

Puede usar esto en medida ahora

@amitchandak no está calculando correctamente.

Helpful resources

Announcements
OCT PBI Update Carousel

Power BI Monthly Update - October 2024

Check out the October 2024 Power BI update to learn about new features.

September Hackathon Carousel

Microsoft Fabric & AI Learning Hackathon

Learn from experts, get hands-on experience, and win awesome prizes.

October NL Carousel

Fabric Community Update - October 2024

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

Top Solution Authors