Si trabajas usando Excel, o es parte de tu vida cotidiana, seguro necesitarás conocer este truco para separar nombres y apellidos, y así ahorrar tiempo. A continuación te contamos cómo hacerlo paso a paso para ordenar tus planillas.
La dificultad principal de este proceso es que las fórmulas de Excel no están preparadas para comprender la cantidad de variantes que existen en los nombres y apellidos de las personas, por lo cual es necesario analizar cada caso en específico para encontrar el procedimiento adecuado.
Cómo separar nombres y apellidos de forma fácil
Si después de hacer una revisión de los datos te das cuenta que en la mayoría de los casos tenes nombres de una sola palabra así como apellidos de una sola palabra, entonces te recomendamos utilizar el asistente para convertir texto en columnas. Esta función podes encontrarla en Datos y Herramientas de Datos. A continuación podrás elegir el espacio como separador entre los datos que se pondrán en diferentes columnas. 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.
Cómo separar los apellidos compuestos
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 fórmula más adecuada es:
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"
Una vez colocada, esta función nos arrojará un resultado similar a "guillermo@deltoro": el @ nos servirá para separar nombres de apellidos, por lo cual deberemos aplicar la misma fórmula que en el paso anterior. A través de Datos, Herramientas de Datos y el Asistente para convertir textos en columnas, elegiremos como caracter delimitador el @.