Dos formas de extraer el dígito menor de un valor numérico
Hace relativamente poco tiempo tuve la oportunidad de trabajar en un proyecto en el cual necesitaban extraer el dígito menor de un valor numérico de una celda. El resultado servía para realizar otros cálculos que por privacidad no publicaré. La solución fue todo un reto porque el cliente utilizaba indistintamente Microsoft 365 y Office 2013 y en una de las soluciones que le propuse se necesitaba una fórmula matricial (recuerda que el comportamiento es diferente en las dos versiones).
Como digo, mi propuesta en ese momento fue una fórmula matricial. Luego descubrí que podía usar una fórmula ‘más sencilla’.
En la publicación de hoy te presento los dos métodos que conozco para extraer el dígito menor de un número.
Cómo extraer el dígito más pequeño con una fórmula matricial
Este método te servirá en cualquier versión de Excel.
El secreto del cálculo es extraer cada dígito del número y luego hallar el valor mínimo.
En primer lugar creé una matriz virtual donde guardé números consecutivos desde el 1 hasta el número de caracteres que tenía el número introducido:
=FILA(INDIRECTO(“1:”&LARGO(A3)))
- LARGO devuelve el número de caracteres de la celda.
- Con INDIRECTO se crea la matriz virtual que permitirá extraer los dígitos por separado.
- La función FILA crea una secuencia de números consecutivos desde el 1 hasta el número de caracteres que tenga la celda.
Observa el resultado de la fórmula:
Como puedes comprobar se trata de una matriz cuyo número de elementos es el mismo que el número de dígitos de la celda A3.
Si eres perspicaz podrás imaginarte lo que viene ahora…
Es el momento de extraer el carácter de la celda A3 que se encuentra en las posiciones que marca la matriz (1, 2, 3 y 4).
=EXTRAE(A3;FILA(INDIRECTO(“1:”&LARGO(A3)));1)
La función extrae 1 carácter (definido en el último argumento), del valor de la celda A3, comenzando desde la posición que indican los valores de la matriz. Para que lo veas más claro observa la imagen:
He separado los caracteres de la celda A3. Ahora solo tengo que hallar el valor mínimo de la matriz:
=MIN(EXTRAE(A3;FILA(INDIRECTO(“1:”&LARGO(A3)));1)+0)
Recuerda que en caso de usar una versión de Office diferente a 365 tendrás que utilizar la combinación de teclas Ctrl + Mayús + Intro para introducir la fórmula. De lo contrario no se mostrará el resultado deseado. Si usas Microsoft 365 solo tienes que presionar Intro.
=MIN(EXTRAE(A3;FILA(INDIRECTO(“1:”&LARGO(A3)));1)+0)
Sumar 0 al final de la fórmula es un útil truco para convertir textos en números. La función EXTRAE siempre devuelve cadenas de texto (aunque los caracteres sean números) y es necesario convertirlos en valores numéricos.
Para finalizar arrastro el controlador de relleno hacia abajo para comprobar que funciona correctamente:
Cómo extraer el dígito más pequeño de un valor numérico (método alternativo)
A este otro método llegué varias semanas más tarde cuando vi un ejemplo similar en un blog. Podrás usarlo si tienes una versión de Excel 2010 o superior, pues la función AGREGAR se integró en Excel a partir de ahí.
Es muy similar al método anterior.
=AGREGAR(15;4;EXTRAE(A3;FILA(INDIRECTO(“1:”&LARGO(A3)));1)+0;1)
Aquí puedes ver cómo se usa la función AGREGAR. La función 15 de AGREGAR es equivalente a K.ESIMO.MENOR. El resto de la fórmula es igual que en el método anterior. El ‘1’ del argumento final sirve para obtener la cantidad menor del número.
K.ESIMO.MAYOR está diseñada para funcionar con matrices, por tanto ya no es necesario presionar Ctrl + Mayús + Intro para introducirla (Intro en Excel 365).
Resumen
De nuevo queda demostrado que para llegar a un resultado se pueden tomar varios caminos diferentes (aunque estos sean similares).
El primer método es algo más eficiente y tarda menos en calcular aunque la diferencia será imperceptible si el número de celdas es menor a algunos millares.
Si te ha servido me gustaría leer en los comentarios el uso que le das a las fórmulas propuestas. Si conoces otro método para hallar el dígito más pequeño también me gustaría leerlo.
Respuestas