¿Cómo dividir una cadena basada en ":" en MS-Excel?


58

Mi columna de Excel está llena de palabras como esta:

1.) ABC:DCF
2.) DCF:FED

Quiero dividir cada palabra según ":" y poner el resultado en columnas adyacentes de modo que "ABC: DCF" en la celda "A: 1" se convierta en "ABC" en la celda "B: 1" y "DCF" en la celda " C: 1 "y también los valores correspondientes en cada columna. ¿Como hacer esto?

Respuestas:


63

Vaya a la pestaña Datos y luego a la opción Texto a columnas. Más tarde, elija la opción "Delimitado" y luego seleccione "otro" y coloque el delimitador que desee.


80

El texto a columnas funcionará. Otra opción, si desea mantener el valor original, es utilizar fórmulas:
en B1

=left(a1,find(":",a1)-1) 

en C1

=mid(a1,find(":",a1)+1,len(a1))

2
El valor original se puede mantener incluso con la otra solución (puede especificar una columna diferente para almacenar los nuevos valores), pero esta solución me gusta más porque permite tener valores siempre actualizados (es decir, si modifica A1, B1 y C1 se actualizarán, mientras que la opción de texto a columna no).
psychowood

Esta es una solución brillante
jsg

26

Si puede usar VBA, puede hacer uso de la Split()función. Aquí hay una función definida por el usuario (UDF) que puede usar en una celda. Se divide en su elección de carácter y devuelve el n -ésimo elemento de la lista dividida.

Consulte ¿Cómo agrego VBA en MS Office? para obtener información sobre cómo definir un UDF.

Function STR_SPLIT(str, sep, n) As String
    Dim V() As String
    V = Split(str, sep)
    STR_SPLIT = V(n - 1)
End Function

Entonces deberías ingresar:

=STR_SPLIT(A1, ":", 1) // for the first half
=STR_SPLIT(A1, ":", 2) // for the second half

1
Muy bien, no sabía que era tan fácil crear sus propias fórmulas
capuchas

1
Esto es perfecto para dividir una URL en sus componentes.
Underverse

7

Péguelo en B1 y llénelo a columnas a la derecha y filas hacia abajo:

=TRIM(MID(SUBSTITUTE($A1,":",REPT(" ",999)),COLUMNS($A:A)*999-998,999))

Editar: publiqué previamente una versión localizada de la fórmula, donde ',' fue reemplazado por ';'. Eso no funciona en la versión estadounidense de Excel:

=TRIM(MID(SUBSTITUTE($A1;":";REPT(" ";999));COLUMNS($A:A)*999-998;999))


1
Bienvenido a Super User. ¿Podría agregar algunas oraciones a su respuesta para explicar qué hace esto y cómo funciona? Eso mejorará su valor educativo. Gracias.
Fixer1234

Si seguro. Hace lo mismo que hace Texto a Columnas desde la pestaña Datos, excepto que no lo hace con la fórmula. Puede reemplazar el ":" por un delimitador diferente o referirse a un delimitador de la otra celda.
Hardi Uutma

Excel dice que esta no es una fórmula válida cuando la pega en una celda. Por favor verifique y actualice.
thilina R

Hola thilina r Gracias por avisar Hice el ajuste para la versión estadounidense de Excel. Avíseme si tiene algún problema con eso ahora o si algo no está claro.
Hardi Uutma

Muy agradable. La única respuesta hasta ahora que le permite manejar tantos delimitadores como desee, sin crear su propia función.
CWilson
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.