Fórmula de Excel: obtener el apellido del nombre -

Tabla de contenido

Fórmula genérica

=RIGHT(name,LEN(name)-FIND("*",SUBSTITUTE(name," ","*",LEN(name)-LEN(SUBSTITUTE(name," ","")))))

Resumen

Si necesita extraer el apellido de un nombre completo, puede hacerlo con esta fórmula bastante compleja que utiliza varias funciones. En la forma genérica de la fórmula (arriba), el nombre es un nombre completo, con un espacio que separa el nombre de otras partes del nombre.

En el ejemplo, la celda activa contiene esta fórmula:

=RIGHT(B4,LEN(B4)-FIND("*",SUBSTITUTE(B4," ","*",LEN(B4)-LEN(SUBSTITUTE(B4," ","")))))

Explicación

Básicamente, esta fórmula utiliza la función DERECHA para extraer caracteres comenzando por la derecha. Las otras funciones que componen la parte compleja de esta fórmula solo hacen una cosa: calculan cuántos caracteres deben extraerse.

En un nivel alto, la fórmula reemplaza el último espacio del nombre con un asterisco "*" y luego usa FIND para determinar la posición del asterisco en el nombre. La posición se usa para calcular cuántos caracteres extraer con DERECHA.

¿Cómo reemplaza la función solo el último espacio? Ésta es la parte inteligente.

Abróchate el cinturón, la explicación se vuelve un poco técnica.

La clave de esta fórmula es este bit:

SUBSTITUTE(B4," ","*",LEN(B4)-LEN(SUBSTITUTE(B4," ","")))

Que hace el reemplazo real del último espacio con "*".

SUBSTITUTE tiene un cuarto argumento (opcional) que especifica qué "instancia" del texto de búsqueda debe reemplazarse. Si no se proporciona nada para este argumento, se reemplazan todas las instancias. Sin embargo, si, digamos, se proporciona el número 2, solo se reemplaza la segunda instancia. En el fragmento anterior, la instancia se calcula utilizando el segundo SUSTITUTO:

LEN(B4)-LEN(SUBSTITUTE(B4," ",""))

Aquí, la longitud del nombre sin espacios se resta de la longitud real del nombre. Si solo hay un espacio en el nombre, produce 1. Si hay dos espacios, el resultado es 2, y así sucesivamente.

En el nombre de ejemplo en B4, hay dos espacios en el nombre, por lo que obtenemos:

15 - 13 = 2

Y dos se usa como en el número de instancia:

SUBSTITUTE(B4," ","*",2)

que reemplaza el segundo espacio con "*". El nombre entonces se ve así:

"Susan Ann * Chang"

Luego, la función ENCONTRAR se encarga de averiguar dónde está el "*" en el nombre:

FIND("*", "Susan Ann*Chang")

El resultado es 10 (el * está en la décima posición) que se resta de la longitud total del nombre:

LEN(B4)-10

Como el nombre tiene 15 caracteres, tenemos:

15-10 = 5

El número 5 es usado por DERECHA así:

=RIGHT(B4,5)

Lo que da como resultado "Chang"

Como puede ver, ¡cuesta mucho trabajo calcular ese simple 5!

Manejo de espacios inconsistentes

Los espacios adicionales causarán problemas con esta fórmula. Una solución es usar la función TRIM primero para limpiar las cosas y luego usar la fórmula de análisis.

Articulos interesantes...