En este artículo 21 secciones
Excel permite separar el contenido de una celda en varias columnas con fórmulas como IZQUIERDA, DERECHA, EXTRAE y ENCONTRAR, con la función DIVIDIRTEXTO de Microsoft 365, o sin fórmulas, con la herramienta «Texto en columnas» y el relleno rápido. La elección depende de si el texto tiene un separador, como un espacio o un guion, y de si las partes tienen siempre la misma longitud. ¿Qué método usar en cada caso?
Separar un texto de longitud fija.
Cuando todas las celdas tienen la misma estructura y la misma cantidad de caracteres, basta con tomar un número fijo de caracteres desde la izquierda o desde la derecha. Supongamos que en A2 tenemos la placa de un vehículo, ABC123, y queremos separar las letras de los números:
=IZQUIERDA(A2;3)
=DERECHA(A2;3)
La primera fórmula extrae los tres primeros caracteres, «ABC», y la segunda los tres últimos, «123». Cada una se escribe en una columna distinta y se copia hacia abajo.
El método falla si las longitudes cambian. Si una placa de motocicleta tiene la forma ABC12D, la fórmula extraerá «12D» como números. En ese caso necesitamos un criterio distinto, como un separador.
Separar un texto que tiene un separador.
Es el caso más común: nombres separados por espacios, códigos con guiones o datos exportados con comas. La idea es ubicar el separador con la función ENCONTRAR y cortar el texto antes y después de él. Supongamos que en A2 tenemos «Pedro Calderón»:
=IZQUIERDA(A2;ENCONTRAR(" ";A2)-1)
ENCONTRAR devuelve la posición del espacio, la 6, y IZQUIERDA toma los caracteres anteriores, por eso se resta 1. El resultado es «Pedro». Para la segunda parte:
=EXTRAE(A2;ENCONTRAR(" ";A2)+1;LARGO(A2))
EXTRAE toma el texto desde la posición siguiente al espacio hasta el final, y el resultado es «Calderón». El tercer argumento, LARGO(A2), garantiza que se extraiga todo el resto, sin importar su longitud.
Si algunas celdas no tienen el separador, las fórmulas devuelven el error #¡VALOR!. Para evitarlo se envuelven en SI.ERROR, de modo que la primera parte devuelva el texto completo y la segunda quede vacía:
=SI.ERROR(IZQUIERDA(A2;ENCONTRAR(" ";A2)-1);A2)
=SI.ERROR(EXTRAE(A2;ENCONTRAR(" ";A2)+1;LARGO(A2));"")
El separador puede ser cualquier carácter: un guion, una coma, una barra o una arroba. La extracción del texto antes o después de un carácter, y entre dos caracteres, como los paréntesis, se desarrolla en el artículo sobre cómo extraer texto antes o después de un carácter.
Separar el nombre y los dos apellidos.
Cuando el texto tiene tres partes, como «Pedro Calderón Suárez», hay que ubicar el primero y el segundo espacio. La posición del segundo espacio se obtiene buscando un espacio a partir de la posición siguiente al primero:
| Parte | Fórmula |
|---|---|
| Nombre | =IZQUIERDA(A2;ENCONTRAR(" ";A2)-1) |
| Primer apellido | =EXTRAE(A2;ENCONTRAR(" ";A2)+1;ENCONTRAR(" ";A2;ENCONTRAR(" ";A2)+1)-ENCONTRAR(" ";A2)-1) |
| Segundo apellido | =EXTRAE(A2;ENCONTRAR(" ";A2;ENCONTRAR(" ";A2)+1)+1;LARGO(A2)) |
El tercer argumento de ENCONTRAR indica desde qué posición empezar a buscar, y eso es lo que permite encontrar el segundo espacio.
Hay un límite que ninguna fórmula resuelve: los nombres y apellidos compuestos. En «María del Pilar Gómez Rojas» la fórmula tomará «María» como nombre y «del» como primer apellido. De acuerdo con nuestro criterio, en listados con nombres compuestos conviene separar con fórmula y luego revisar a mano los registros que tengan más de tres palabras.
Extraer la última palabra.
Si lo que necesitamos es la última palabra, sin importar cuántas haya antes, por ejemplo el segundo apellido en una lista donde algunos tienen dos nombres, la fórmula reemplaza el último espacio por un carácter que no exista en el texto y toma lo que sigue:
=EXTRAE(A2;HALLAR("@";SUSTITUIR(A2;" ";"@";LARGO(A2)-LARGO(SUSTITUIR(A2;" ";""))))+1;LARGO(A2))
La parte LARGO(A2)-LARGO(SUSTITUIR(A2;" ";"")) cuenta cuántos espacios hay; SUSTITUIR reemplaza solo el último por una arroba, y EXTRAE toma el texto desde ahí. Con «Juan Carlos Rojas Díaz» el resultado es «Díaz».
Separar letras de números.
Cuando el texto combina letras y números sin separador, como un código «FAC2045», y las letras van primero, hay que ubicar la posición del primer número. Esta fórmula busca cada dígito del 0 al 9 y se queda con la posición menor:
=MIN(HALLAR({0;1;2;3;4;5;6;7;8;9};A2&"0123456789"))
Se agregan los diez dígitos al final del texto para que la búsqueda no falle con los dígitos que no aparecen. Con «FAC2045» el resultado es 4. Si esa posición está en B2, las dos partes se obtienen así:
=IZQUIERDA(A2;B2-1)
=VALOR(EXTRAE(A2;B2;LARGO(A2)))
El resultado es «FAC» y el número 2045. La función VALOR convierte los dígitos extraídos en un número con el que se puede operar.
Separar texto con DIVIDIRTEXTO.
En Microsoft 365, la función DIVIDIRTEXTO separa un texto en tantas columnas como partes tenga, con una sola fórmula:
=DIVIDIRTEXTO(A2;" ")
Con «Pedro José Calderón Suárez», la fórmula llena cuatro celdas hacia la derecha, una por palabra. Si el texto tiene varios separadores distintos, se indican entre llaves:
=DIVIDIRTEXTO(A2;{" ";"-";"/"})
Es la solución más sencilla cuando está disponible. Las celdas de la derecha deben estar vacías; de lo contrario, la fórmula devuelve el error #¡DESBORDAMIENTO!.
Separar texto sin fórmulas.
Cuando la separación se hace una sola vez y no necesita actualizarse si cambian los datos, las herramientas de Excel son más rápidas que las fórmulas.
Con «Texto en columnas».
Esta herramienta divide el contenido de una columna en varias, según un separador o un ancho fijo:
- Seleccionamos la columna con los datos.
- En la pestaña «Datos» damos clic en «Texto en columnas».
- Elegimos «Delimitados» si hay un separador, o «De ancho fijo» si las partes tienen siempre la misma longitud, y damos clic en «Siguiente».
- Marcamos el separador: espacio, coma, punto y coma u «Otro», donde se escribe, por ejemplo, un guion. Si puede haber varios espacios seguidos, marcamos «Considerar separadores consecutivos como uno solo».
- En el último paso indicamos en «Destino» la celda donde deben quedar los resultados y damos clic en «Finalizar».
Si no cambiamos el destino, Excel escribe sobre la columna original y las de su derecha, de modo que conviene apuntar a columnas vacías o trabajar sobre una copia.
Con el relleno rápido.
Desde Excel 2013, el relleno rápido aprende el patrón a partir de un ejemplo. En la columna de al lado escribimos a mano el resultado de la primera fila, por ejemplo «Pedro», nos ubicamos en la celda de abajo y presionamos Ctrl + E. Excel completa la columna con el primer nombre de cada fila.
Funciona bien con patrones regulares, pero conviene revisar los resultados, porque deduce la regla y puede equivocarse con los registros atípicos.
Separar texto con una macro.
Cuando los textos tienen varios separadores distintos y cantidades variables de partes, y la tarea se repite con frecuencia, una macro puede hacer el trabajo. La siguiente separa cada celda seleccionada en las columnas de su derecha, reconociendo como separadores el espacio, la barra, el guion y el guion bajo:
Sub SepararTexto()
Dim celda As Range, partes() As String, texto As String
Dim separadores As Variant, i As Long, j As Long
separadores = Array("/", "-", "_") ' Agregue aquí otros separadores
For Each celda In Intersect(Selection, ActiveSheet.UsedRange).Cells
If Not IsEmpty(celda.Value) Then
texto = CStr(celda.Value)
For i = LBound(separadores) To UBound(separadores)
texto = Replace(texto, separadores(i), " ")
Next i
texto = Application.WorksheetFunction.Trim(texto)
partes = Split(texto, " ")
For j = LBound(partes) To UBound(partes)
celda.Offset(0, j + 1).Value = partes(j)
Next j
End If
Next celda
End Sub
Con «Pedro-Maria-Prieto_Zuleta/Bogotá», la macro escribe cada palabra en una columna. A diferencia de otras versiones que circulan, esta no modifica la celda original: trabaja sobre una copia del texto. Sí escribe sobre las columnas de la derecha, por lo que deben estar vacías.
Para usarla se abre el editor con Alt + F11, se inserta un módulo, se pega el código, se seleccionan las celdas y se ejecuta con Alt + F8.
Qué método elegir.
La elección depende de la estructura del texto y de si el resultado debe actualizarse:
| Situación | Método recomendado |
|---|---|
| Todas las partes tienen la misma longitud | IZQUIERDA y DERECHA, o «Texto en columnas» de ancho fijo. |
| Hay un separador y se necesita actualizar | ENCONTRAR con IZQUIERDA y EXTRAE, o DIVIDIRTEXTO en Microsoft 365. |
| Separación de una sola vez | «Texto en columnas» o relleno rápido. |
| Letras y números sin separador | La fórmula con HALLAR y los dígitos del 0 al 9. |
| Varios separadores y tarea repetitiva | La macro, o DIVIDIRTEXTO con varios separadores. |
La operación inversa, unir el contenido de varias celdas, se explica en los artículos sobre cómo unir nombres y apellidos y cómo unir celdas en Excel.
Descargar el ejemplo en Excel.
El archivo de ejemplo contiene listas de placas, nombres completos y códigos con letras y números, con las fórmulas de este artículo aplicadas, y una hoja con el código de la macro para copiar. Descargar archivo.
Preguntas frecuentes.
A continuación respondemos las preguntas frecuentes de nuestros lectores.
¿Cuál es la fórmula para separar texto en Excel?
Si hay un separador, como un espacio, la primera parte se obtiene con =IZQUIERDA(A2;ENCONTRAR(" ";A2)-1) y la segunda con =EXTRAE(A2;ENCONTRAR(" ";A2)+1;LARGO(A2)).
¿Cómo divido un texto en columnas con fórmula?
En Microsoft 365, con =DIVIDIRTEXTO(A2;" "), que reparte cada parte en una columna. En versiones anteriores, con una fórmula por columna basada en ENCONTRAR.
¿Cómo separo los datos de una celda sin fórmulas?
Con la herramienta «Texto en columnas» de la pestaña «Datos», o con el relleno rápido, escribiendo el primer resultado y presionando Ctrl + E.
¿Cómo separo letras de números en Excel?
Ubicando el primer dígito con =MIN(HALLAR({0;1;2;3;4;5;6;7;8;9};A2&"0123456789")) y cortando el texto en esa posición con IZQUIERDA y EXTRAE.
¿Cómo separo el nombre y los apellidos?
Con una fórmula por parte basada en la posición del primer y del segundo espacio. Los nombres compuestos deben revisarse a mano.
¿Cómo desconcateno en Excel?
«Desconcatenar» es separar lo que se unió. Se hace con las mismas fórmulas o herramientas de este artículo, usando como separador el carácter que se usó al unir.
¿Por qué la fórmula me devuelve #¡VALOR!?
Porque alguna celda no tiene el separador que busca ENCONTRAR. Se soluciona envolviendo la fórmula en SI.ERROR.