Estou um pouco atrasado para a festa, mas talvez isso possa ajudar. O link na pergunta tinha uma fórmula semelhante, mas o meu usa a instrução IF () para se livrar dos erros.
Se você não tem medo de Ctrl + Shift + Enter, pode se sair muito bem com uma fórmula de matriz.
String (na célula A1): "one.two.three.four"
Fórmula:
{=MAX(IF(MID(A1,ROW($1:$99),1)=".",ROW($1:$99)))} use Ctrl+Shift+Enter
Resultado: 14
Primeiro,
ROW($1:$99)
retorna uma matriz de números inteiros de 1 a 99: {1,2,3,4,...,98,99}
.
Próximo,
MID(A1,ROW($1:$99),1)
retorna uma matriz de cadeias de comprimento 1 encontrada na cadeia de destino e retorna cadeias em branco depois que o comprimento da cadeia de destino é atingido: {"o","n","e",".",..."u","r","","",""...}
Próximo,
IF(MID(I16,ROW($1:$99),1)=".",ROW($1:$99))
compara cada item na matriz com a sequência "." e retorna o índice do caractere na string ou FALSE:{FALSE,FALSE,FALSE,4,FALSE,FALSE,FALSE,8,FALSE,FALSE,FALSE,FALSE,FALSE,14,FALSE,FALSE.....}
Último,
=MAX(IF(MID(I16,ROW($1:$99),1)=".",ROW($1:$99)))
retorna o valor máximo da matriz: 14
As vantagens dessa fórmula são curtas, relativamente fáceis de entender e não requerem caracteres únicos.
As desvantagens são o uso obrigatório de Ctrl + Shift + Enter e a limitação no comprimento da string. Isso pode ser contornado com uma variação mostrada abaixo, mas essa variação usa a função OFFSET (), que é uma função volátil (leia-se: lenta).
Não tenho certeza de qual é a velocidade dessa fórmula em relação a outras.
Variações:
=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!