
Tengo una hoja de cálculo de Excel con filas de datos como se muestra a continuación. Hay un código con el nombre del producto y luego un número.
QA32 Product One (Large) 23
AZ63 Product Two 96
PR65 Product Three 149
¿Cómo divido cada campo en una columna?
Intenté "dividir texto en columnas" en Excel usando la opción delimitada y separando por espacios, pero el hecho de que algunos nombres de productos tuvieran más de una palabra provocó que algunos números estuvieran en la columna incorrecta. P.ej,
Code Name Number
QA32 Product One (Large) 23
AZ63 Product Two 96
PR65 Product Three 149
Este es el resultado deseado:
Code Name Number
QA32 Product One (Large) 23
AZ63 Product Two 96
PR65 Product Three 149
¡Se agradece la ayuda!
Respuesta1
Úselo FIND-function
para determinar la posición de su primer y último espacio. Después de eso, use MID-function
para dividir sus datos en tres partes. Si conoces la posición de tus espacios, dividirlos es fácil. Encontrar el primer espacio también es trivial ya que FIND
va de izquierda a derecha. Desafortunadamente, no hay forma de decirle a Excel que busque de derecha a izquierda.
¡Así que lo difícil es determinar el último espacio! Aquí usamos una fórmula matricial.
Para ingresar una fórmula matricial, pegue la fórmula en una celda y no presione Enter.
En lugar de eso, presione Ctrl+ Shift+ Enter.
{=MAX((MID(A2,ROW(A:A),1)=" ")*ROW(A:A))}
Si se hace correctamente, Excel agregará una llave inicial y final.
Inserte todas las fórmulas en las celdas dadas y useautofill down
A2: tus datos van aquí
B2: =FIND(" ",A2,1)
C2: =MAX((MID(A2,ROW(A:A),1)=" ")*ROW(A:A))
<-fórmula de matriz!
D2: =MID(A2,1,B2-1)
E2: =MID(A2,B2+1,C2-B2-1)
F2:=MID(A2,C2+1,LEN(A2))
Pantalla de resultados
Respuesta2
Si un algoritmo adecuado debe devolver:
- Código = La primera palabra
- Producto = Todo entre la primera y la última palabra.
- Número = La última palabra
Entonces las siguientes fórmulas deberían funcionar.
Suponga que sus datos están en A1:
Code: =LEFT(TRIM(A1),FIND(" ",TRIM(A1))-1)
Product: =TRIM(MID(SUBSTITUTE(TRIM(A1)," ",REPT(" ",99)),100,LEN(SUBSTITUTE(TRIM(A1)," ",REPT(" ",99)))-198))
Number: =TRIM(RIGHT(SUBSTITUTE(TRIM(A1)," ",REPT(" ",99)),99))