Saltar al contenido
Isildur_1

Colocar coma después de apellido

Recommended Posts

Hola, muy buenos días. Tengo una consulta en Excel que quería saber si me podían ayudar.

Tengo una lista de nombre con apellidos y necesito colocarle una coma después de cada apellido.

Es decir. Pasar de "PEREZ DIEGO ALBERTO" a "PEREZ, DIEGO ALBERTO".

Es eso. Adjunto Excel, aunque no hay mucho más que eso. 

Muchas gracias de antemano!  ;)

Prueba Coma.xlsx

Compartir este mensaje


Enlace a mensaje
Compartir con otras webs

Hola Isildur_1

Hallar  la primera palabra y colocar una coma, es fácil, si todos tus casos son similares no hay problema, es decir,  No existe una función de Excel que indique cual es nombre y cual es apellido,  como bien sabes, en algunos casos un nombre también puede ser apellido, además está el caso de los apellidos compuestos.

Si tu lista tiene las mismas condiciones que las dos muestras que presentaste, esto te puede servir:

=IZQUIERDA(B3,HALLAR(" ",B3)-1)&", "&DERECHA(B3,LARGO(B3)-HALLAR(" ",B3,1))

**Mi separador de argumentos es la coma, si en tu caso es otro, corriges.

saludos,

Silvia

 

 

 

 

Compartir este mensaje


Enlace a mensaje
Compartir con otras webs

Silvia, muchas gracias por la ayuda.

Ahora que estoy viendo la lista tengo otros problemas.

Existen apellidos dobles o la persona tiene 3 nombre.

Y lo único que distingue el appellido del nombre es la mayúscula.

Ejemplo. PEREZ GIMENEZ Mario Alberto

PEREZ Diego Alberto Matias

etc.

Existe alguna soluciòn para eso?

Muchas gracias, Silvia.

Compartir este mensaje


Enlace a mensaje
Compartir con otras webs
Hace 43 minutos , Haplox dijo:

Qué tal @Isildur_1,

Te dejo una solución, las fórmulas están en las celdas de la columna E

Copia de Prueba Coma.xlsx

Ouch... @Isildur_1 y @Silvia Habéis contestados todos mientras subía el fichero

Haplox, gracias por estar.

No sè si viste mi segundo mensaje, y hablo de los apellidos compuestos y nombres compuestos. Solo puedo diferenciar Apellidos y Nombres por Mayuscula y Minuscula.

 

Ej: PEREZ GIMENEZ, Diego Rodrigo

PEREZ, Diego

Etc.

Con este nuevo problema la fórmula que me adjuntas no cuaja totalmente.

Muchas gracias por ayudarme.

Compartir este mensaje


Enlace a mensaje
Compartir con otras webs

hola, a todos !

Hace 2 horas, Isildur_1 dijo:

lo único que distingue el appellido del nombre es la mayúscula.

Ejemplo. PEREZ GIMENEZ Mario Alberto

PEREZ Diego Alberto Matias

etc.

serviría una función personalizada ?, p.ej. si el nombre está en [B2], donde quieras el resultado: =comaEnApellidos(b2)

Function comaEnApellidos(cadena As String) As String
' UDF para distinguir apellidos (mayusculas todas)  ' _
  y separar del nombre con una coma ' _
  R&D: Héctor Miguel Orozco Díaz (agosto-2017) '
  With CreateObject("vbscript.regexp")
    .IgnoreCase = False: .Global = True
    .Pattern = "([A-Z]+).? +([A-Z]{1}[a-z]+)"
    comaEnApellidos = .Replace(cadena, "$1, $2")
  End With
End Function

podrías convertir a procedimiento normal y aplicar a rangos extensos (?)

saludos,
hector.

Compartir este mensaje


Enlace a mensaje
Compartir con otras webs

hola, @GabrielRaigosa

(desafortunadamente) las TI tocan base en el idioma ingles y reconocer caracteres latinos y demas requiere de algunas vueltas de tuerca :(

(afortunadamente) sabiendo "que" es lo que podemos/debemos esperar (en la interaccion con usuarios diversos) podemos idear alternativas ;)

(ademas) la alternativa por formula requiere de (aun) mas vueltas de tuerca (y en algun momento llegara a no resultar tan conveniente ?)

p.ej. la alternativa de formulas en tu adjunto, en algunos casos antepone un espacio a la coma que debiera separar los apellidos del nombre (?)

para el caso de la UDF, es cuestion de analizar "que esperamos y queremos" y modificar el .Pattern
(elige o complementa/combina/modifica/... el que mas te convenga ?)

Function comaEnApellidos(cadena As String) As String
' UDF para distinguir apellidos (mayusculas todas)  ' _
  y separar del nombre con una coma ' _
  R&D: Héctor Miguel Orozco Díaz (agosto-2017) '
  With CreateObject("vbscript.regexp")
    .IgnoreCase = False: .Global = True
    .Pattern = "([A-Z]+).? +([A-Z]{1}[a-z]+)" ' <= el punto se omite '
'    .Pattern = "([A-Z.?]+) +([A-Z]{1}[a-z]+)" ' <= el punto se incluye '
'    .Pattern = "([A-ZÁ|É|ÍÓ|Ú]+).? +([A-Z]{1}[a-zá|é|í|ó|ú]+)" ' incluye -algunos- caracteres "especiales" '
    comaEnApellidos = .Replace(cadena, "$1, $2")
  End With
End Function

saludos,
hector.

Compartir este mensaje


Enlace a mensaje
Compartir con otras webs

¡hola de nuevo a todos!

Hace 6 horas, Héctor Miguel dijo:

la alternativa de formulas en tu adjunto, en algunos casos antepone un espacio a la coma que debiera separar los apellidos del nombre

Lo del "problema" del espacio de más, se podría solucionar con:

=SUSTITUIR(REEMPLAZAR(B3;COINCIDIR(1;INDICE(N(ABS(CODIGO(EXTRAE(B3;FILA(INDIRECTO("1:"&LARGO(B3)));1))-109,5)<13););)-2;0;",");" ,";", ")

¡Bendiciones!

Compartir este mensaje


Enlace a mensaje
Compartir con otras webs

Crear una cuenta o conéctate para comentar

Necesitas ser usuario para poder dejar un comentario

Crear una cuenta

Registrarse para una nueva cuenta en nuestra comunidad. ¡Es fácil!

Registrar una nueva cuenta

Conectarse

¿Ya tienes una cuenta? Conéctate aquí.

Conéctate ahora


×