Este caso nos lo suelen consultar muy frecuentemente. Es un ejemplo de los que podemos hacer utilizando algunas de las funciones básicas de excel dividiendo en columnas y reordenando la información de otras formas, pero en algunas ocasiones lleva más trabajo hacerlo así que utilizando funciones y además nosotros queremos utilizar este ejemplo para practicar y tener más ejemplo de como utilizar diferentes funciones ya explicadas de forma separada.
Imaginemos que tenemos una lista de nombres en la columna A y que tienen el siguiente formato: Clarke, Emilia | Daenerys Targaryen como podemos ver es el nombre de una actriz y de su personaje en la famosa serie Juego de Tronos. En una sola ceda tenemos: Apellido, Nombre | Nombre del personaje
Imaginad que lo que queremos es tener en columnas separadas el Nombre, el Apellido y el Nombre del personaje. De esta forma podremos hacer ordenaciones por cualquier de las diferentes columnas. En esta práctica veremos como podemos trabajar con el contenido de la columna A y como poder dividirlo en columnas.
Primero de todo preparemos la hoja de cálculo y pongamos en la Columna A el nombre de algunos de los protagonistas de Juego de Tronos. Os los dejamos todos en esta misma entrada para que así podáis copiarlos a vuestra hoja de excel para poder realizar la práctica. Nosotros el primer nombre lo tenemos en la celda A2, ya que la A1 la hemos guardado para los títulos de las siguientes columnas. B1 = Personaje, C1 = Nombre, D1 = Apellidos
Clarke, Emilia | Daenerys Targaryen
Dinklage, Peter | Tyrion Lannister
Harington, Kit | Jon Nieve
Williams, Maisie | Arya Stark
Turner, Sophie | Sansa Stark
Headey, Lena | Cersei Lannister
Allen, Alfie | Theon Greyjoy
Glen, Iain | Ser Jorah Mormont
Christie, Gwendoline | Brienne de Tarth
Hempstead-Wright, Isaac |Bran Stark
Gillen, Aidan | Petyr Baelish
Hill, Conleth | Lord Varys
Cunningham, Liam | Davos Seaworth
Bradley-West, John | Samwell Tarly
Coster-Waldau, Nikolaj | Jaime Lannister
van Houten, Carice | Melisandre
McCann, Rory | Sandor Clegane “El perro”
Whelan, Gemma | Yara Greyjoy
Anderson, Jacob | Gusano gris
Empezaremos con extraer el nombre del personaje. Para ello debemos fijarnos que en todos los casos este nombre empieza desde el símbolo | hasta el final de la celda. De tal forma que tendremos que buscar una función que nos permita extraer parte del contenido de la celda desde una posición determinada, en este caso la posición nos la marcará el carácter | que en cada uno de los casos está en una posición diferente.
La función que utilizaremos para coger parte del texto será EXTRAE() recordemos sus argumentos:
EXTRAE(Texto; Posición inicial; Número de caracteres a extraer)
Esta celda la empezaremos a escribir en la celda B2. El argumento Texto es sencillo, ya que es la celda A2. El argumento Posición inicial, ya se complica un poco más ya que tenemos que saber que posición ocupa “|” y el Número de caracteres a extraer será desde el | hasta el final de la celda.
Vamos a ver como solucionamos el argumento Posición inicial. Para ello debemos utilizar una función que nos devuelva la posición donde se encuentra el carácter |. Esta función es HALLAR() que sólo tiene dos argumentos obligatorios, el carácter que deseamos buscar y donde lo buscamos. De tal forma que podríamos escribir la función =HALLAR("|";A2)
y nos debería devolver 16 en el primero de los ejemplos.
Ahora que ya sabemos la posición en la que se encuentra este carácter, lo único que nos falta es saber el número de caracteres que tenemos que extraer, recuerda que la función EXTRAE no devuelve los caracteres desde una posición hacia la derecha. Para hacer esto es muy sencillo, tan solo deberemos saber cuantos caracteres tiene en total la celda y restarlo de la posición de “|”. Para saber cuantos caracteres hay en una celda utilizaremos la función LARGO(). Esta función solo tiene un argumento y sería la celda donde se encuentra el texto que deseamos saber su longitud. De tal forma que si escribimos la función =LARGO(A2) nos debería devolver 35.
De tal forma para saber el Número de caracteres a extraer deberemos escribir la función =LARGO(A2)-HALLAR("|";A2)
y en este caso nos dará como resultado 19.
Ahora tan solo nos falta unificar todas las partes en la función EXTRAER que hemos visto, para obtener el resultado que estamos esperando. La función siguiendo los parámetros que hemos visto anteriormente debería ser: =EXTRAE(A2;HALLAR("|";A2);LARGO(A2)-HALLAR("|";A2))
al ver el resultado de esta función nos encontramos con este resultado “| Daenerys Targarye” que como podemos ver no es el esperado ya que estamos arrastrando el carácter | y un espacio en blando en la parte de delante. ¿Cómo solucionar esto? muy sencillo moviendo dos posiciones el inicio de donde empezamos a extraer caracteres =EXTRAE(A2;HALLAR("|";A2)+2;LARGO(A2)-HALLAR("|";A2))
con este pequeño arreglo, ya hemos conseguido el resultado esperado. Si arrastramos la función hacia abajo veremos que en el resto de casos obtenemos lo que estábamos esperando.
Vamos ahora a conseguir el nombre y colocarlo en la celda C2. En esta ocasión la función es similar, pero el Nombre se encuentra en medio y está limitado en todos los casos por una , y el símbolo | con lo que la Posición inicial nos la marcará la , y el Número de caracteres nos lo indicará la posición en la que encontramos |
De esta forma la función que deberemos escribir en la celda C2 quedaría de la siguiente forma =EXTRAE(A2;HALLAR(",";A2);HALLAR("|";A2)-HALLAR(",";A2))
observa que hay pequeñas diferencias con la anterior. En este caso el primer argumento buscamos el carácter ","
y para saber el número de caracteres a extraer lo que hacemos es calcular cuantos caracteres hay entre "|"
y ","
. Esta resta nos marca el número de caracteres que deberemos extraer. Pero ahí no queda todo, ya que al ver el resultado nos devuelve lo siguiente “, Emilia ” observa que tenemos la , un espacio y además un espacio en blanco después. ¿Cómo solucionar esto? pues… sencillo. Para eliminar la , y empezar a contar desde la primera letra tan solo deberemos sumar dos a la posición inicial HALLAR(",";A2)+2
pero ahora vemos que tenemos más caracteres por la derecha, con lo que deberemos ajustarlos y en este caso restaremos 3, (espacio, | y espacio). De tal forma la función final quedaría así: =EXTRAE(A2;HALLAR(",";A2)+2;HALLAR("|";A2)-HALLAR(",";A2)-3)
Si arrastramos hacia abajo ya tendremos todos los nombres en su lugar.
Ahora solo nos queda extraer el apellido, que en este caso está en primera posición. En esta ocasión utilizaremos la función IZQUIERDA() ya que es mucho más sencillo para conseguir extraer caracteres a partir de la izquierda de un texto.
IZQUIERDA(Texto; Número de caracteres a extraer)
En esta función simplemente debemos indicar donde está el texto con el que queremos trabajar y el número de caracteres que debemos extraer. Y aquí pasa igual que en la otra función, para saber hasta donde debemos extraer nos lo marcará la posición de la “,” y para eso utilizaremos como anteriormente la función HALLAR(). De esta forma la función quedaría así =IZQUIERDA(A2;HALLAR(",";A2))
al ver el resultado observamos que nos falta retocarla un poco para conseguir el resultado deseado, ya que veremos que nos está devolviendo “Clarke,” (el nombre con la ,) ¿qué falta por hacer? pues simple, muy simple, solo deberemos restar 1 al número de caracteres a extraer y ya tenemos el resultado esperado: =IZQUIERDA(A2;HALLAR(",";A2)-1)
El resultado final de nuestra práctica debería ser algo como lo que vemos a continuación:
Deja una respuesta