Separar una cadena de texto

Cuando tenemos una cadena texto que debemos separar en diferentes partes, podemos utilizar fórmulas o también podemos utilizar el comando Texto en columnas. En esta ocasión te mostraré ambos métodos para separar una cadena de texto en Excel de manera que puedas utilizar el método que mejor se adapte a tus necesidades.

Pero antes de mostrar las fórmulas y los comandos que nos ayudarán a dividir una cadena de texto, debo explicarte el tipo de separación que podemos lograr en Excel. Podemos agrupar los tipos de separación en dos grupos:

  1. Separación por un carácter delimitador.
  2. Separación por un ancho definido.

La separación por un carácter delimitador implica que la cadena de texto tenga un símbolo o un carácter que indicará el lugar exacto donde se hará la división. Algunos ejemplos de caracteres delimitadores son: el espacio en blanco, la coma, el punto y coma, el tabulador o cualquier otro símbolo o letra que nos permita distinguir visualmente la separación dentro de la cadena de texto.

La separación por un ancho definido significa que pediremos a Excel que “corte” la cadena de texto cada determinado número de caracteres. En este caso, la cadena no necesita estar delimitada visualmente por algún símbolo sino que simplemente haremos la división basados en un número determinado de caracteres.

Si la separación de la cadena de texto no puede ser catalogada en alguno de estos dos grupos, entonces se dificultará en extremo poder realizarla en Excel o simplemente será imposible. Es importante conocer las virtudes de Excel así como sus limitaciones y no hacerse falsas expectativas al intentar dividir una cadena de texto.

Por ejemplo, algunos usuarios llegan a preguntar por alguna fórmula de Excel que extraiga el nombre de una calle y la ciudad contenidos en el domicilio de una persona. Sin embargo, si no existe un carácter que identifique  claramente cada uno de los elementos dentro de la cadena de texto, Excel no podrá hacer dicha separación.

Otro ejemplo muy común, es intentar separar nombres y apellidos en Excel, pero si no tenemos  un carácter delimitador, dicha tarea es muy complicada de realizar. Aunque podemos separar fácilmente las palabras utilizando al espacio en blanco, no existe una función que pueda determinar si una palabra es un nombre o un apellido.

Por esta razón es importante recordar que las cadenas de texto deben tener un carácter delimitador que nos permita identificar cada una de las partes por las cuales haremos la división. O por el contrario, podemos aplicar una división en base a un ancho definido.

Ahora que tenemos una mejor idea sobre las capacidades de Excel para separar una cadena de texto, realizaremos algunos ejemplos tanto con fórmulas como con el comando Texto en columnas.

Separar una cadena de texto por un ancho definido

El primer ejemplo que realizaremos es la separación de una cadena de texto por un ancho definido utilizando funciones de Excel. Para nuestro ejemplo utilizaremos un rango de celdas que contiene números de ISBN de ciertos libros.

Separar una cadena de texto en Excel

Nuestro objetivo será separar la cadena de texto en dos partes: los primeros tres dígitos en una columna y el resto de los dígitos en una segunda columna. Para lograr este objetivo utilizaremos la función IZQUIERDA para extraer los primeros tres dígitos de la cadena:

=IZQUIERDA(A2, 3)

Y para obtener el resto de los dígitos en otra columna, utilizaré la función DERECHA de la siguiente manera:

=DERECHA(A2, 10)

La siguiente imagen muestra el resultado de utilizar ambas fórmulas en las celdas B2 y C2 respectivamente y posteriormente copiarlas hacia abajo:

Separar texto en columnas en Excel

Este ejemplo ha sido muy sencillo porque las funciones IZQUIERDA y DERECHA nos permiten dividir fácilmente la cadena de texto en las dos partes que necesitamos.

Para nuestro siguiente ejemplo, dividiremos nuestra cadena de texto en tres partes: 3 dígitos, 5 dígitos y 5 dígitos. Los primeros 3 dígitos los obtendremos con la siguiente fórmula:

=IZQUIERDA(A2, 3)

Los últimos 5 dígitos los obtenemos de nueva cuenta con la función DERECHA:

=DERECHA(A2, 5)

Y para obtener los dígitos que se encuentran en medio de la cadena, utilizaremos la función EXTRAE. Esta función nos pide tres argumentos: la cadena original, la posición donde iniciará la extracción y por último, la cantidad de caracteres a extraer. De esta manera, nuestra fórmula para extraer los 5 caracteres que se encuentran después del guion medio, es la siguiente:

=EXTRAE(A2, 5, 5)

