Reto 03: Separar los valores de las unidades de medida

separar valores excel

A raiz de una plantilla de Excel que estoy desarrollando para un cliente, en la que se deben separar unos valores de sus respectivas unidades (casi todas diferentes), se me ha ocurrido plantear el Reto 03.

Ayúdame a obtener otras soluciones diferentes a la que le he dado yo en la plantilla:

Observa la imagen:

valores unidades medida 1

Como ves, en la misma celda se pueden dar datos que mezclan valores con unidades. Cuando esto sucede, Excel trata todo el contenido de la celda como si fuera texto y es totalmente imposible hacer operaciones matemáticas con esos números. Por eso quiero separar los números de las letras.

Para separar un número de la unidad, primero se debe identificar la posición donde se encuentra el último número. Sumando 1 a esta posición, se obtiene la posición donde se encuentra el primer carácter de la unidad.

En el ejemplo de la imagen la fórmula sería:

=MAX(ESNUMERO(VALOR(EXTRAE(A4;{1;2;3;4;5;6;7;8;9};1)))*{1;2;3;4;5;6;7;8;9})+1

Utilizo la función EXTRAE para extraer los primeros 9 caracteres de la celda A1, de uno en uno. El resultado que se obtiene es este:

{"8";"5";"0";"k";"g";".";"";"";""}

Ahora es el turno de VALOR, que convierte esta matriz en texto con formato de número, obteniendo este resultado:

{8;5;0;#¡VALOR!;#¡VALOR!;#¡VALOR!;#¡VALOR!;#¡VALOR!;#¡VALOR!}

La función ESNUMERO utiliza este resultado para determinar si cada valor de la matriz es un número o no:

{VERDADERO;VERDADERO;VERDADERO;FALSO;FALSO;FALSO;FALSO;FALSO;FALSO}

Ahora la matriz resultante se multiplica por outra matriz com otros nueve valores y se obtiene este resultado:

{1;2;3;0;0;0;0;0;0}

Para finalizar, la función MAX se encarga de determinar el  valor más alto de la matriz. Este valor indica la última posición en la que se halla un número. Como quiero saber en qué posición comienzan las unidades, le sumo 1 a este resultado.

Esta fórmula sirve solamente para saber en qué posición se encuentra el primer carácter no numérico. Ahora toca separar cada parte (valores y medidas) con otras dos fórmulas más sencillas:

  • =VALOR(IZQUIERDA(A5;B5-1)) para la parte numérica. Como el resultado de IZQUIERDA es un texto, le aplico la función VALOR para convertirlo en número.
  • =DERECHA(A4;LARGO(A4)-B4+1) para la parte de las unidades de medida.

Esta es una de las muchas formas de separar el contenido de una celda en valores y unidades de medida. El único inconveniente que tiene es que sólo funciona con celdas que contienen hasta 9 caracteres. En el caso de la plantilla que estaba desarrollando, no había ningún inconveniente porque en ningún caso se superaba este largo.

Descarga el ejemplo para practicar:

316 Separar valores de unidades de medida
Título: 316 Separar valores de unidades de medida (250 clics)
Tamaño: 11 KB

Ahora te toca a ti

Demuestra a los seguidores de Ayuda Excel cómo lo harías tú. Escribe tu comentario con tu fórmula para separar valores de unidades de medida.

Sergio

Sergio

La destreza y el perfeccionismo quizá sean las dos virtudes que me permiten ayudar a mis clientes a facilitar las tareas administrativas de sus negocios.
Ebook De 0 a 100 con macros y VBA

De 0 a 100 con macros y VBA

Esta oferta no es para siempre...

¡no la desaproveches!