Emin tiene un rango de celdas en las que puede haber texto o números.

Necesita una forma de determinar el número par más pequeño del rango. Emin se pregunta si esto se puede hacer con una fórmula o si necesita una función definida por el usuario.

Hay un par de formas de abordar este problema. Un método que puede probar es utilizar la función DMIN. Todo lo que necesita es asegurarse de tener un encabezado en su columna de datos (como «MyData») y luego crear un pequeño campo de criterios en algún lugar apartado. Por ejemplo, es posible que desee crear el campo de criterios colocando un encabezado (como «Mínimo par») en la celda F1 y colocar la fórmula = ISEVEN (MyData) en la celda F2. La celda F2 se evalúa como # ¡VALOR! error, pero eso está bien en este caso. Luego puede usar la siguiente fórmula en una celda diferente:

=DMIN(A1:A100, 1, F1:F2)

Si lo prefiere, puede usar una fórmula de matriz para calcular el valor par más bajo. Debido a que su rango de datos puede contener tanto texto como números, no todas las fórmulas de matriz funcionarán. Por ejemplo, lo siguiente generará un error si hay algo más que números en el rango de datos:

=MIN(IF(MOD(A1:A100,2)=0,A1:A100))

Para asegurarse de no obtener los errores, debe verificar la fórmula:

=MIN(IF(ISNUMBER(A1:A100),IF(NOT(MOD(A1:A100,2)=0),"",A1:A100)))

Nuevamente, recuerde que esta es una fórmula de matriz, por lo que debe ingresarla usando Shift + Ctrl + Enter.

Si lo prefiere, puede crear una función definida por el usuario que devolverá el valor deseado:

Function MinEven(rng As Range)

Dim rCell As Range     Dim bNotFound As Boolean

Application.Volatile     MinEven = 9.99 * 10 ^ 307     bNotFound = True     For Each rCell In rng         If Application.WorksheetFunction.IsNumber(rCell) Then             If rCell Mod 2 = 0 Then                 If rCell < MinEven Then                     MinEven = rCell                     bNotFound = False                 End If             End If         End If     Next     If bNotFound Then MinEven = CVErr(xlErrNum)

End Function

Para usar esta macro, simplemente use lo siguiente con una celda de su hoja de trabajo:

=MinEven(A1:A100)

Si no hay números pares en el rango, la función devolverá un error #Num.

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (119) se aplica a Microsoft Excel 97, 2000, 2002 y 2003. Puede encontrar una versión de este consejo para la interfaz de cinta de Excel (Excel 2007 y posteriores) aquí:

link: / excelribbon-Finding_the_Smallest_Even_Value [Encontrar el valor par más pequeño].