Macro para maximos y minimos condicionada

Publicado: 3 febrero, 2014 en red drenaje

Dado que en excel no existe una funcion condicionada para los maximos y minimos  ( asi como el sumar.si o el contar.si) aqui les dejo la programacion de la macro para obtener maximos o minimos de una serie de datos condicionada a algun valor.  muy util para el calculo en el alcantrillado sanitario, en la determinacion de la elevacion de salida de un pozo de visita al cual le llegan varios ramales a diferentes alturas.

Option Explicit

Function maxminsi(criterios As Range, valores As Range, referencia As String, M As Boolean)
Dim ciclomax As Long
Dim vmax As Double
Dim vmin As Double
Dim celda As Variant
Dim v As Double
Dim ciclo As Long
ciclomax = 0

vmax = Application.WorksheetFunction.Max(valores)
vmin = Application.WorksheetFunction.Min(valores)

For Each celda In criterios
ciclomax = ciclomax + 1
Next celda

If M = True Then
v = vmin
For ciclo = 1 To ciclomax

If criterios(ciclo) = referencia Then
If valores(ciclo) > v Then v = valores(ciclo)
End If
Next ciclo
End If

If M = False Then
v = vmax
For ciclo = 1 To ciclomax

If criterios(ciclo) = referencia Then
If valores(ciclo) < v Then v = valores(ciclo)
End If
Next ciclo
End If

maxminsi = v

End Function

 

Los argumentos para la funcion son:

=maxminsi(rango1,rango2,criterio,falso)

rango1     Se indicara el rango que contenga los datos a validar, es decir los numeros de pozos de visita de llegada.

rango2    Se indicara el rango que contenga los datos de elevaciones a analizar, es decir, las elevaciones de las plantillas.

criterio   Se indicara el criterio, es decir, el numero de pozo de visita para el arranque de la plantilla.

falso       Se indicara falso (o el valor cero) para que nos de el valor de elevacion mas bajo que cumpla con el criterio dado, en caso de requerir el valor maximo se pondra verdadero o el valor 1

Deja un comentario