Cómo separar nombres y apellidos en Excel

Aprender a separar nombres de apellidos en Excel es de suma importancia para tener una base de datos confiable ya que dicha información es vital para elaborar reportes y análisis, pero también es cierto que es una tarea muy compleja de realizar.

Dificultad para separar nombres y apellidos

La dificultad principal para separar nombres y apellidos en Excel es la cantidad de variantes que pueden existir en los nombres de las personas lo cual hace necesario analizar cada caso específico para utilizar el procedimiento adecuado. La solución no es tan sencilla como decirle a Excel que la primera palabra es el nombre y la segunda palabra es el apellido. La siguiente imagen muestra el resultado de aplicar esta lógica a los datos:

Cómo separar nombres y apellidos en Excel

Para ti y para mí es muy fácil saber que en este ejemplo todos los nombres consisten de un solo nombre y un apellido pero ¿Cómo le decimos a Excel que “del Toro” y “de la Fuente” son apellidos? Excel no es capaz de hacer esta distinción por sí solo así que es necesario darle indicaciones específicas.

El caso de separación más sencillo

Si después de hacer una revisión de los datos te das cuenta que para la mayoría de los registros tienes nombres de una sola palabra así como apellidos de una sola palabra, entonces te recomiendo utilizar el Asistente para convertir texto en columnas el cual colocará cada palabra en una columna diferente.

Separar nombres y apellidos en columnas diferentes en Excel

Este asistente se encuentra en la ficha Datos dentro del grupo Herramientas de datos y justamente en el paso 2 del proceso podrás elegir el Espacio como el carácter delimitador para hacer la separación en varias columnas. Al finalizar la ejecución del asistente tendrás un resultado similar al siguiente:

Dividir nombres con el Asistente para convertir texto en columnas

Observa que no importa la cantidad de palabras en el nombre, el asistente colocará cada palabra en una columna diferente. Esta solución es muy buena en caso de que hayas detectado que la mayoría de los nombres y apellidos consisten de una sola palabra ya que solo tendrás que ajustar manualmente aquellos nombres que tuvieran más de tres palabras porque el asistente habrá ocupado columnas adicionales en esos casos.

Un beneficio de este método es que no importa si los datos comienzan por los apellidos o por los nombres ya que de igual manera se realizará la separación por palabras. Lo que es muy  importante es que todos los registros tengan la misma estructura, es decir, que todos comiencen por apellido o que todos comiencen por nombre o de lo contrario tendrás un caso más difícil de resolver.

Separar los apellidos compuestos

En realidad muy pocas veces podremos aplicar el método anterior a nuestros datos porque los nombres pueden contener apellidos compuestos como los mostrados en el primer ejemplo de este artículo. Para resolver este tema no hay otra manera más que crear una función VBA que haga la separación de dichos apellidos y poder considerarlos como una sola unidad.

Pero debo ser claro, los apellidos compuestos que podemos detectar fácilmente son aquellos que comienzan por palabras como “de”, “del”, “la”, “las”, “los”, “san”. Si el apellido no contiene estas palabras, será prácticamente imposible saber si dos o más palabras forman un solo apellido. La función VBA (UDF) que nos ayudará a separar este tipo de apellidos compuestos es la siguiente:

Function SEPARARAPELLIDOS(rng As Range) As String

Dim nombreArr() As String
Dim nuevaCadena As String
Dim i As Integer

'Dvidir el nombre por palabras en un arreglo
nombreArr = Split(Trim(rng.Value))

'Analizar cada palabra dentro del arreglo
For i = 0 To UBound(nombreArr)
    Select Case LCase(nombreArr(i))
        
        'Palabras que forman parte de un apellido compuesto
        'Agregar nuevas palabras separadas por una coma
        Case "de", "del", "la", "las", "los", "san"
            'Insertar espacio en blanco
            nuevaCadena = nuevaCadena & nombreArr(i) & " "
        Case Else
            'Insertar caracter delimitador
            nuevaCadena = nuevaCadena & nombreArr(i) & "@"
    
    End Select
Next

