Macro para separar apellidos compuestos en Excel

Compatibilidad: Excel 365 2021 2019 2016

Cuando necesitamos separar de una celda los apellidos, resulta imposible debido a los apellidos compuestos, para ello necesitamos una macro para separar apellidos compuestos en Excel.

Macro para separar apellidos compuestos en Excel

Mediante las macros podemos identificar si el apellido es compuesto al incluir el conector o prefijo: "de", "del", "de la", "de los", "la", "las", "los", "san", "y", "-", etc. Reemplazando el espacio por un carácter especial, posteriormente aplicamos texto en columnas.. Según el idioma se puede ampliar:

- Alemán: Am, Aus'm, Vom, Zum, Zur.

- Francés: La, Le, Du, Des, D’, de.

- Holandés: Ver, De, Den, op de, ter, Van, Van der, ten, Van 't.

- Italiano: A, D', Da, De, Del, Della, Di, Li, Lo.

- Inglés: D', De, De la, Du, Le, Van, Von.

- Portugués: Da, Do, Das, Dos, De.

En la Columna A se encuentra el nombre de nuestros clientes y en la columna B sus dos apellidos y deseamos separar los apellidos, teniendo en cuenta los apellidos compuestos.

AB
1NombreApellidos
2RamónPérez de Ayala y Fernández
3JoaquínRicardo-García Ruiz
4Mariano Joséde Larra y Sánchez de Castro
5RamónGómez de la Serna y Puig
6Miguelde la Quadra Salcedo
7Maríade los Santos Granados
8Rosade las Heras Ramos
9AnaPérez San Fernando
  • CREAR LA FUNCIÓN

  1. Con Excel abierto.

  2. Pulsar la tecla Alt y mantener pulsada / Pulsar la tecla F11. Mostrará el editor de Visual Basic.

  3. Ir a: Barra de Menú / Insertar / Módulo. Mostrará la ventana del módulo donde escribimos la función.

  4. Escribir el código:

    Function ApellidoCompuesto(MiTexto As String) As String

    Dim Apellido() As String

    Dim NuevoApellido As String

    Dim i As Integer

    Apellido = Split(Trim(MiTexto))

    For i = 0 To UBound(Apellido)

    Select Case LCase(Apellido(i))

    Case "de", "del", "de la", "de los", "la", "las", "los", "san", "y", "-"

    NuevoApellido = NuevoApellido & Apellido(i) & " "

    Case Else

    NuevoApellido = NuevoApellido & Apellido(i) & "/"

    End Select

    Next

    If Right(NuevoApellido, 1) = "/" Then

    NuevoApellido = Left(NuevoApellido, Len(NuevoApellido) - 1)

    End If

    ApellidoCompuesto = NuevoApellido

    End Function

    - "/". Caracter que insertará entre apellidos.

    - Conectores de unión: "de", "del", "de la", "de los", "la", "las", "los", "san", "y", "-"

  5. Guardar el libro con la extensión *.xlsm. Libro habilitado para macros.

  • INSERTAR FUNCIÓN

  1. Clic sobre la celda C2. Celda donde insertar la función.

  2. Ir a: Cinta de opciones / Pestaña: Fórmulas / Grupo: Biblioteca de funciones / Insertar función; O también, Barra de fórmulas / Insertar función. Mostrará la ventana de Insertar función.

    Ventana insertar función, con la función definida por el usuario: ApellidoCompuesto
  3. Ir a: O seleccionar una categoría / Seleccionar: Definida por el usuario.

  4. Ir a: Seleccionar una función / Clic sobre ApellidoCompuesto. Nombre de la función insertada en la macro para la función.

  5. Pulsar el botón Aceptar. Cierra la ventana y muestra la ventana de argumentos de la función.

  6. Ir a: MiTexto / Clic sobre la celda B2. Celda con los apellidos que deseamos separar.

  7. Pulsar el botón Aceptar. Cierra la ventana e inserta la función, mostrando el delimitador / entre apellidos.

    Hoja Excel con celda C2 mostrando el valor de la función Pérez/de Ayala/y Fernandez
  8. Copiar la celdas B2. Copia con la función.

  9. Seleccionar el rango B3:B9 / Pegar la función. Incluyendo la función en el rango.

  10. PEGAR COMO VALOR. Seleccionar el rango B2:B9. Necesario para aplicar posteriormente texto en columnas.

  11. Botón derecho / Copiar. Copiar el rango.

  12. Clic sobre la celda B2. Celda desde donde pegar el valor.

  13. Botón derecho / Pegado especial / Pegar como valor.

    Hoja Excel con celda C2 mostrando el valor Pérez/de Ayala/y Fernandez
  • SEPARAR APELLIDOS

  1. Seleccionar el rango B3:B9. Rango al que separar los apellidos.

  2. Ir a: Cinta de opciones / Pestaña: Datos / Grupo: Herramientas de de datos / Texto en columnas . Mostrará el asistente de conversión.

    Asistente de conversión: Tipo delimitador
  3. Clic sobre el botón de opciones: Delimitado. Tipo deseado al no tener un número de caracteres único por donde separar.

  4. Pulsar el botón Aceptar. Cierra la ventana y continua con el asistente.

    Asistente de conversión: Separador Otros /
  5. Ir a: Separadores / Activar la casilla: Otros y Escribir: /. Símbolo insertado por la función por donde separar.

  6. Pulsar el botón Siguiente. Cierra la ventana y continua con el asistente.

    Asistente de conversión: Destino D2
  7. Ir a: Destino / Clic sobre la celda E2. Desde donde separará en columna los apellidos.

  8. Pulsar el botón Finalizar. Cierra la ventana y aplica el texto en columnas.

    Hoja Excel: celda D2= Pérez; E2= de Ayala; F2=y Fernández
Nivel de dificultad: Experto VBA-Macros Excel Experto VBA - Macros

7 comentarios en “Macro para separar apellidos compuestos en Excel

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.