Hace algunos años desarrollamos una función definida por el usuario que Excel no incluye entre su catálogo de funciones. Era la función MAXIF, que buscaba el máximo entre un rango considerando únicamente los valores que cumplen unas condiciones. Vamos a desarrollar su función gemela, MINIF.
La función MINIF
Como en el caso de la función gemela, el funcionamiento es similar al de CONTAR.SI o SUMAR.SI. Pongamos el siguiente ejemplo:
Sintaxis
=MINIF(columna de valores ; columna del criterio ; criterio) =MINIF(Uds;Editorial;"Editorial 1")
Función
Function MINIF(RngMinimos As Range, RngCriterios As Range, Criterio As Variant) As Double Dim C As Range Dim Min As Double Dim check As Boolean check = False counter = 1 For Each C In RngMinimos If RngCriterios(counter) = Criterio Then If check = False Then Min = C.Value check = True Else If C.Value < Min Then Min = C.Value End If End If counter = counter + 1 Next If check = False Then MINIF = CVErr(xlErrN) Else MINIF = Min End If End Function
Esta función contiene una mejora con respecto a la función MAXIF. En caso de no encontrarse ningún valor que cumpla los criterios, devuelve un error #N/A. Esto es porque devolver un valor 0 (cero) podría interpretarse equivocadamente como que el mínimo es ese. Pero si se quisiera ese comportamiento, solo hay que sustituir CVErr(xlERRN) por 0.
Añadir a mi libro
Como todas las UDF, si la quieres añadir a tu libro únicamente debes seguir los siguientes pasos:
- Abrir el desarrollador de Visual Basic (Alt + F11)
- Crear un módulo
- Añadir el código de más arriba (Copiar y Pegar)
- Listo para usarse
Si lo que quieres es que esté siempre presente en tu Excel, abras el libro que abras, entonces hay que hacer una cosa antes. Pincha en “Grabar macro”. Esto se puede hacer en la pestaña “Desarrollador” o en la barra de estado de Excel:
En ese momento aparecerá un diálogo, en el que tenemos que seleccionar la opción “Libro de macros personal”. Este libro lo crea siempre Excel por defecto, pero en condiciones normales está oculto. Al hacer esto y darle a aceptar y luego parar la grabación, se hará visible.
Copia el código de más arriba dentro de un módulo del libro Personal.xlsb y ya te funcionará en este ordenador para todos los archivos de Excel que abras.
Limitaciones
Recuerda que, al ser una UDF, solo estará disponible en los ordenadores donde esta macro esté guardada. Si le vas a mandar el archivo a tu jefe, recuerda copiar la macro al propio archivo, o si no tu jefe verá un error #NOMBRE en vez del resultado de la función.
La ayuda de la función no estará disponible si no se define. En otra ocasión hablaremos largo sobre este tema, al que Microsoft no le ha dado una solución sencilla aún.