'Remover el último caracter delimitador de la cadena
If Right(nuevaCadena, 1) = "@" Then
    nuevaCadena = Left(nuevaCadena, Len(nuevaCadena) - 1)
End If

SEPARARAPELLIDOS = nuevaCadena

End Function

El objetivo de la función es colocar un carácter delimitador (@) para hacer la separación entre cada palabra, pero dentro de su análisis omitirá las palabras definidas como conectores, para las cuales insertará un espacio en blanco en lugar del carácter delimitador. Observa que en la línea 16 del código se encuentran las palabras que identifican el inicio de un apellido compuesto. Si deseas agregar alguna palabra adicional, deberás hacerlo separando la nueva palabra por una coma. Al aplicar esta función a nuestros datos obtenemos el siguiente resultado:

Cómo separar nombres y apellidos en diferentes celdas

La función ha detectado correctamente los apellidos compuestos que contienen las palabras definidas y los identifica como uno solo. Antes de hacer la separación de cada uno de ellos debemos copiar el valor de las celdas a otra columna:

Dividir nombres completos en nombres y apellidos en Excel

Esta acción es necesaria ya que utilizaremos dicha columna como la fuente de datos para el Asistente para convertir texto en columnas a quien indicaremos en el paso 2 que deseamos utilizar el carácter delimitador “@” de la siguiente manera:

Separar apellidos y nombre de una celda de Excel

Al terminar con todos los pasos del Asistente, tendremos el siguiente resultado:

Extraer nombre y apellidos de una celda

La función que hemos creado trabaja correctamente sin importar si los nombres comienzan por los apellidos. En la siguiente imagen puedes observar el resultado de ejecutar los mismos pasos anteriores pero con datos que tienen un orden diferente.

Cómo extraer el nombre y apellidos en Excel

La diferencia más importante es que para las primeras dos filas, el nombre se ha colocado bajo la Palabra 2. En este caso será necesario implementar una fórmula de Excel para evaluar si la Palabra 3 está vacía, y en su caso considerar el valor de la Palabra 2 como el nombre en lugar de ser apellido.

Casos de mayor complejidad

Ya hemos visto algunas alternativas para separar nombres y apellidos en Excel, pero existen casos en los que ninguna opción podrá hacer la separación correcta. Me refiero a esos casos donde existe más de una palabra para definir alguno de los apellidos o el nombre mismo. Por ejemplo, considera los siguientes datos:

Separar nombres y apellidos en una celda a varias celdas

Después de aplicar nuestra función VBA y separar la información por columnas, notamos que todos los nombres fueron divididos en cuatro palabras pero la parte compleja es detectar que para el primer nombre la Palabra 1 y la Palabra 2 forman el nombre de la persona. Que para el segundo nombre la Palabra 3 y la Palabra 4 son un apellido compuesto y para el último nombre la Palabra 2 y la Palabra 3 forman un apellido compuesto.

No existe función ni método en Excel que sea capaz de hacer esta distinción de una manera simple. Es por eso que es importante analizar los datos y aplicar el método que mejor aplique para la mayoría de los casos y resolver manualmente las excepciones. Por supuesto que todos estos problemas se evitarían si se implementara un sistema de captura de datos adecuado y no dejar que Excel haga la separación de nombres y apellidos. Pero si no hay otra alternativa, considera utilizar los métodos presentados en esta ocasión para separar correctamente la mayor cantidad de datos posibles.

Dejo el archivo de trabajo que utilicé para los ejemplos de la función VBA de manera que puedas implementarla en tus propios libros y comenzar a separar nombres y apellidos en Excel.

Artículos relacionados
Dividir texto en columnas
Obtener las iniciales de un nombre

