Separar Nombres y Apellidos

Solo consultas sobre Funciones y Fórmulas Excel.

Reglas del Foro
1. Antes de hacer tu pregunta intenta con el buscador de este foro (muchas preguntas ya fueron respondidas antes!)
2. Si haces una nueva pregunta, es muy recomendable que adjuntes el ejemplo Excel para poder comprenderla mejor!
3. Realiza tu pregunta de forma clara, explicando bien cada paso de lo que haces y tendrás más probabilidad de respuesta!
Compartir en:
     

Separar Nombres y Apellidos

Notapor zato » 22 Ene 2007 18:35

Estimados señores, nuevamente busco su ayuda, tengo unha lista de nombres, que siempre finaliza en el apellido, quiero separar los nombres de los apellidos, lo unico que me complica las cosas es que hay nombres compuestos es decir hay resgistros con 1, 2 ó 3 nombres, como puedo hacer para generar una formula que me separe solo la ultima palabra???

La lista es por ejemplo:

Eugenio Torres
Martha Elisa Gomez
Pedro Jose Andres Perez
Jesus Herrera
Juan Eduardo Torres


Muchas gracias por su ayuda y bediciones.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
zato
Miembro Frecuente
Miembro Frecuente
 
Registrado: 25 Nov 2005 19:02

Re: Separar Nombres y Apellidos

Notapor Tavo77 » 22 Ene 2007 19:40

Para obtener la última palabra puedes usar la siguiente fórmula:
=+EXTRAE(I20;GL_F_Ultimo(I20;" ")+1;LARGO(I20))
donde GL_F_Ultimo(I20;" ") es la siguiente UDF:

Código: Seleccionar todo
Public Function GL_F_Ultimo(Texto As String, caracter As String) As Integer
    Dim inicio As Integer, largo As Integer, posicion As Integer
    inicio = 1
    largo = Len(Texto)
    Do While posicion < largo
        On Error GoTo ControlErrores
        posicion = Application.WorksheetFunction.FindB(caracter, Texto, inicio)
        inicio = posicion + 1
    Loop
ControlErrores:
    GL_F_Ultimo = posicion
End Function


Espero que esto te ayude con tu problema.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
Tavo77
Miembro Frecuente
Miembro Frecuente
 
Registrado: 25 Ago 2005 20:43
Ubicación: Costa Rica

Re: Separar Nombres y Apellidos

Notapor sailepaty » 23 Ene 2007 10:35

Suponiendo que la celda donde esta el nombre completo es A2, entonces la formula quedaria:

=SI(ESERROR(ENCONTRAR(" ",A2)),A2,DERECHA(A2,LARGO(A2)-ENCONTRAR("@",SUSTITUIR(A2," ","@",LARGO(A2)-LARGO(SUSTITUIR(A2," ",""))))))

Saludos
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
sailepaty
Miembro Frecuente
Miembro Frecuente
 
Registrado: 27 Oct 2004 12:31
Ubicación: Dallas, TX

Re: Separar Nombres y Apellidos

Notapor zato » 23 Ene 2007 14:32

Perfecto, muchas gracias ambas funcionan perfecto.
Lo que necesitaba.

Pero tengo una pregunta, no entiendo lo que hace tu formula sailepaty, especialmente porque usas el @, me podrí­as explicar la formula.

Muchas gracias nuevamente,
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
zato
Miembro Frecuente
Miembro Frecuente
 
Registrado: 25 Nov 2005 19:02

Re: Separar Nombres y Apellidos

Notapor sailepaty » 23 Ene 2007 15:20

Vamos por partes como decí­a Jack el destripador,

A2 = JUAN ANTONIO MANUEL PEREZ GONZALES

a) SUSTITUIR(A2," ","")
[tab]Esta parte de la formula devuelve el valor de A2 sin espacios
[tab][tab]JUANANTONIOMANUELPEREZGONZALES

b) LARGO(JUANANTONIOMANUELPEREZGONZALES) o LARGO(SUSTITUIR(A2," ",""))
[tab]Esta parte de la formula devuelve la cantidad de caracteres sin espacios del valor de A2
[tab][tab]30

c) LARGO(A2)
[tab]Esta parte de la formula devuelve la cantidad de caracteres del valor de A2
[tab][tab]34

d) LARGO(A2)-LARGO(SUSTITUIR(A2," ",""))
[tab]Analizando los puntos anteriores esto seria igual a: 34 - 30
[tab][tab]4

e) SUSTITUIR(A2," ","@",4)
[tab]Esta parte de la formula sustituye el último espacio por el signo @ que es poco común se encuentre en un listado de nombres
[tab][tab]JUAN ANTONIO MANUEL PEREZ@GONZALES

f) ENCONTRAR("@",JUAN ANTONIO MANUEL PEREZ@GONZALES)
[tab]Esta parte de la formula devuelve la posición del sigo @ en la cadena que regreso la formula anterior
[tab][tab]26

g) DERECHA(A2,34-26)
[tab]Finalmente la formula regresa la ultima palabra de la frase
[tab][tab]GONZALES

Me parece que con esta explicación podrás deducir la primera parte de la formula para atrapar el posible error.

Saludos
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
sailepaty
Miembro Frecuente
Miembro Frecuente
 
Registrado: 27 Oct 2004 12:31
Ubicación: Dallas, TX


Compartir en:
     

  • Anuncio
Manual Excel avanzado

Volver a Funciones y Fórmulas

¿Quién está conectado?

Usuarios navegando por este Foro: rolano y 5 invitados