Note: The other languages of the website are Google-translated. Back to English

Come trovare l'ennesima occorrenza (posizione) di un carattere nella stringa di testo in Excel?

Ad esempio, c'è una lunga frase nella cella A1, vedere lo screenshot seguente. E ora devi trovare la terza occorrenza o posizione del carattere "c" dalla stringa di testo nella cella A3. Naturalmente, puoi contare i caratteri uno per uno e ottenere il risultato esatto della posizione. Tuttavia, qui introdurremo alcuni semplici suggerimenti per trovare l'ennesima occorrenza o posizione di un carattere specifico dalla stringa di testo in una cella.


Trova l'ennesima occorrenza (posizione) di un carattere in una cella con la formula Trova

Ci sono due formule Trova che possono aiutarti a trovare rapidamente l'ennesima occorrenza o la posizione di un carattere specifico dalla stringa di testo in una cella.

La seguente formula ti mostrerà come trovare la terza occorrenza di "c" nella cella A3.

Trova la Formula 1

In una cella vuota, inserisci la formula = TROVA ("c", A1, TROVA ("c", A1) +2).

doc-find-en-esima-posizione-di-stringa-di-testo2

Quindi premere il pulsante Entra chiave. È stata visualizzata la posizione della terza lettera "c".

Note:: Puoi modificare il 2 nella formula in base alle tue esigenze. Ad esempio, se vuoi trovare la quarta posizione di "c", puoi cambiare il 2 in 3. E se vuoi trovare la prima posizione di "c", devi cambiare 2 in 0.

Trova la formula 2

In una cella vuota, inserisci la formula = TROVA (CAR (1), SOSTITUISCI (A1, "c", CAR (1), 3))e premere Entra chiave.

Note:: Il "3" nella formula significa la terza "c", puoi cambiarlo in base alle tue esigenze.


Numero di volte in cui una parola appare in una cella Excel

Se una parola appare più volte in una cella che doveva essere contata, di solito puoi contarle una per una. Ma se la parola appare centinaia di volte, il conteggio manuale è problematico. Il Numero di volte in cui appare una parola funzione in Kutools for Excel's formula Helper group può calcolare rapidamente il conteggio delle volte in cui una parola appare in una cella. Prova gratuita con funzionalità complete in 30 giorni!
 
Kutools per Excel: con più di 300 utili componenti aggiuntivi di Excel, liberi di provare senza limitazioni in 30 giorni.

> Trova l'ennesima occorrenza (posizione) di un carattere in una cella con VBA

In realtà, puoi applicare la macro VB per trovare facilmente l'ennesima occorrenza o posizione di un carattere specifico in una cella.

Passo 1: tieni premuto il tasto ALT + F11 chiavi e apre il file Microsoft Visual Basic, Applications Edition finestra.

Passo 2: fare clic inserire > Moduloe incolla la seguente macro nella finestra del modulo.

VBA: trova l'ennesima posizione di un personaggio.

Function FindN(sFindWhat As String, _
sInputString As String, N As Integer) As Integer
Dim J As Integer
Application.Volatile
FindN = 0
For J = 1 To N
FindN = InStr(FindN + 1, sInputString, sFindWhat)
If FindN = 0 Then Exit For
Next
End Function

Passaggio 3: ora se desideri trovare l'esatta occorrenza della posizione della terza "c" nella cella A1, inserisci la formula di = TrovaN ("c", A1,3)e premere il tasto Entra chiave. Quindi restituirà immediatamente la posizione esatta nella cella specifica.


Trova l'ennesima occorrenza (posizione) di un carattere in una cella con Kutools per Excel

Se non ti piacciono né la formula né il VBA, puoi provare uno strumento utile: Kutools for Excel, Con la sua Formula gruppi, puoi trovare un'utilità - Trova l'ennesima occorrenza di un carattere per restituire rapidamente l'ennesima posizione di un carattere in una cella.

Kutools for Excel, con oltre 300 funzioni utili, rende il tuo lavoro più facile. 

Dopo installazione gratuita Kutools per Excel, per favore fai come di seguito:

1. Selezionare una cella in cui si desidera restituire il risultato e fare clic Kutools > formula Helper > formula Helper . Vedi screenshot:

2. Poi nel popping formula Helper finestra di dialogo, fai come di seguito:

1) Seleziona Lookup dall'elenco a discesa di Tipo di formula sezione;

2) Scegli Trova il punto in cui compare il carattere Ennesimo in una stringa in Scegli una formula sezione;

3) Seleziona la cella che contiene la stringa che usi, quindi digita il carattere specificato e l'ennesima occorrenza nelle caselle di testo nel Input di argomenti .

