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]


'. '
'; $customMessages[] = "Aiutami a far conoscere questo blog ad altre persone perché possa aiutare anche loro, condividi questo articolo su Facebook, Twitter, Google+ o Linkedin, non ti costa nulla e mi aiuterà a diffonderlo dandomi l'ispirazione per scrivere altri articoli."; $customMessages[] = 'Hai trovato questo blog utile o interessante? Lascia una tua opinione sul guestbook per farmi sapere cosa ne pensi e come possa migliorarlo.'; $customMessages[] = 'Sai che puoi iscriverti anche alla newsletter e ricevere le novità direttamente nella tua email? Iscriviti adesso, riceverai solo gli aggiornamenti e niente SPAM. Il tuo indirizzo, inoltre, non sarà condiviso con nessuno.'; $id = rand(0, count($customMessages) -1); echo '
'. '
MESSAGGIO DALL\'AUTORE
'. $customMessages[$id]. '

'; ?>

Gianfranco (Admin)

Appassionato di informatica, fotografia e di tecnologia in generale. Esperto nell'uso di Excel e con tanta voglia di condividere le sue conoscenza con il mondo, sempre pronto a dare una mano (ma non più di due volte, altrimenti rimango senza).

Potrebbero interessarti anche...

3 risposte

  1. Irene ha detto:

    pagina salvata tra i preferiti! 🙂

  2. Giancarlo ha detto:

    Grazie.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.