7 de noviembre de 2007

Dividir nombres completos en nombre y apellidos

En alguna ocasión un conocido mío tenía el siguiente problema: Había recibido por e - mail una lista con nombres de personas en Excel, pero con la particularidad de que se presentaban juntos nombre y apellidos en una misma celda. Aparecía primero el nombre y luego los apellidos de la persona. Él necesitaba separar nombres de apellidos para poder ordenarlos por apellido paterno, entre otras cosas. No podía utilizar DERECHA ni IZQUIERDA (que ya vimos anteriormente) porque obviamente cada nombre tenía una extensión distinta.

En realidad sí tenemos que utilizar DERECHA e IZQUIERDA, aunque en combinación con otras más: EXTRAE, LARGO, ENCONTRAR (o HALLAR) y opcionalmente, ESPACIOS, NOMPROPIO, MAYUSC y MINUSC. Excel es muy flexible al trabajar textos. Solo hay que saber pedirle las cosas.

Dividamos el siguiente nombre completo, el cual está en A2, en nombre, apellido paterno y apellido materno.

Alejandra Reyes Avendaño

Eliminemos también los espacios excedentes entre palabras. Estos espacios casi siempre se producen al importar datos. Para hacerlo usamos la función ESPACIOS, la cual elimina los espacios excedentes excepto los espacios individuales entre palabras.

=ESPACIOS(A2)


Recordamos de la misma nota anterior que ENCONTRAR nos devuelve la posición en la que se encuentra determinado texto (o caracter) dentro de otro texto. Usémosla para determinar la posición del primer espacio en blanco de nuestro nombre, con esta fórmula:

=ENCONTRAR(" ", A2, 1)

En nuestro caso el resultado es 10. Si restamos uno, obtenemos la longitud de "Alejandra" (9).


Por lo tanto, para extraer el nombre, utilizamos la función IZQUIERDA con la fórmula anterior como segundo argumento. Esta fórmula devuelve la primera palabra de un texto:

=IZQUIERDA(A2, ENCONTRAR(" ", A2,1)-1)





Ahora determinemos el último apellido. Esto es un poco más difícil ya que ENCONTRAR solo funciona de izquierda a derecha. Aquí el problema es encontrar la posición del segundo espacio dentro del nombre para poder utilizarlo con la función DERECHA. (En nuestro ejemplo el segundo espacio está en la posición 16). Utilizamos la función ENCONTRAR, pero especificando como caracter inicial de búsqueda la posición del primer espacio más uno: un ENCONTRAR doble (sinceramente espero que vayan entendiendo). En otras palabras, queremos la posición del carácter " " empezando a contar de la posición 11.

Esta fórmula devuelve 16:

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




Ahora usamos la función derecha con el segundo argumento igual a la longitud total del texto menos los primeros 16 carácteres. Esta fórmula extrae el último apellido de un nombre completo:

=DERECHA(A2, LARGO(A2)-ENCONTRAR(" ", A2, ENCONTRAR(" ", A2,1)+1))




Continuamos en la siguiente entrada.

16 comentarios:

  1. Interesante pero lo todo eso se puede hacer con la función texto en columnas, lo separas por espacios y listo!!!!

    ResponderEliminar
  2. Exacto! solo seleccionas las columnas que deseas separar, te vas a Datos, Funcion: Texto en columnas, Delimitado, Espacios, Finalizar y Listo!!!

    ResponderEliminar
    Respuestas
    1. muy bueno te agradesco mucho estaba batallando para separar apellidoa y nombres

      Eliminar
  3. Muchas GRACIAS!!! te agradezco

    ResponderEliminar
  4. Y si kiero hallar el apellido paterno y el apellido materno separado por ejemplo:
    Juan Pancho, Caceres Ortiz
    Caceres en A2 y Ortiz en B2

    ResponderEliminar
  5. AKI EL USUARIO F_TANORI DE SOLOCODIGO PUSO UNA SOLUCION MUY BUENA
    http://solocodigo.com/29573/dividir-una-cadena/

    LES REKOMIENDO TAMBIEN ESE FORO KE ES BUENISISMO
    SUERTE

    ResponderEliminar
  6. Yo quisiera saber como le hago en el siguiente caso.
    Ingresé en una columna los nombres completos solo que primero los apellidos separados por una coma y después el nombre, ahora mi problema es devolver esos datos pero primero los nombres y después los apellidos sin la coma.
    Gracias

    ResponderEliminar
  7. excelente herramienta gracias

    ResponderEliminar
  8. Solo quiero dividir el Apellido materno como hago?

    ResponderEliminar
  9. sencillo y genial, gran aporte para los procesos de migración de datos.

    ResponderEliminar
  10. Tengo un problema como el ese, pero inicio con los apellidos y al final el nombre lo intente pero el único que me falta es el segundo apellido de, como le hago??

    ResponderEliminar
  11. Muchas gracias por tu apoter, me fue útil.

    ResponderEliminar
  12. Gracias me sirvio de mucho....

    ResponderEliminar
  13. y si por ejemplo el nombre es asi => lopez mendoza, jorge con una coma delante del apellido materno como podria extraer el apellido materno??????????

    ResponderEliminar

Creative Commons License
Esta obra está bajo una licencia de Creative Commons.
Excel, Excel 2003, Excel 2007 y el logo XL son marcas registradas de Microsoft Corporation.