Come trovare la prima, l'ultima o un'occorrenza specifica di un carattere in Excel?
In molte attività di elaborazione dati, potresti imbatterti in elenchi di stringhe di testo contenenti caratteri speciali—come il trattino “-”—e aver bisogno di determinare la posizione della loro prima, ultima o di una specifica occorrenza (n-esima). Ad esempio, per estrarre informazioni basate su delimitatori, analizzare codici prodotto o separare componenti di dati, è spesso essenziale individuare con precisione la posizione di un determinato carattere all’interno di ciascuna stringa. Tuttavia, Excel non offre una funzione predefinita per restituire direttamente la posizione della prima, dell’ultima o dell’n-esima occorrenza di un carattere in una cella. Questo articolo presenta diverse tecniche pratiche e soluzioni passo-passo per individuare con esattezza tali occorrenze, soddisfacendo svariate esigenze di analisi e preparazione dei dati.

Trova l'ultima occorrenza di un carattere con formule
Trova l'ultima occorrenza di un carattere con una funzione definita dall'utente
Trova la prima o la Occorrenza occorrenza di un carattere con una formula
Trova la prima o la Occorrenza occorrenza di un carattere specifico con una funzione semplice
Soluzione alternativa con formula per le versioni recenti di Excel
Codice VBA alternativo per trovare la posizione della Occorrenza occorrenza
Trova l'ultima occorrenza di un carattere con formule
Se desideri individuare la posizione dell’ultima occorrenza di un carattere specifico (ad esempio “-”) all’interno di una stringa di testo, Excel non offre una funzione dedicata per farlo direttamente. Tuttavia, combinando alcune formule puoi ottenere il risultato in modo efficace. Di seguito trovi due approcci basati su formule, particolarmente utili quando lavori con codici prodotto, percorsi di file o altri dati strutturati con separatori ricorrenti. Ricorda che l’uso di formule complesse può aumentare il carico di calcolo, soprattutto su set di dati di grandi dimensioni.
1. In una cella vuota (ad esempio C2), inserisci o copia una delle formule seguenti:
=SEARCH("^^",SUBSTITUTE(A2,"-","^^",LEN(A2)-LEN(SUBSTITUTE(A2,"-","")))) =LOOKUP(2,1/(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)="-"),ROW(INDIRECT("1:"&LEN(A2)))) Entrambe le formule restituiscono la posizione (espressa come numero) dell'ultima occorrenza del carattere “-” nella cella di riferimento (A2). La prima formula utilizza RICERCA e SOSTITUISCI per identificare la posizione, sostituendo l'ultimo “-” con un simbolo univoco e cercandolo. La seconda sfrutta CERCA.VERT in combinazione con STRINGA.ESTRAI e RIF.RIGA per individuare l'ultimo “-”. Puoi scegliere entrambi i metodi in base alla tua familiarità o al volume dei dati. L’approccio con CERCA.VERT risulta spesso più semplice da adattare nelle versioni moderne di Excel compatibili con le matrici.

2. Dopo aver inserito la formula, premi Invio. Per applicarla alle altre righe, trascina la maniglia di riempimento verso il basso fino a coprire l’intero intervallo desiderato: ogni cella verrà immediatamente popolata con la posizione dell’ultima occorrenza corrispondente alla rispettiva stringa di testo, come mostrato nell’immagine seguente. Ricorda sempre di verificare che i riferimenti di cella siano corretti quando copi la formula in un’altra area.

Nota: Negli esempi qui riportati, A2 indica la cella contenente i tuoi dati e “-” è il carattere da cercare. Puoi sostituire “-” con qualsiasi altro carattere. Se la cella è vuota o il carattere non è presente nel testo, la formula potrebbe restituire un errore. Per voci di testo con delimitatori ripetuti o simboli speciali, controlla attentamente la presenza di caratteri nascosti o non stampabili che potrebbero influenzare i risultati.
Trova l'ultima occorrenza di un carattere con una funzione definita dall'utente
Un altro metodo flessibile consiste nell’utilizzare una funzione definita dall’utente (UDF) in un modulo VBA, che offre maggiore controllo e facilità di riutilizzo, soprattutto se devi spesso individuare l’ultima occorrenza di un carattere qualsiasi per diverse analisi. Questo approccio è perfetto se desideri una formula semplice e intuitiva ()=ultimaposizionedelcarattere(cella; carattere)) che funzioni esattamente come le funzioni integrate di Excel. Tieni però presente che le macro devono essere abilitate affinché le soluzioni VBA funzionino correttamente e che la cartella di lavoro va sempre salvata come file con supporto macro (*.xlsm) per conservare la UDF.
1. Apri il foglio di lavoro in cui vuoi aggiungere questa funzione.
2. Premi contemporaneamente i tasti ALT + F11 per aprire l'editor di Microsoft Visual Basic, Applications.
3. Nell'editor VBA, fai clic su Inserisci > Modulo per creare un nuovo modulo. Poi copia e incolla il codice seguente nella finestra del modulo.
Codice VBA: trova l'ultima occorrenza di un carattere
Function LastpositionOfChar(strVal As String, strChar As String) As Long
LastpositionOfChar = InStrRev(strVal, strChar)
End Function
Risoluzione problemi: Se la funzione non restituisce un risultato, assicurati che le macro siano abilitate e che tu stia inserendo il riferimento di cella e il carattere corretti nella formula. Per trovare l’ultima occorrenza di un carattere diverso, modifica semplicemente l’argomento di conseguenza.
4. Salva e chiudi la finestra del codice. Torna al tuo foglio di lavoro e inserisci la seguente formula in una cella vuota (ad esempio B2):=lastpositionofchar(A2,"-"). Sostituisci A2 con la cella appropriata e "-" con il carattere da cercare.

5. Trascina la maniglia di riempimento verso il basso per applicare la formula alle altre celle, se necessario. In questo modo otterrai la posizione finale del carattere specificato in ciascuna stringa di testo, come mostrato di seguito.

Nota: Il primo argomento ()A2) è la cella sorgente che contiene la stringa di testo, mentre il secondo (“-”) è il carattere da cercare. Puoi personalizzare questi parametri in base alle tue esigenze. Se non viene trovata alcuna corrispondenza, la funzione potrebbe restituire 0. Ricorda sempre di salvare il tuo lavoro prima di eseguire o modificare codice VBA. In caso di errore, controlla la presenza di virgolette posizionate in modo errato o di riferimenti a celle non validi.
Trova la prima o la Occorrenza occorrenza di un carattere con una formula
Se devi trovare non solo l’ultima, ma anche la prima, la seconda o una specifica occorrenza di un carattere all’interno di una stringa di testo, puoi ricorrere a una struttura di formula diversa. Questa operazione è spesso richiesta per analizzare codici gerarchici, estrarre porzioni di ID strutturati o individuare simboli ripetuti in voci di dati.
1. Per trovare la posizione n-esima di un carattere specifico, inserisci o incolla la seguente formula in una cella vuota (ad esempio C2):
=FIND(CHAR(160),SUBSTITUTE(A2,"-",CHAR(160),2)) In questa formula, A2 è la cella da cercare, “-” è il carattere da trovare e 2 indica quale occorrenza del carattere desideri (ad esempio, 2 per la seconda occorrenza). Puoi regolare il numero dell’occorrenza in base alle tue esigenze.

2. Premere Invio. Per applicare la formula ad altre righe, trascinare il quadratino di riempimento verso il basso fino all’intervallo desiderato. In questo modo si otterrà la posizione, ad esempio, della seconda occorrenza del carattere «-» in ogni stringa di testo. Se il numero di occorrenze specificato supera il conteggio totale del carattere nella stringa, la formula restituirà un errore. In tal caso, verificare i dati di testo o il parametro relativo all’occorrenza.

Nota: Il numero 2 nella formula indica l’occorrenza da cercare. Modifica questo numero per individuare la posizione della prima, terza, quarta o di qualsiasi altra occorrenza del carattere specificato. Se il carattere non viene trovato tante volte quanto indicato, verrà visualizzato un errore #VALORE!; puoi gestire questa situazione con SE.ERRORE() per ottenere risultati più puliti.
Trova la prima o la Occorrenza occorrenza di un carattere specifico con una funzione semplice
Per gli utenti che preferiscono una soluzione diretta e interattiva o che non si sentono a proprio agio nel creare formule complesse o codice VBA, Kutools per Excel offre uno strumento pratico chiamato Trova la posizione dell'ennesima occorrenza di un carattere in una stringa. Questa utility rende semplicissimo individuare la posizione della prima, seconda, terza o di qualsiasi altra occorrenza di un carattere specifico all’interno di una cella, completando l’operazione con pochi clic – un vantaggio decisivo per velocizzare processi ripetitivi di pulizia dei dati o quando si lavora con set di dati di grandi dimensioni.
Dopo aver installato Kutools per Excel, seguire questi passaggi per ottenere rapidamente i risultati:
Si supponga di voler ottenere la posizione della seconda occorrenza del carattere trattino «-» in un insieme di stringhe di testo:
1. Fai clic sulla cella in cui vuoi visualizzare il risultato.
2. Fare clic su Kutools > Assistente formula > Assistente formula nella Barra multifunzione, come mostrato di seguito:

3. Nella finestra di dialogo Assistente formula:
- Seleziona Cerca/vert dall’elenco a discesa Tipo di formula.
- Scegli Trova la posizione dell'ennesima occorrenza di un carattere in una stringa dall’elenco Seleziona una formula.
- Nell'area Inserimento argomento, seleziona la cella contenente il tuo testo, inserisci il carattere da cercare e specifica il numero dell'occorrenza.

4. Fare clic su OK. Dopo che la formula ha restituito il risultato, puoi trascinare il quadratino di riempimento verso il basso per applicarla ad altre righe, quando necessario. Questo metodo ti aiuta a evitare il rischio di errori causati dall’inserimento manuale delle formule.

Scarica e prova subito Kutools per Excel gratuitamente!
Questa opzione è particolarmente adatta agli utenti non tecnici o a chi deve ripetere frequentemente il processo su fogli di lavoro diversi, riducendo gli errori manuali e risparmiando tempo nella costruzione di formule complesse.
Formula alternativa per le versioni recenti di Excel (con matrici dinamiche)
Nelle versioni più recenti di Excel (Excel 365, Excel 2021 e successive) che supportano le matrici dinamiche, puoi sfruttare funzioni come SEQUENZA e FILTRA per ottenere contemporaneamente tutte le posizioni di un carattere. Questo ti permette di individuare facilmente una specifica occorrenza o di elencare tutte le occorrenze in un intervallo separato per ulteriori elaborazioni.
1. Inserisci la seguente formula in una cella vuota (ad esempio B2) per ottenere tutte le posizioni del carattere «-» nella cella A2:
=FILTER(SEQUENCE(LEN(A2)), MID(A2,SEQUENCE(LEN(A2)),1)="-") Dopo aver premuto Invio, la formula riempirà automaticamente le celle adiacenti con la posizione di ciascuna occorrenza del carattere «-». Se si desidera restituire solo l’occorrenza, è possibile utilizzare:
=INDEX(FILTER(SEQUENCE(LEN(A2)), MID(A2,SEQUENCE(LEN(A2)),1)="-"),2) Sostituisci 2 con il numero dell’occorrenza desiderata. Questo metodo è particolarmente efficace per array o elenchi di lunghezza variabile, ma richiede una versione di Excel che supporti queste funzioni.
Suggerimento: Se viene visualizzato un errore #CALC! o simile, assicurati che la tua versione di Excel supporti le matrici dinamiche e che le celle di riferimento contengano dati di testo.
Codice VBA per trovare la posizione Occorrenza di un carattere
Se hai bisogno di una soluzione per individuare non solo l’ultima, ma qualsiasi occorrenza di un carattere, anche VBA può darti una mano. La macro seguente è personalizzabile per soddisfare diverse esigenze di analisi e ti permette di risparmiare tempo quando la utilizzi ripetutamente su più cartelle di lavoro.
1. Passa alla scheda Sviluppo > Visual Basic, quindi seleziona Inserisci > Modulo. Incolla il codice seguente nella finestra del modulo:
Function NthPositionOfChar(cell As Range, ch As String, nth As Integer) As Long
Dim s As String
Dim i As Long, count As Long
On Error Resume Next
xTitleId = "KutoolsforExcel"
s = cell.Value
count = 0
For i = 1 To Len(s)
If Mid(s, i, 1) = ch Then
count = count + 1
If count = nth Then
NthPositionOfChar = i
Exit Function
End If
End If
Next i
NthPositionOfChar = 0
End Function 2. Chiudere l’editor. Utilizzare la formula =NthPositionOfChar(A2,"-",2) (sostituendo gli argomenti secondo necessità) nel foglio di lavoro per ottenere la posizione della seconda occorrenza del carattere «-» nella cella A2. Attenzione: se tale occorrenza non esiste, la funzione restituirà 0.
Questo codice è perfetto per estrarre in modo flessibile informazioni basate su delimitatori dai dati o per semplificare attività ripetitive di analisi. Le funzioni personalizzate in VBA possono inoltre essere facilmente adattate a esigenze più specifiche, come la ricerca di caratteri con distinzione tra maiuscole e minuscole o l’elaborazione di set di dati di grandi dimensioni.
Quando si lavora con stringhe di testo e posizioni di occorrenze di caratteri, assicurati sempre di verificare la presenza di caratteri nascosti o non stampabili — come spazi, interruzioni di riga o simboli Unicode speciali — poiché possono influenzare i risultati delle formule. Inoltre, se i dati utilizzano delimitatori diversi, controlla che siano coerenti prima di applicare formule o macro. In caso di errori, esamina attentamente i parametri di input, i riferimenti delle formule e la compatibilità del tipo di dati (testo/numero) con la funzione impiegata.
L’utilizzo combinato di formule, VBA e funzionalità di Kutools offre massima flessibilità per gestire in Excel sia attività di elaborazione testo routine che avanzate. Scegli il metodo più adatto al tuo livello di competenza tecnica, alla versione di Excel e alla complessità dei dati per ottenere la massima accuratezza ed efficienza.
Altri articoli correlati:
- Estrai tutte le parole tranne la prima o l'ultima in Excel
- Estrarre da una cella tutte le parole tranne la prima o l'ultima può aiutarti a rimuovere la parola indesiderata. In questo caso, naturalmente, puoi copiare manualmente le parole desiderate e incollarle una per una in un'altra cella. Tuttavia, questa operazione diventa noiosa se devi elaborare più celle. Come puoi estrarre rapidamente e facilmente tutte le parole tranne la prima o l'ultima in Excel?
- Estrai caratteri da destra verso sinistra in una cella
- Questo articolo illustra come estrarre i caratteri da destra in una cella fino al successivo spazio, per ottenere il risultato visualizzato nel foglio di lavoro di Excel. Una formula pratica, presentata nell’articolo, consente di eseguire questa operazione in modo rapido e semplice.
- Rimuovi i primi, gli ultimi X caratteri o quelli in posizioni specifiche
- Questo articolo spiega come estrarre i caratteri da destra in una cella fino al prossimo spazio, per ottenere il risultato visualizzato nel foglio di lavoro di Excel. Una formula pratica presentata nell’articolo rende questa operazione rapida e semplice.
- Trova la posizione della prima lettera minuscola
- Se hai un elenco di stringhe di testo contenenti sia lettere maiuscole che minuscole, potresti voler individuare rapidamente la posizione della prima lettera minuscola in ciascuna stringa del tuo foglio di lavoro Excel. Come puoi ottenere questo risultato senza dover contare manualmente ogni carattere?
Migliori Strumenti per la Produttività in Office
Potenzia le tue competenze in Excel con Kutools per Excel e sperimenta un’efficienza mai vista prima.Kutools per Excel offre oltre 300 funzionalità avanzate per aumentare la produttività e Risparmia tempo.Clicca qui per ottenere la funzionalità di cui hai più bisogno...
Office Tab Porta l'interfaccia a schede in Office e rende il tuo lavoro molto più semplice
- Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Apri e crea più documenti in nuove schede all’interno della stessa finestra, invece che in finestre separate.
- Aumenta la tua produttività del 50 % e risparmia centinaia di clic del mouse ogni giorno!
Tutti i componenti aggiuntivi di Kutools in un unico programma di installazione.
Kutools for Office è la suite che include componenti aggiuntivi per Excel, Word, Outlook e PowerPoint, oltre a Office Tab Pro: la soluzione ideale per i team che lavorano su diverse app di Office.
- Suite completa— componenti aggiuntivi per Excel, Word, Outlook e PowerPoint + Office Tab Pro
- Un unico programma di installazione, una sola licenza— configurazione in pochi minuti (pronto per MSI)
- Funziona meglio insieme— produttività ottimizzata tra le app di Office
- Prova gratuita di 30 giorni con tutte le funzionalità— nessuna registrazione, nessuna carta di credito
- Miglior rapporto qualità-prezzo— risparmia rispetto all’acquisto dei singoli componenti aggiuntivi