36 comentarios en “Cómo separar nombres y apellidos en Excel

  1. Aquiles

    Excelente articulo, la verdad que me ayudo muchísimo. Seguí así aportando mas.

  2. Leovardo

    Excelente herramienta, es importante saber que existe, para así aplicarla cuando la requiramos.
    Agradecido de antemano, por apoyarnos con sus experiencias.

  3. milthon

    Genial, muy bueno.

  4. Wilmer Carias

    Moises,

    Buen dia, podrias ayudarme o enseñarme como crear un funcion BVA (UDF)
    por favor.

  5. José Manuel Piscoya Manrique

    Me ayudo mucho este artículo. gracias.

  6. Jorge

    Como resolver una situación a la inversa?
    Es decir si en una hoja de Excel tengo en una columna el apellido paterno, en otra el apellido materno y en otra el nombre
    y requiero que de estas tres columnas se construya el nombre completo para registrarlo en una celda diferente

  7. Wilfredo

    ES BUENO YA UNO NO SE COMPLICA CON FUNCION EXTRAER

  8. Aillen

    Muy buen articulo, me facilito una tarea del trabajo
    Gracias..!!

  9. sergio

    una aportación mas, gracias de antemano por valioso apoyo, que dios te bendiga mi amigo

  10. NELSON

    GRACIAS POR EL APOYO QUE ME BRINDA ME AYUDA BASTANTE

  11. ricardo castellanos

    excelente articulo como todos los demás, gracias por los aportes son muy útiles y nos ayudan a conocer mejor todo lo que se puede realizar con excel. gracias

  12. Teresa

    Excel ente (siguiendo las formulas, hay que unir estas dos palabras, jijiji) Gracias por la información. Buen trabajo!!!!

  13. Carlos Chavez

    Excelente aportación, gracias.

  14. Arturo vega

    Muy buen aporte, me servirá para complementar otra rutina. Muy util. Gracias.

  15. DIANA PATRICIA HERRERA

    Realmente el artículo esta muy bien explicado y de mucha utilidad. Muchas gracias

  16. Tirso Riaño

    Sus Artículos, son de excelente utilidad, nos permite conocer cada vez mas los maravillosos usos de Excel. Gracias por tan loable labor.

  17. marco aurelio lasso

    Eres muy amable al compartir tus conocimientos de excel me sirven mucho.
    gracias

  18. vinicio

    Mil gracias por esas tutorias virtuales, aprendo cada día más y practico
    espero seguir recibiendo todas las novedades de Excel

  19. JAVIER

    Esta forma de separar nombre y apellido reduce mucho tiempo invertido cuando alguien juega con estos datos, Gracias!!!! esperando recibir de su parte mas información del cosmo de excel saludos!!!!!!

  20. Liliana Monn

    Muchas gracias por el dato! Estoy agradecida

  21. marie

    EXCELENTEEEEE!!!!!! MARAVILLOSO!!

  22. Nelson

    muy buen articulo!!! gracias por tu generoso aporte

  23. virginia

    muchas gracias por el envio y espero seguir recibiendo los tutoriales, felicitaciones

  24. Orlando Álvarez García

    Buenas noches Moisés. Gracias por compartir de forma tan clara y precisa estas funciones. Esperaré ansioso los siguientes correos.

  25. Karina

    Excelente aportacion!! Me es de mucha utilidad q existe una forma de separar lo apellidos compuestos…

  26. andres

    ME AGRADA MUCHÍSIMO EXCEL TOTAL, ESTÁ MUY INTERESANTE Y ME ESTÁ DEJANDO MUCHA ENSAÑANZA

  27. Miguel

    GRACIAS POR LA AYUDA HA SIDO DE MUCHO INTERÉS

  28. Jorge Benavides

    Moises esta tu ayuda realmente me sirve de mucho, aunque debo ser honesto, la verdad es que no entendí como creaste la funcion VBA (UDF), pero igual te agradezco que nos envies el archivo para poder trabajar en base a ello.

  29. Nalda

    Felicitaciones!! muchísimas gracias por la ayuda, me ha servido mucho el Excel.

  30. Nestor

    Excelente!
    buenísima información.
    Agregando un poco al buen post, creo que en la parte compleja para aquellos que no sabemos VBA, lo mas simple es usar la función concatenar.
    Gracias.

  31. Francisco Goodin

    Excelente… no sabes las horas que nos ahorraste aca !!!! saludos desde Panamá

  32. Cesar Martinez

    muy buen post me ayudaste bastante.

  33. Esjhani

    Muchas gracias, me fue de utilidad saber que existe la forma sencilla de separar los apellidos en Excel

  34. Julio

    Gracias Moises me fue muy util!