El quinto carácter de la cadena es precisamente el que aparece después del guion medio y por eso el valor del segundo argumento es cinco. A partir de dicha posición queremos obtener cinco dígitos y por lo tanto el tercer argumento de la función EXTRAE es también cinco. El resultado final lo puedes observar en la siguiente imagen:

Separar texto en celdas en Excel

Para dividir una cadena de texto por un ancho definido utilizando fórmulas, serán las funciones IZQUIERDA, DERECHA y EXTRAE las que nos ayudarán a realizar la tarea. Las funciones IZQUIERDA y DERECHA para obtener los extremos y la función EXTRAE para obtener cualquier parte intermedia de la cadena.

Texto en columnas de ancho fijo

Ahora haremos la misma división que en los ejemplos anteriores, pero utilizando el comando Texto en columnas que está ubicado en la ficha Datos, dentro del grupo Herramientas de datos. Comenzamos por seleccionar el rango de celdas que contiene las cadenas de texto y pulsamos el comando Texto en columnas y se mostrará un cuadro de diálogo como el siguiente.

Dividir texto en columnas con funciones de Excel

Es importante seleccionar la opción “De ancho fijo” y pulsar el botón Siguiente. En el segundo paso tendremos la oportunidad de indicar a Excel las divisiones que queremos hacer en las cadenas de texto y para eso deberás hacer clic en la posición exacta sobre los datos mostrados en la Vista previa.

Cada vez que hagas clic sobre los datos se insertará un salto de línea, que podrás observar como una línea vertical con apariencia de flecha, y que indicará a Excel la posición exacta donde deberá separar la cadena de texto. Por ejemplo, la siguiente imagen muestra un salto de línea justo antes del guion medio:

Dividir texto en celdas diferentes en Excel

En este ejemplo dejaremos esta división tal como se observa en la imagen y pulsaré el botón Siguiente. En el paso 3 del proceso podremos indicar el formato de cada una de las columnas en las que serán divididas las cadenas de texto, pero por ahora no haré modificación alguna y solamente indicaré el Destino como una referencia a la celda B2.

Separar texto en Excel

Al pulsar el botón Finalizar, Excel hará la separación de las cadenas de texto de la siguiente manera:

Cómo separar un texto en Excel

Considera que con este método no podemos “deshacernos” de algún carácter y por lo tanto la segunda columna incluye el guion medio. Para facilitar la remoción de dicho carácter, podemos dividir la cadena de texto en tres partes de manera que el guion medio quede en una sola columna la cual podemos eliminar posteriormente.

Para dividir la cadena de texto de esa manera, seguimos los mismos pasos anteriores pero en el segundo paso nos aseguramos de indicar un salto de línea después del guion medio tal como lo muestra la siguiente imagen:

Fórmula para separar texto en Excel

Como resultado obtendremos nuestras cadenas de texto divididas en tres columnas de la siguiente manera:

Separar texto en varias columnas en Excel

Si queremos hacer la división en tres partes (3-5-5) tal como lo hicimos en el segundo ejemplo donde utilizamos fórmulas, entonces al momento de llegar al segundo paso del proceso debemos pedir una separación como la que se muestra a continuación:

Cómo separar palabras en Excel

Con los saltos de línea mostrados, estaremos dividiendo la cadena en cuatro partes, donde una de las columnas contendrá solamente el guion medio de manera que se facilite su eliminación. En la siguiente imagen se muestra el resultado de ejecutar el comando anterior.

Separar palabras que se encuentran en una celda de Excel

Ahora que hemos revisado los métodos que tenemos para separar cadenas de texto en Excel con un ancho fijo, enfocaremos nuestra atención a las cadenas que tienen un carácter delimitador y de igual manera revisaremos el método utilizando fórmulas y el método con el comando Texto en columnas.

Dividir una cadena de texto con carácter delimitador

El otro tipo de separación de cadenas de texto que podemos realizar en Excel es utilizando algún carácter delimitador que ya esté insertado en la cadena y que nos permita identificar claramente cada una de las partes.

Para nuestro ejemplo utilizaremos un grupo de códigos de producto, que como podrás observar, tiene un guion medio como el carácter que separa cada una de sus partes.

Dividir el valor de un celda en varias celdas de Excel

El guion medio no aparece siempre en la misma posición, así que para crear nuestra fórmula es necesario conocer de antemano su posición dentro de la cadena. Dicha posición la podremos obtener con la función ENCONTRAR utilizando una fórmula como la siguiente:

=ENCONTRAR("-", A2)