3. Clic Ok. E ottieni la posizione dell'ennesima occorrenza di un carattere in una stringa.

 


I migliori strumenti per la produttività in ufficio

Kutools per Excel risolve la maggior parte dei tuoi problemi e aumenta la tua produttività dell'80%

  • Riutilizzo: Inserisci rapidamente formule complesse, grafici e tutto ciò che hai usato prima; Crittografa celle con password; Crea mailing list e invia email ...
  • Bar Super Formula (modifica facilmente più righe di testo e formula); Layout di lettura (leggi e modifica facilmente un gran numero di celle); Incolla su intervallo filtrato...
  • Unisci celle / righe / colonne senza perdere dati; Contenuto delle celle divise; Combina righe / colonne duplicate... Impedisci celle duplicate; Confronta intervalli...
  • Seleziona Duplica o Unico Righe; Seleziona Righe vuote (tutte le celle sono vuote); Super Find e Fuzzy Find in molte cartelle di lavoro; Selezione casuale ...
  • Copia esatta Più celle senza modificare il riferimento della formula; Riferimenti di creazione automatica a più fogli; Inserisci punti elenco, Caselle di controllo e altro ...
  • Estrai testo, Aggiungi testo, Rimuovi per posizione, Rimuovi spazio; Creare e stampare totali parziali di paging; Converti contenuto e commenti tra celle...
  • Super filtro (salva e applica schemi di filtri ad altri fogli); Ordinamento avanzato per mese / settimana / giorno, frequenza e altro; Filtro speciale in grassetto, corsivo ...
  • Combina cartelle di lavoro e fogli di lavoro; Unisci tabelle in base a colonne chiave; Suddividi i dati in più fogli; Conversione in batch xls, xlsx e PDF...
  • Più di 300 potenti funzionalità. Supporta Office / Excel 2007-2019 e 365. Supporta tutte le lingue. Facile distribuzione nella tua azienda o organizzazione. Funzionalità complete Prova gratuita di 30 giorni. Garanzia di rimborso di 60 giorni.
scheda kte 201905

Scheda Office porta l'interfaccia a schede a Office e semplifica notevolmente il lavoro

  • 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 della stessa finestra, piuttosto che in nuove finestre.
  • Aumenta la produttività del 50% e riduce centinaia di clic del mouse ogni giorno!
fondo officetab

 

Commenti (28)
Ancora nessuna valutazione. Puoi essere il primo a votare!
Questo commento è stato fatto dal moderatore sul sito
Trova Formula 1 non funzionerà. Il terzo parametro della funzione Trova è l'indice da cui deve iniziare la ricerca (come in: i primi x caratteri della stringa vengono ignorati). cioè se una stringa contiene la lettera c agli indici 1, 5 e 10 i risultati sono i seguenti: =TROVA("c",A1,1) troverà la prima c =TROVA("c",A1,2) a = FIND("c",A1,5) troverà il secondo c =FIND("c",A1,6) fino a =FIND("c",A1,10) troverà il terzo c. nulla sopra non troverà nulla.
Questo commento è stato fatto dal moderatore sul sito
Grazie per aver scoperto questo errore, mi dispiace che la formula 1 sia sbagliata, dovrebbe esserlo la formula corretta = TROVA ("c", A1, TROVA ("c", A1) +2) , e se vuoi trovare la prima lettera "c", devi solo cambiare il 2 in 0.
Questo commento è stato fatto dal moderatore sul sito
Come indica DdW, '+2' o '+0' o what-have-you è una posizione di carattere 'hardcoded'; dovresti già sapere dove fosse la "c" per trovarla. Tuttavia, la formula 2 è perfetta: SOSTITUIRE l'ennesima istanza della stringa di destinazione con un carattere univoco che altrimenti non apparirà nel resto del testo, quindi TROVA quel carattere univoco.
Questo commento è stato fatto dal moderatore sul sito
Sono in grado di trovare la seconda istanza, ma per quanto riguarda la terza, la quarta e l'ennesima. Non riesco a ottenere la 3a istanza (così come la 4a). Ho dati che contengono da 3 a 4 istanze. quindi cosa dovrei fare?
Questo commento è stato fatto dal moderatore sul sito
sanjeev, come ho detto due anni fa, usa la Formula 2: =FIND(CHAR(1),SUBSTITUTE("LOOK_IN","LOOK_FOR",CHAR(1),INST_NUM)) Dove LOOK_IN è la stringa (o cella) che tu' ri-cercando; LOOK_FOR è la stringa che stai cercando; e INST_NUM è l'istanza intera di LOOK_FOR che si desidera identificare. Quindi, =TROVA(CHAR(1),SUBSTITUTE("HELLO WORLD","L",CHAR(1),3) restituirà 10 (la posizione della terza "L").
Questo commento è stato fatto dal moderatore sul sito
Cari tutti, voglio selezionare una stringa di particolato da una cella Esempio: - Il mio nome è Mohit Voglio restituire qualsiasi valore Come mohit, è, Nome, Il mio utilizzo di una funzione. c'è qualche funzione o no
Questo commento è stato fatto dal moderatore sul sito
Penso che non ci sia una funzione specifica per questo, dal momento che Excel non è progettato per gestire elenchi di valori in una cella. Puoi creare tu stesso la funzione combinando le funzioni sopra menzionate con LEFT() e RIGHT(). Oppure potresti usare VBscripting ovviamente.
Questo commento è stato fatto dal moderatore sul sito
Dopo un po' di gioco ho ottenuto quanto segue per trovare la terza istanza di X e restituire il numero di posizione. =TROVA("X",A1,(TROVA("X",A1,TROVA("X",A1,1)+1))+1) Il modulo VBA ottiene comunque il mio voto. Molto più facile da ricordare
Questo commento è stato fatto dal moderatore sul sito
Certo, ma potresti annidare le formule nel parametro "numero di istanza" a tempo indeterminato. La Formula 2 ovvia al VBA, rendendola la migliore soluzione a tutto tondo.
Questo commento è stato fatto dal moderatore sul sito
Try this: =INDEX(SMALL(IF(MID(A1,MATCH(ROW(INDIRECT(1&":"&LEN(A1))),ROW(INDIRECT(1&":"&LEN(A1))),0),1)="c",MATCH(ROW(INDIRECT(1&":"&LEN(A1))),ROW(INDIRECT(1&":"&LEN(A1))),0),""),MATCH(ROW(INDIRECT(1&":"&LEN(A1)-LEN(SUBSTITUTE(A1,"c","")))),ROW(INDIRECT(1&":"&LEN(A1)-LEN(SUBSTITUTE(A1,"c","")))),0)),2) dove "c" è il carattere richiesto e 2 è la posizione. Nota che questa è una formula di matrice.
Questo commento è stato fatto dal moderatore sul sito
this is simpler: =INDEX(SMALL(IF(MID(A1,ROW(INDIRECT(1&":"&LEN(A1))),1)="c",ROW(INDIRECT(1&":"&LEN(A1))),""),ROW(INDIRECT(1&":"&LEN(A1)-LEN(SUBSTITUTE(A1,"c",""))))),2)
Questo commento è stato fatto dal moderatore sul sito
Ciao a tutti, ho un testo in una cella di Excel "23 floyd lane, longville, KN 14564" Ho bisogno di una funzione per estrarre solo "longville" Grazie
Questo commento è stato fatto dal moderatore sul sito
Se devi usare una funzione, prova: =TRIM(MID(A1,SEARCH(",",A1)+1,SEARCH("!@#",SUBSTITUTE(A1,","!@#",2 ))-SEARCH(",",A1)-1)) Altrimenti, potresti considerare Dati > Testo in colonne > Delimitato (usando una virgola come separatore).
Questo commento è stato fatto dal moderatore sul sito
La formula 1 non funziona su quarto, quinto, sesto ecc., quindi (+3,4,5) mostrerà sempre la terza posizione della lettera "c" che è 19 secondi la formula funziona.
Questo commento è stato fatto dal moderatore sul sito
Ciao a tutti,
Ho un testo in una cella di Excel "BY TRANSFER-NEFT*HDHC0065431*N053112345624801*K0038331*krishna--"
Ho bisogno di una funzione per estrarre solo "N053112345624801"
Questo commento è stato fatto dal moderatore sul sito
Ciao a tutti,

Ho un testo in una cella di Excel "BY TRANSFER-NEFT*HDFC0000001*N08745987123546*J0032331*KUMAR--"

Ho bisogno di una funzione per estrarre solo "N08745987123546"

Grazie
Questo commento è stato fatto dal moderatore sul sito
Ciao, vuoi estrarre i numeri dopo No e il numero di numeri è fisso? In tal caso, puoi utilizzare Kutools per la funzione Estrai testo di Exccel , digita No??? ? per estrarre.
Questo commento è stato fatto dal moderatore sul sito
La prima formula è completamente inutile e sbagliata ma funziona correttamente per questo esempio poiché la prima e la seconda "c" sono adiacenti. La formula corretta è:


Per la 2a occorrenza -
= TROVA ("c", A1, TROVA ("c", A1) +1)

Per la 3a occorrenza -
=TROVA("c",A1,TROVA("c",A1,TROVA("c",A1)+1)+1) e così via...
Questo commento è stato fatto dal moderatore sul sito
La prima formula funziona correttamente nella mia versione, nella nota, ha spiegato come trovare la terza o la quarta o l'ennesima "c".

Nota: puoi modificare il 2 nella formula in base alle tue esigenze. Ad esempio, se vuoi trovare la quarta posizione di "c", puoi cambiare 2 in 3. E se vuoi trovare la prima posizione di "c", dovresti cambiare 2 in 0.
Questo commento è stato fatto dal moderatore sul sito
Prova a scoprire la posizione della seconda c con la prima frase del mio commento sopra come stringa usando la prima formula. Scoprirai quanto è corretto!
Questo commento è stato fatto dal moderatore sul sito
Assolutamente d'accordo. Il +2, o +3 ecc..... dipende interamente dalla spaziatura tra le occorrenze n e (n+1) di "c". Quindi dovresti regolare manualmente per ogni cella se stessi provando a copiare questa formula in una colonna, ad esempio. Essenzialmente lo stesso del conteggio manuale.


Ex. Proviamo a trovare la 4a occorrenza di "c" nella cella A1 usando la formula fornita. Per l'articolo dovremmo usare +3 nella nostra funzione TROVA nidificata per trovare la 4a occorrenza.


Testo nella cella A1:

"cab car abc cole cube"

Contando manualmente, la 4a occorrenza è la "c" in cole nella posizione del carattere di 13.


= TROVA ("c", A1, TROVA ("c", A1) +3)

La funzione annidata, FIND("c",A1) troverà la prima occorrenza di "c" nella posizione 1.

Perciò,

TROVA("c",LA1)+3 = 1+3 = 4

Ricollegandolo alla nostra formula,

=TROVA("c",LA1,TROVA("c",LA1)+3) = TROVA("c",LA1,1+3) = TROVA("c",LA1,4)

Questa nuova formula cercherà la prima occorrenza di "c" a partire dalla posizione del carattere 4. Il quarto carattere nella stringa è lo spazio subito dopo cab.

Pertanto, la formula troverà la "c" in auto e restituirà il valore di 5 per la nostra formula. Come sappiamo dal conteggio manuale, stiamo cercando 13 come output.
Questo commento è stato fatto dal moderatore sul sito
"Sostituto" ti consente di trovare l'ennesima occorrenza di un termine, quindi combinalo con "trova" come segue (dove 5=5a occorrenza):

= TROVA (CAR (1), SOSTITUISCI (A1, "c", CAR (1), 5))
Questo commento è stato fatto dal moderatore sul sito
Questa è la risposta corretta! per favore sostituisci l'intero articolo con questa riga di codice.....
Questo commento è stato fatto dal moderatore sul sito
Eccellente! Sono contento di essere passato per rivedere altri commenti dopo aver pubblicato il mio.
Questo commento è stato fatto dal moderatore sul sito
Per gestire l'eccezione della formula, puoi usare lo stesso con if e iserro
=IF(ISERR(FIND("c",A1,FIND("c",A1)+2)),FIND("c",A1,FIND("c",A1)+0),FIND("c",A1,FIND("c",A1)+2))
Questo commento è stato fatto dal moderatore sul sito
Trova formula1 è imperfetto. Sarà di grande aiuto se viene rimosso. Ho perso molto tempo a provare per la 4a occorrenza di "a" in "vedanarayanan". Grazie.
Questo commento è stato fatto dal moderatore sul sito
La tua formula per trovare l'ennesima occorrenza di un carattere in una stringa non funziona. Usando il tuo esempio, l'aggiunta di 2 ai risultati della ricerca incorporata garantisce una posizione iniziale per la ricerca iniziale di una posizione oltre le prime due c ma cambiando il +1 in +2 non si ottiene la posizione della 3a "c", esso avvia semplicemente la ricerca di un carattere più in profondità nella stringa e il risultato è ancora la 4a "c". Per trovare la 3a "c" la ricerca deve iniziare oltre la posizione della 4a "c". Attendo con ansia la tua nuova soluzione.
Questo commento è stato fatto dal moderatore sul sito
Ciao David

Sì, come hai detto, la prima formula non funziona correttamente, puoi applicare la seconda formula:
=FIND(CHAR(1),SUBSTITUTE(A2,"c",CHAR(1),2))

Note:: Il numero "2" nella formula indica la seconda "c", se vuoi ottenere la terza, quarta "c", cambia semplicemente il numero 2 in 3,4 di cui hai bisogno.
Per favore, prova, spero che possa aiutarti!
Non ci sono ancora commenti pubblicati qui
Lasciate i vostri commenti
Pubblicazione come ospite
×
Valuta questo post:
0   Personaggi
Posizioni suggerite