sábado, 20 de junio de 2020

EXCEL: Divide números y unidades de medida

Excel formula: Split numbers from units of measure

Fórmula genérica

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

Explicación

Nota: esta es una fórmula experimental que utiliza una constante de matriz codificada, establecida aquí para referencia y comentario. Solo se probó casualmente, así que tenga cuidado si lo usa o se adapta.

A veces se encuentran datos que mezclan unidades directamente con números (es decir, 8 km, 12 v, 7.5 horas). Desafortunadamente, los números en este formato se consideran texto dentro de Excel, y no podrá realizar ninguna operación matemática con dichos valores.

Para dividir un número de un valor unitario, debe determinar la posición del último número. Si agrega 1 a esa posición, tiene el inicio del texto de la unidad.

En el ejemplo que se muestra, la fórmula en C5 es:

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

Esta fórmula usa la función EXTRAE para extraer los primeros 9 valores en B5, un carácter a la vez. El resultado es una matriz como esta:

{"8", "0", "v", "", "", "", "", "", ""}

Luego usamos la función VALOR para convertir números en formato de texto a números reales. El resultado es:

{8,0, # VALOR!, # VALOR!, # VALOR!, # VALOR!, # VALOR!, # VALOR!, # VALOR!}

Ejecutamos esta matriz a través de ESNUMERO para obtener:

{VERDADERO, VERDADERO, FALSO, FALSO, FALSO, FALSO, FALSO, FALSO, FALSO}

Luego multiplique esa cantidad por otra matriz con 9 números para obtener:

{1,2,0,0,0,0,0,0,0}

Luego usamos MAX para obtener el mayor valor, que es la posición del "último número".

En este caso agregamos 1 a la posición para obtener la posición de "inicio de la unidad".

Finalmente, usamos esta posición con las funciones estándar IZQUIERDA y DERECHA para separar los números de las unidades:

=VALOR(IZQUIERDA(B5,C5-1)) // number
=ESPACIOS(DERECHA(B5,LARGO(B5)-C5+1)) // unit

Tenga en cuenta que la constante de matriz de números codificados es un truco por conveniencia, y solo manejará valores en bruto de hasta 9 caracteres de longitud.


Comentarios en Facebook


0 comentarios:

Copyright © 2021 TRUJILLOSOFT