La función "MEDIANA()" de Excel sí se refiere a la mediana estadística, que parece que sí es lo que estás buscando. Lo que pasa es que la mediana es un cálculo complejo que depende de si el número de valores en la serie es par o impar.
Si sólo vas a trabajar con series de tres valores, no se hasta qué punto es aconsejable ordenarlos para seguir el algoritmo de la mediana... casi es más gasto de procesador que si los comparas a palo seco. Esto que te propongo es una estrategia de programación que se llama "loop unrolling" (algo así como "
desenrrollar bucles"), que sirve para optimizar puntos críticos de velocidad, porque las estructuras de bucle son más pesadas que las comparaciones.
Hasta donde yo se, VB no tiene funciones estadísticas de forma nativa, así que este código que te sugiero te sirve única y exclusivamente para tres valores. Para cuatro se complica, pero puede hacerse. Para cinco probablemente el gasto empiece a dejar de ser comparable con el de los bucles. Y si el número de valores puede variar, esta función no te sirve en absoluto:
Código:
Public Function ValorMedio(ByVal a As Long, ByVal b As Long, ByVal c As Long) As Long
If a > b Then
If a > c Then
If b > c Then
ValorMedio = b
Else
ValorMedio = c
End If
Else
ValorMedio = a
End If
Else
If a > c Then
ValorMedio = a
Else
If b > c Then
ValorMedio = c
Else
ValorMedio = b
End If
End If
End If
End Function
Eso sí, que no se te ocurra presentar algo así en un trabajo académico... por lo general a los profesores no les gustan estas cosas aunque sí se hagan al optimizar los proyectos