Saltar al contenido

Separar nombre y apellidos compuestos


JoseCAstillo

Recommended Posts

Hola que tal tengo una dificultad al separar nombres y apellidos compuestos de una lista de trabajadores que tengo , he probado con la opción que tiene excel pero solo separa los espacios (algunos apellidos y nombres tienen más de un espacio)

Acá les adjunto mi archivo

Pd

La página no me deja subir el archivo pero en la parte inferior les dejo el link para descargar xd

 

Este es el link

>>DESCARGAR ARCHIVO<<

Enlace a comentario
Compartir con otras webs

Esta macro separa el 99% de los nombres con un alto grado de fiabilidad.

Los nombres no separados se resaltan en rojo en la columna D.


Sub Separar()
Application.ScreenUpdating = False
For x = 2 To Range("B" & Rows.Count).End(xlUp).Row
   nombre = Range("C" & x)
   nombre = Replace(nombre, " DE LOS ", "*DE*LOS*")
   nombre = Replace(nombre, " DE LAS ", "*DE*LAS*")
   nombre = Replace(nombre, " DE LA ", "*DE*LA*")
   nombre = Replace(nombre, " DEL ", "*DEL*")
   nombre = Replace(nombre, " DE ", "*DE*")
   nombre = Replace(nombre, " LA ", "*LA*")
   partes = Split(nombre, " ")
   For p = 0 To UBound(partes)
      partes(p) = Replace(partes(p), "*DE*LOS*", " DE LOS ")
      partes(p) = Replace(partes(p), "*DE*LAS*", " DE LAS ")
      partes(p) = Replace(partes(p), "*DE*LA*", " DE LA ")
      partes(p) = Replace(partes(p), "*DEL*", " DEL ")
      partes(p) = Replace(partes(p), "*DE*", " DE ")
      partes(p) = Replace(partes(p), "*LA*", " LA ")
   Next
   If UBound(partes) > 3 Then
      Range("D" & x).Interior.Color = vbRed
      rojos = rojos + 1
   End If
   If UBound(partes) = 3 Then
      Range("E" & x) = partes(0) & " " & partes(1)
      Range("F" & x) = partes(2) & " " & partes(3)
   End If
   
   If UBound(partes) = 2 Then
      Range("E" & x) = partes(0)
      Range("F" & x) = partes(1) & " " & partes(2)
   End If
   
   If UBound(partes) = 1 Then
      Range("E" & x) = partes(0)
      Range("F" & x) = partes(1)
   End If
Next
MsgBox rojos & " NOMBRES NO CONVERTIDOS", vbCritical
End Sub

 

Enlace a comentario
Compartir con otras webs

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.