¿Cómo separar nombres y apellidos en Excel?
Aprender cómo separar nombres de apellidos en Excel es muy importante, disponer de una base de datos fiable es crucial ya que esta información nos servirá para la elaboración de informes y análisis, pero también es cierto que es una tarea muy compleja.
Dificultad para separar apellidos y apellidos
La mayor dificultad para segmentar apellidos y apellidos en Excel es el número de posibles variaciones en los nombres de las personas, lo que hace necesario analizar cada caso en particular para utilizar el procedimiento adecuado. La solución no es tan simple como decir con 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:
Es muy fácil para ti y para mí saber que todos los nombres de este ejemplo son uno y el último, pero ¿cómo le decimos a Excel que "del Toro" y "de la Fuente" son apellidos? Excel no puede hacer esta distinción por sí solo, por lo que necesita orientación específica.
El caso más simple de separación.
Si, después de revisar los datos, comprende que para la mayoría de los registros tiene nombres de una sola palabra y apellidos de una sola palabra, le recomiendo que utilice el Asistente para convertir texto en columnas, que agregará todas las palabras en una columna diferente.
Este asistente se encuentra en la pestaña Detalles dentro del grupo herramientas de datos y precisamente en el paso 2 del proceso podrás seleccionar el Espacio como carácter delimitador para hacer la partición en varias columnas. Al finalizar la ejecución del asistente obtendrá un resultado similar al siguiente:
Tenga en cuenta que no importa cuántas palabras contenga el nombre, el asistente colocará cada palabra en otra columna. Esta solución es genial por miedo a que la mayoría de nombres y apellidos estén formados por una sola palabra ya que solo tendrás que ajustar manualmente aquellos nombres que tengan más de tres palabras ya que habrá columnas extra ocupadas por el asistente en esos casos.
Una ventaja de este método es que no importa si los datos comienzan con los apellidos o los nombres, porque las palabras se separan de la misma manera. Lo que es sumamente importante es que todos los registros tengan la misma estructura, es decir, todos comienzan con un apellido o todos comienzan con un nombre o de lo contrario tendrá un caso más difícil de resolver. .
Apellidos compuestos separados
De hecho, rara vez podremos aplicar el método anterior a nuestros datos ya que los nombres pueden contener apellidos compuestos como se ilustra en el primer ejemplo de este artículo. Para solucionar este problema, no queda otra que crear una función VBA que separe estos apellidos y poder considerarlos como una sola unidad.
Pero debo ser claro, los apellidos compuestos que podemos detectar fácilmente son aquellos que comienzan con palabras como "de", "del", "la", "las", "los", "san". Si estas palabras no están en el apellido, será casi imposible saber si dos o más palabras equivalen a un apellido. La siguiente es la función VBA (UDF) que nos ayudará a separar este tipo de apellido compuesto:
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 objeto de la función es poner un carácter delimitador (@) para separar cada palabra, pero dentro de su análisis omite las palabras definidas como conjunciones, y reemplaza el carácter delimitador por un espacio en blanco. Tenga en cuenta que la línea 16 del código contiene las palabras que identifican el comienzo de un apellido compuesto. Si desea agregar palabras adicionales, deberá hacerlo separando la nueva palabra con una coma. Aplicando esta función a nuestros datos se obtiene el siguiente resultado:
La función pudo detectar los apellidos compuestos que contenían las palabras definidas e identificarlos como uno solo. Antes de separar cada una de ellas, necesitamos copiar el valor de las celdas a otra columna:
Esta acción es necesaria porque usaremos esta columna como fuente de datos para el Asistente para convertir texto a columnas si indicamos en el paso 2 que queremos usar el caracter delimitador "@" de la siguiente manera:
Cuando hayamos completado todos los pasos del Asistente, tendremos el siguiente resultado:
La función que hemos creado funciona correctamente independientemente de si los nombres comienzan con los apellidos. En la siguiente imagen puedes ver el resultado de ejecutar los mismos pasos que antes pero con los datos en diferente orden.
La diferencia más importante es que el nombre se coloca debajo de la Palabra 2 para los dos primeros conjuntos. En este caso será necesario aplicar la fórmula de Excel para determinar si la Palabra 3 está vacía, en cuyo caso considerar el valor de la Palabra 2 como el nombre en lugar de un apellido.
Casos más complejos
Ya hemos visto algunas otras opciones para segmentar apellidos y apellidos en excel, pero hay casos en los que ninguna de las opciones podrá hacer la separación correcta. Me refiero a aquellos casos en los que hay más de una palabra para definir alguno de los apellidos o el propio nombre. Por ejemplo, considere los siguientes detalles:
Después de implementar nuestra función VBA y separar la información por columna, notamos que todos los nombres se dividieron en cuatro palabras, pero la parte difícil es detectar que para el primer nombre, la Palabra 1 y la Palabra 2 forman el nombre humano. Que para el segundo nombre es la Palabra 3 y la Palabra 4 y para el apellido la Palabra 2 y la Palabra 3 forman un apellido compuesto.
No existe una función o método en Excel que pueda hacer esta distinción de forma sencilla. Por eso es importante analizar los datos y aplicar el método que mejor funcione en la mayoría de los casos y resolver las excepciones manualmente. Por supuesto, todos estos problemas se evitarían implementando un sistema de captura de datos adecuado y no permitiendo que Excel separe nombres y apellidos. Pero si no hay otra opción, considere usar los métodos presentados esta vez para separar correctamente la mayor cantidad de datos posible.
Dejo el archivo de trabajo que usé para los ejemplos de funciones de VBA para que puedan aplicarlo en sus propios libros y comenzar segmentar apellidos y apellidos en excel.
Artículos Relacionados
Dividir el texto en columnas.
Encuentra letras mayúsculas de nombre
Deja una respuesta