Tengo una columna en Excel que se ve así:
Census Tract 2941.10 (part), Carson city, Compton CCD, Los Angeles County, California
Census Tract 5410.02, Carson city, Compton CCD, Los Angeles County, California
Census Tract 5431 (part), Carson city, Compton CCD, Los Angeles County, California
Census Tract 5432.02 (part), Carson city, Compton CCD, Los Angeles County, California
Census Tract 5433.04, Carson city, Compton CCD, Los Angeles County, California
Necesito extraer 2941.10, 5410.02, 5431, etc. Probé la siguiente fórmula: =MID(E4,MATCH(TRUE,ISNUMBER(1*MID(E4,ROW($3:$606),1)),0),COUNT(1*MID(E4,ROW($3:$606),1)))
Sin embargo, el decimal en el medio del número hace que los dos últimos números se corten. No todos los números tienen un decimal, y la cantidad de texto después del número varía según la fila (por lo que las fórmulas izquierda y derecha no son opciones). Debo usar una fórmula de Excel y no VBA / macros.
¿Alguna sugerencia?
microsoft-excel
worksheet-function
L. Batty
fuente
fuente
Respuestas:
utilizar esta:
La fórmula anterior supone que los números son siempre la tercera "palabra" en el texto. Si ese no es el caso Y solo hay un grupo de números por cadena, puede usar esta fórmula de matriz:
Al ser una fórmula de matriz, debe confirmarse con Ctrl-Shift-Enter, en lugar de Enter al salir del modo de edición. Si se hace correctamente, Excel colocará
{}
alrededor de la fórmula.Se itera a través de las palabras y devuelve la suma de todos los grupos de números, y dado que solo hay un grupo de números, devuelve solo eso.
fuente
EDITAR: borré mi primera respuesta porque me doy cuenta de que probablemente desee devolver una cadena de dígitos, incluidos los ceros iniciales o finales, y al menos es concebible que la cadena de dígitos tenga más de 15 dígitos.
Por lo tanto, las fórmulas a continuación devuelven el número como una cadena de texto, conservando los ceros iniciales y finales. por ejemplo,
2941.10
se devuelve como tal, y no como2941.1
Aquí hay una solución de fórmula
Primero defina
seq
como una fórmula con nombre:seq
devolverá una matriz de números{1...255}
A diferencia delROW(INDIRECT(...
método de devolución de matrices, esta fórmula no es volátil.Luego puede usar esta fórmula de matriz ingresada presionando ctrl+shiftmientras presionaenter
o, puede usar esta fórmula un poco más larga pero normalmente ingresada:
Si es el caso, como en su ejemplo, que la secuencia de dígitos siempre comienza en la posición 14, entonces puede usar esta fórmula simplificada, normalmente ingresada:
fuente