2012-10-03 16:16:00 +0000 2012-10-03 16:16:00 +0000
58
58
Advertisement

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

Advertisement

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

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

Quiero dividir cada palabra basada en “ : ” y poner el resultado en columnas adyacentes de tal manera 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. ¿Cómo se hace esto?

Advertisement
Advertisement

Respuestas (4)

84
84
84
2012-10-03 16:34:14 +0000

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

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

en C1

=mid(a1,find(":",a1)+1,len(a1))
63
63
63
2012-10-03 16:20:12 +0000

Ve a la pestaña de datos, luego a la opción de texto a las columnas. Más tarde, elige la opción “Delimitado” y luego selecciona “otro” y pon el delimitador que quieras.

26
Advertisement
26
26
2012-10-03 18:42:46 +0000
Advertisement

Si puedes usar VBA entonces puedes hacer uso de la función Split(). Aquí hay una función definida por el usuario (UDF) que puedes usar en una celda. Se divide en su elección de carácter y devuelve el elemento nth de la lista de división.

Vea How do I add VBA in MS Office? para información sobre cómo definir una UDF.

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

Así que necesitaría introducir:

=STR_SPLIT(A1, ":", 1) // for the first half
=STR_SPLIT(A1, ":", 2) // for the second half
8
8
8
2016-09-05 16:44:45 +0000

Pégalo en B1 y llénalo en las columnas de la derecha y en las filas de abajo:

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

Edit: Anteriormente publiqué la versión localizada de la fórmula, donde ‘,’ fue reemplazado por ‘;’. Eso no funciona en la versión americana del Excel:

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

Advertisement

Preguntas relacionadas

5
6
13
9
10
Advertisement