Formula di Excel: ottieni il cognome dal nome -

Sommario

Formula generica

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

Sommario

Se hai bisogno di estrarre il cognome da un nome completo, puoi farlo con questa formula piuttosto complessa che utilizza diverse funzioni. Nella forma generica della formula (sopra), il nome è un nome completo, con uno spazio che separa il nome dalle altre parti del nome.

Nell'esempio, la cella attiva contiene questa formula:

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

Spiegazione

Al centro, questa formula utilizza la funzione DESTRA per estrarre i caratteri partendo da destra. Le altre funzioni che compongono la parte complessa di questa formula fanno solo una cosa: calcolano quanti caratteri devono essere estratti.

Ad un livello elevato, la formula sostituisce l'ultimo spazio nel nome con un asterisco "*" e quindi utilizza TROVA per determinare la posizione dell'asterisco nel nome. La posizione viene utilizzata per calcolare quanti caratteri estrarre con DESTRA.

In che modo la funzione sostituisce solo l'ultimo spazio? Questa è la parte intelligente.

Allaccia le cinture, la spiegazione diventa un po 'tecnica.

La chiave di questa formula è questo bit:

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

Che fa l'effettiva sostituzione dell'ultimo spazio con "*".

SOSTITUISCI ha un quarto argomento (opzionale) che specifica quale "istanza" del testo di ricerca deve essere sostituita. Se non viene fornito nulla per questo argomento, tutte le istanze vengono sostituite. Tuttavia, se, ad esempio, viene fornito il numero 2, viene sostituita solo la seconda istanza. Nello snippet precedente, l'istanza viene calcolata utilizzando il secondo SOSTITUZIONE:

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

Qui, la lunghezza del nome senza spazi viene sottratta dalla lunghezza effettiva del nome. Se c'è un solo spazio nel nome, produce 1. Se ci sono due spazi, il risultato è 2 e così via.

Nel nome di esempio in B4, ci sono due spazi nel nome, quindi otteniamo:

15-13 = 2

E due è usato come nel numero di istanza:

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

che sostituisce il secondo spazio con "*". Il nome quindi assomiglia a questo:

"Susan Ann * Chang"

La funzione TROVA quindi prende il sopravvento per capire dove si trova "*" nel nome:

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

Il risultato è 10 (* è nella decima posizione) che viene sottratto dalla lunghezza totale del nome:

LEN(B4)-10

Poiché il nome è di 15 caratteri, abbiamo:

15-10 = 5

Il numero 5 è usato da RIGHT in questo modo:

=RIGHT(B4,5)

Che si traduce in "Chang"

Come puoi vedere, è molto lavoro sopra calcolare quel semplice 5!

Gestione di spazi incoerenti

Gli spazi aggiuntivi causeranno problemi con questa formula. Una soluzione è usare prima la funzione TRIM per ripulire le cose, quindi utilizzare la formula di analisi.

Articoli interessanti...