Sono un po 'in ritardo alla festa, ma forse questo potrebbe aiutare. Il collegamento nella domanda aveva una formula simile, ma il mio utilizza l'istruzione IF () per eliminare gli errori.
Se non hai paura di Ctrl + Maiusc + Invio, puoi fare abbastanza bene con una formula di matrice.
String (nella cella A1): "one.two.three.four"
Formula:
{=MAX(IF(MID(A1,ROW($1:$99),1)=".",ROW($1:$99)))} use Ctrl+Shift+Enter
Risultato: 14
Primo,
ROW($1:$99)
restituisce un array di numeri interi da 1 a 99: {1,2,3,4,...,98,99}
.
Il prossimo,
MID(A1,ROW($1:$99),1)
restituisce una matrice di stringhe di 1 lunghezza trovate nella stringa di destinazione, quindi restituisce stringhe vuote dopo aver raggiunto la lunghezza della stringa di destinazione: {"o","n","e",".",..."u","r","","",""...}
Il prossimo,
IF(MID(I16,ROW($1:$99),1)=".",ROW($1:$99))
confronta ogni elemento dell'array con la stringa "." e restituisce l'indice del carattere nella stringa o FALSO:{FALSE,FALSE,FALSE,4,FALSE,FALSE,FALSE,8,FALSE,FALSE,FALSE,FALSE,FALSE,14,FALSE,FALSE.....}
Scorso,
=MAX(IF(MID(I16,ROW($1:$99),1)=".",ROW($1:$99)))
restituisce il valore massimo dell'array: 14
I vantaggi di questa formula è che è breve, relativamente facile da capire e non richiede caratteri unici.
Gli svantaggi sono l'uso richiesto di Ctrl + Maiusc + Invio e la limitazione della lunghezza della stringa. Questo può essere risolto con una variazione mostrata di seguito, ma quella variazione usa la funzione OFFSET () che è una funzione volatile (leggi: lenta).
Non sono sicuro di quale sia la velocità di questa formula rispetto ad altre.
variazioni:
=MAX((MID(A1,ROW(OFFSET($A$1,,,LEN(A1))),1)=".")*ROW(OFFSET($A$1,,,LEN(A1)))) works the same way, but you don't have to worry about the length of the string
=SMALL(IF(MID(A1,ROW($1:$99),1)=".",ROW($1:$99)),2) determines the 2nd occurrence of the match
=LARGE(IF(MID(A1,ROW($1:$99),1)=".",ROW($1:$99)),2) determines the 2nd-to-last occurrence of the match
=MAX(IF(MID(I16,ROW($1:$99),2)=".t",ROW($1:$99))) matches a 2-character string **Make sure you change the last argument of the MID() function to the number of characters in the string you wish to match!