El primer argumento de la función ENCONTRAR es el carácter que estamos buscando y el segundo argumento es la cadena de texto original. La siguiente imagen muestra la posición del primer guion medio para cada una de las cadenas de texto.

Separar un texto en varias celdas de Excel

Para conocer la posición del segundo guion medio dentro de la cadena, volveremos a utilizar la función ENCONTRAR pero con una pequeña modificación:

=ENCONTRAR("-",A2,B2+1)

En este caso, utilizamos el tercer argumento de la función ENCONTRAR para pedirle que inicie la búsqueda a partir de la posición B2+1. Para nuestro ejemplo, la celda B2 contiene la  posición del primer guion medio así que nos aseguramos de que la segunda búsqueda inicie un carácter después del primer guion medio encontrado.

Cómo separar un texto en palabras en Excel

Ahora que tenemos la primera y segunda posición del guion medio dentro de la cadena de texto original, podemos hacer la separación utilizando las funciones IZQUIERDA, DERECHA y EXTRAE de manera similar al primer ejemplo de este artículo. La fórmula para obtener la primera sección de la cadena es la siguiente:

=IZQUIERDA(A2, B2-1)

La cadena de texto original se encuentra en la celda A2 y la posición del primer guion medio está en la celda B2 así que la cantidad de caracteres que vamos a extraer del lado izquierdo está determinada por la posición del primer guion medio y restando el valor uno.

Extraer palabras de un texto en Excel

Para obtener la parte media de la cadena de texto, utilizaremos la función EXTRAE de la siguiente manera:

=EXTRAE(A2, B2+1, C2-B2-1)

El primer argumento es la cadena de texto original. El segundo argumento es la posición donde se iniciará la extracción, que para nuestro ejemplo es la posición del primer guion medio (que se encuentra en la celda B2) más uno.

El tercer argumento es la cantidad de caracteres que vamos a extraer de la cadena de texto y que podemos obtener haciendo la resta de la posición del segundo guion medio y la posición del primer guion medio y restando el valor uno.

Separar una cadena de texto por un ancho definido en Excel

Para extraer la última parte de la cadena de texto necesitamos indicar a la función DERECHA la cantidad de caracteres que vamos a extraer y eso lo podemos obtener haciendo la resta de la longitud total de la cadena menos la posición del segundo guion medio.

=DERECHA(A2, LARGO(A2) - C2)

La longitud de la cadena la obtenemos con la función LARGO y la posición del segundo guion medio está en la celda C2. El resultado es el siguiente:

Separar una cadena de texto en Excel por un carácter delimitador

Al igual que con los primeros ejemplos donde utilizamos funciones de Excel, las funciones IZQUIERDA, DERECHA y EXTRAE jugarán un papel importante en la separación de una cadena de texto cuando tenemos un carácter delimitador.

Texto en columnas delimitadas por un carácter

Si queremos utilizar el comando Texto en columnas en lugar de fórmulas para dividir una cadena de texto que contiene un carácter delimitador, debemos comenzar por seleccionar las celdas que tienen las cadenas y posteriormente ir a Datos > Herramientas de datos > Texto en columnas y se mostrará el siguiente cuadro de diálogo:

Dividir un texto en columnas de ancho fijo

En este paso debemos asegurarnos de seleccionar la opción “Delimitados” y posteriormente pulsar el botón Siguiente. En el segundo paso será nuestra oportunidad de indicarle a Excel el carácter delimitador contenido en la cadena de texto. Excel nos ofrece una lista de separadores que son comúnmente utilizados: tabulación, punto y coma, coma, espacio y también la opción Otro la cual utilizaremos en nuestro ejemplo para indicar el guion medio como el carácter delimitador.

Dividir un texto en columnas delimitadas por un carácter

Al momento de elegir el carácter delimitador adecuado, la Vista previa mostrará la división de los datos. Al hacer clic en el botón Siguiente, podremos indicar la celda donde queremos colocar cada una de las partes de la cadena que será dividida. Para este ejemplo colocaré una referencia a la celda B2.

Funciones de Excel para separar una cadena de texto

Como resultado obtendremos la división de las cadenas de texto tal como se observa en la siguiente imagen:

Comando Texto en columnas para separar una cadena en Excel

De esta manera hemos comprobado que podemos separar una cadena de texto en Excel utilizando fórmulas así como el comando Texto en columnas. Considera descargar el archivo de trabajo que he utilizado en los ejemplos de este artículo para que puedas practicar con cualquiera de los métodos que he expuesto en esta ocasión.