Hacer una macros que calcule el valor máximo diario

Tengo una excel con datos diarios por hora, pero solo me interesa el valor máximo por día, es decir calcula el máximo de cada día y lo coloca sucesivamente por día en la columna de al lado.

01/01/2007 00:00    26.11            01/01/2007    32.77
01/01/2007 01:00    26.11            01/02/2007    
01/01/2007 02:00    26.11            01/03/2007    
01/01/2007 03:00    25.55            01/04/2007    
01/01/2007 04:00    25.55            01/05/2007    
01/01/2007 05:00    25            01/06/2007    
01/01/2007 06:00    25            01/07/2007    
01/01/2007 07:00    25.55            01/08/2007    
01/01/2007 08:00    27.22            01/09/2007    
01/01/2007 09:00    28.88            01/10/2007    
01/01/2007 10:00    30.55            01/11/2007    
01/01/2007 11:00    32.22            01/12/2007    
01/01/2007 12:00    32.77            01/13/2007    
01/01/2007 13:00    32.22            01/14/2007    
01/01/2007 14:00    32.22            01/15/2007    
01/01/2007 15:00    32.77                
01/01/2007 16:00    32.77                
01/01/2007 17:00    31.66                
01/01/2007 18:00    30.55                
01/01/2007 19:00    29.44                
01/01/2007 20:00    27.77                
01/01/2007 21:00    27.22                
01/01/2007 22:00    26.66                
01/01/2007 23:00    26.11                

1 respuesta

Respuesta
2

Este es el resultado de la macro, lo mismo funciona para 1 que para 1 millón de registrosy esta es la macro

Sub buscar_maximos()
Set datos = Range("a1").CurrentRegion
With datos
    f = .Rows.Count: c = .Columns.Count
    .Sort _
    key1:=Range(.Columns(1).Address), order1:=xlAscending, _
    key2:=Range(.Columns(3).Address), order2:=xlDescending
    Set tabla = .Columns(c + 3).Resize(f, c)
    With tabla
        .Value = datos.Value
        .RemoveDuplicates Columns:=Array(1)
        .Columns(2).EntireColumn.Delete
    End With
     .Sort _
    key1:=Range(.Columns(1).Address), order1:=xlAscending, _
    key2:=Range(.Columns(2).Address), order2:=xlAscending
End With
swt datos=nothing:  set tabla=nothing
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas