Ayuda Macro Excel, Buscar valores y promediar

Hola! De antemano muchísimas gracias por la ayuda... Entrando al rollo.

Tengo una base de datos, que la da una sensor de medición acá en la planta donde trabajo, los valores que bota el sensor son cada minutos, entonces tengo algo así:

18/11 07:01   0.0691

Donde la primera columna es la fecha + la hora y la segunda el valor de la medición... Son exactamente 1440 datos diarios (1 dato por minuto). Por un tema de control operacional el valor no debe exceder "1" en 15 minutos. La macro que necesito debe empezar comparando valor por valor con "1", si fuera mayor el valor deberá promediar los 15 minutos siguientes y decirme si el promedio es mayor o no y continuar, si fuera mayor deberá almacenar la hora y el valor promedio en otra hoja. Si el valor promedio fuera menor de "1" entonces deberá seguir comparándose desde el siguiente valor (luego de promediar 15 minutos, deberá seguir comparándose desde el minutos 16). Se que esta medio confuso... Si necestian les puedo enviar la base de datos y nuevamente gracias por la ayuda!!!!

1 Respuesta

Respuesta
1

Más o menos comprendí lo que necesitas, pero ayudaría mucho si me envías un archivo considerando todos los casos. También me envías en la "otra hoja" el resultado que quieres y en dónde lo quieres.

Te anexo la macro para buscar valores y promediar. La macro revisa desde la columna "POZA SALMUERA" hasta la última columna.

Sub Promediar()
'Por.Dante Amor
    Application.ScreenUpdating = False
    '
    Set h1 = Sheets("DATOS MINUTOS")
    Set h2 = Sheets("CELDAS")
    '
    u = h2.Range("A" & Rows.Count).End(xlUp).Row
    If u < 2 Then u = 2
    h2.Range("A2:P" & u).ClearContents
    For j = 4 To h1.Cells(2, Columns.Count).End(xlUp).Column
        For i = 3 To h1.Cells(Rows.Count, j).End(xlUp).Row
            If h1.Cells(i, j) > 1 Then
                wprom = Application.Sum(h1.Range(h1.Cells(i, j), h1.Cells(i + 14, j))) / 15
                If wprom > 1 Then
                    u = h2.Range("A" & Rows.Count).End(xlUp).Row + 1
                    e = h2.Application.Max(Columns("A")) + 1
                    h2.Cells(u, "A") = e
                    h2.Cells(u, "B") = h1.Cells(i, "C")
                    h2.Cells(u, j - 1) = wprom
                    i = i + 14
                End If
            End If
        Next
    Next
    MsgBox "Proceso de buscar valores y Promediar", vbInformation, "TERMINADO"
End Sub

Saludos.Dante Amor

No olvides valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas