Reggie ha una cella che contiene tre o più parole. (Il numero di parole potrebbe variare.) Ha bisogno di una formula che gli consenta di estrarre la prima parola della cella o l’ultima parola della cella. Ad esempio, se la cella contiene la frase “Reggie era qui nel 2012”, ha bisogno di una formula per estrarre “Reggie” e di una per estrarre “2012”.

Puoi estrarre entrambe le parole usando le formule. Estrarre la prima parola è relativamente semplice. Tutto quello che devi fare è trovare la posizione del primo spazio nella frase, quindi estrarre tutto ciò che si trova a sinistra. Se si presume che la frase sia in A1, si può usare la formula:

=LEFT(A1,FIND(" ",A1)-1)

In linea di principio, per ottenere l’ultima parola si può fare lo stesso, è solo più complicato trovare l’ultimo spazio nella stringa. Un modo per farlo è:

  1. Conta il numero di spazi. Cambia l’ultimo spazio con un carattere diverso (che non è altrove nella frase)

  2. Quindi trova quel “personaggio diverso”

  3. Prendi la parte della frase a destra di quel “carattere diverso”

Il “carattere diverso” che si può usare è il primo carattere ASCII (cioè, char (1)), che non è stampabile e molto improbabile che sia nella frase. Il numero di spazi può essere trovato prendendo la differenza tra la lunghezza della frase con la lunghezza della frase senza spazi (usando SOSTITUISCI per sostituire tutti gli spazi con la stringa nulla):

LEN(A1)-LEN(SUBSTITUTE(A1," ",""))

Quindi puoi sostituire char (1) per l’ultima occorrenza dello spazio:

SUBSTITUTE(A1," ",CHAR(1),LEN(A1)-LEN(SUBSTITUTE(A1," ","")))

Puoi quindi TROVARE la posizione del carattere (1) in quella stringa:

FIND(CHAR(1),SUBSTITUTE(A1," ",CHAR(1),LEN(A1)- LEN(SUBSTITUTE(A1," ",""))))

Il primo carattere dell’ultima parola è 1 carattere dopo questo:

1+ FIND(CHAR(1),SUBSTITUTE(A1," ",CHAR(1),LEN(A1)- LEN(SUBSTITUTE(A1," ",""))))

È quindi possibile utilizzare la funzione MID per estrarre la parte della stringa che inizia in questa posizione fino alla fine della stringa. (Non è necessario calcolare la lunghezza esatta. Se scegli un numero maggiore della lunghezza dell’ultima parola, verrà scelta solo l’ultima parola. Pertanto, puoi iniziare dalla posizione sopra ed estrarre il numero di caratteri in la stringa per assicurarti di averne abbastanza.):

=MID(A1,1+FIND(CHAR(1),SUBSTITUTE(A1," ",CHAR(1), LEN(A1)-LEN(SUBSTITUTE(A1," ","")))),LEN(A1))

Puoi anche, se preferisci, creare funzioni definite dall’utente per afferrare le parole che desideri. Afferrare la prima parola è facile:

Function FirstWord(c As String)

Dim arr

arr = Split(Trim(c), " ")

FirstWord = arr(LBound(arr))

End Function

La funzione utilizza la funzione Dividi per separare tutto ciò che si trova nella cella specificata, utilizzando il secondo parametro (“”) come delimitatore. Ogni elemento dell’array (arr) contiene quindi una parte della stringa originale. In questo caso, ciò che viene restituito è il primo elemento (specificato da LBound) dell’array, la prima parola.

Dato che le parole della frase vengono inserite in un array, puoi usare solo una leggera variazione sulla funzione per restituire l’ultima parola:

Function LastWord(c As String)

Dim arr

arr = Split(Trim(c), " ")

LastWord = arr(UBound(arr))

End Function

Si noti che, in sostanza, l’unico vero cambiamento nella funzione è l’uso di UBound invece di LBound. La funzione UBound specifica l’ultimo elemento dell’array. Puoi usare entrambe queste funzioni in un foglio di lavoro in questo modo:

=FirstWord(A1)

=LastWord(A1)

_Nota: _

Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (11984) si applica a Microsoft Excel 97, 2000, 2002 e 2003.

Puoi trovare una versione di questo suggerimento per l’interfaccia a barra multifunzione di Excel (Excel 2007 e versioni successive) qui: