Fórmula de Excel: dividir números de unidades de medida -

Tabla de contenido

Fórmula genérica

=MAX(ISNUMBER(VALUE(MID(A1,(1,2,3,4,5,6,7,8,9),1)))*(1,2,3,4,5,6,7,8,9))+1

Resumen

Para dividir un número de un valor unitario, puede usar una fórmula basada en varias funciones: MAX, ISNUMBER, VALUE y MID. En el ejemplo que se muestra, la fórmula en C5 es:

=MAX(ISNUMBER(VALUE(MID(B5,(1,2,3,4,5,6,7,8,9),1)))*(1,2,3,4,5,6,7,8,9))+1

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

Explicación

A veces, encuentra datos que mezclan unidades directamente con números (es decir, 8 km, 12 v, 7,5 horas). Desafortunadamente, Excel tratará los números en este formato como texto y no podrá realizar operaciones matemáticas 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 comienzo del texto de la unidad. Esta fórmula utiliza este concepto para averiguar dónde comienza la unidad de medida.

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

=MAX(ISNUMBER(VALUE(MID(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 MID 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,#VALUE!,#VALUE!,#VALUE!,#VALUE!,#VALUE!,#VALUE!,#VALUE!)

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

(TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE)

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

(1,2,0,0,0,0,0,0,0)

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

Finalmente, agregamos 1 a la posición para obtener la posición de "inicio de la unidad".

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

=VALUE(LEFT(B5,C5-1)) // number =TRIM(RIGHT(B5,LEN(B5)-C5+1)) // unit

Tenga en cuenta que la constante de matriz numérica codificada de forma rígida es un truco por conveniencia y solo manejará valores sin procesar de hasta 9 caracteres de longitud.

Buenos enlaces

Inspiración de las fórmulas de Rick Rothstein en MrExcel

Articulos interesantes...