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