Trovare l’ultima occorrenza di un carattere in una cella
(Articolo aggiornato dopo la pubblicazione per un errore nella formula)
Vi capita mai di dover trovare l’ultima occorrenza di un particolare carattere in una cella? Ad esempio l’ultima virgola o l’ultimo spazio? In Excel, purtroppo, non c’è una funzione che permetta di farlo, al massimo è possibile trovare la prima occorrenza.
Ecco quindi una formula che vi permette di risolvere questo problema. Partiamo dal testo base posto, per comodità, nella solita cella A1. Il testo è “Questa è Sparta!” e quello che vogliamo trovare è l’ultimo spazio. Ed ecco la formula
=RICERCA(CODICE.CARATT(254);SOSTITUISCI(A1;" ";CODICE.CARATT(254);LUNGHEZZA(A1)-LUNGHEZZA(SOSTITUISCI(A1;" ";""))))
Posta, ad esempio, in B2 vi restituirà 9.
Vediamo come funziona. RICERCA, come spiegato qui, serve a trovare una stringa in un testo, nel nostro caso lo spazio. Ma se usassimo la funzione da sola troveremmo il primo spazio e non l’ultimo. Quindi dobbiamo passare, come valore in cui cercare, una stringa modificata in cui siano stati tolti tutti gli spazi tranne l’ultimo.
Per farlo usiamo la funzione SOSTITUISCI che, come vi ho detto in passato, richiede 4 parametri, l’ultimo dei quali viene usato per sapere quale occorrenza della stringa trovata andrà sostituita, nel nostro caso l’ultimo spazio. Con cosa lo sostituiamo? Qui entra in gioco CODICE.CARATT, questa funzione che vi spiegherò in un altro articolo ci permette di inserire un carattere rappresentato dal suo codice ASCII, nel nostro caso il carattere 254 che rappresenta un blocco bianco simile allo spazio e che difficilmente viene usato nei normali testi.
Per sapere in quale posizione dobbiamo sostituirlo usiamo la differenza fra il risultato ottenuto da LUNGHEZZA(A1) che è di 16 e da LUNGHEZZA a cui passiamo, come parametro, un altro SOSTITUISCI, in questo caso sostituiamo tutti gli spazi con un doppio apice che rappresenta il niente, il risultato è 14. Quindi, 16-14=2.
Ora dobbiamo sostituire lo spazio con il codice 254. Vediamo come si è sviluppata la formula sino ad ora passo per passo con i cambiamenti in grassetto (come se fosse un’espressione scritta sulla lavagna).
=RICERCA(CODICE.CARATT(254);SOSTITUISCI("Questa è Sparta!";" ";CODICE.CARATT(254);LUNGHEZZA("Questa è Sparta!")-LUNGHEZZA(SOSTITUISCI("Questa è Sparta!";" ";""))))
=RICERCA(CODICE.CARATT(254);SOSTITUISCI("Questa è Sparta!";" ";CODICE.CARATT(254);16-LUNGHEZZA(SOSTITUISCI("Questa è Sparta!";" ";""))))
=RICERCA(CODICE.CARATT(254);SOSTITUISCI("Questa è Sparta!";" ";CODICE.CARATT(254);16-LUNGHEZZA("QuestaèSparta!")))
=RICERCA(CODICE.CARATT(254);SOSTITUISCI("Questa è Sparta!";" ";CODICE.CARATT(254);16-14))
In questi ultimi passaggi, per farvi capire dove viene sostituito lo spazio con il codice carattere 254 metterò un blocco nero
=RICERCA(█;SOSTITUISCI("Questa è Sparta!";" ";█;2))
=RICERCA(" ";"Questa è█Sparta!")
Ed ecco che il risultato della formula sarà 9, ovvero la posizione dell’ultimo spazio rappresentata ora dal nostro blocco nero.
Tenete bene a mente come funziona questa formula perché sono sicuro che vi servirà spesso. Lo spazio può essere sostituito con quello che volete, una virgola, un punto o un qualunque altro carattere, l’importante e sostituirlo in tutti i punti in cui viene rappresentato nella formula, per farvi capire, nelle zone indicate in rosso
=RICERCA(CODICE.CARATT(254);SOSTITUISCI("Questa è Sparta!";" ";CODICE.CARATT(254);LUNGHEZZA("Questa è Sparta!")-LUNGHEZZA(SOSTITUISCI("Questa è Sparta!";" ";""))))
Spero di essere stato chiaro, ma se avete domande chiedete pure
[random_sc]
pagina salvata tra i preferiti! 🙂
Grazie! 🙂 … è una variante della prima parte della formula che ho scritto per te l’altro giorno, oggi esce la seconda metà 🙂
Grazie.