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

Data Days is here! Join us now for 60+ days of learning, challenges, and connection. Learn more

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
Fabric Data Days is here Carousel

Fabric Data Days 2026

Don't miss out on Data Days, June 15 through August 7. Learn Fabric, Power BI, SQL, AI and more.

May Power BI Update Carousel

Power BI Monthly Update - May 2026

Check out the May 2026 Power BI update to learn about new features.

Power BI DataViz World Championships carousel

Power BI DataViz World Championships - June 2026

A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.

Top Kudoed Authors