Eu preciso encontrar o último espaço em uma célula XLS

11

Eu tenho uma planilha do Excel com valores de texto, por exemplo na A1: "este é o texto". Eu preciso encontrar a posição do último caractere de espaço. Existe uma fórmula excel que me dará o resultado que eu quero? Eu tentei FIND e SEARCH, no entanto, estes começam a partir da esquerda, o que eu preciso é começar do lado direito.

    
por Dheer 26.11.2013 / 13:15

2 respostas

21

Se por valor em branco você quer dizer "espaço", e por XLS você quer dizer Excel, então você pode usar essa fórmula (assumindo que o teste que você quer encontrar no último espaço é em A1 ):

=FIND("☃",SUBSTITUTE(A1," ","☃",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))

Você pode dividir em 3 partes:

  • LEN(A1)-LEN(SUBSTITUTE(A1," ","")) fornece o número de espaços, vamos chamá-lo x ,
  • SUBSTITUTE(A1," ","☃",[x]) irá substituir o x th espaço (então o último) por um boneco de neve,
  • FIND("☃",[...]) lhe dará a posição do boneco de neve. Qual é a posição do último espaço.
por 26.11.2013 / 13:35
6

Aqui está outra maneira, todos os personagens são permitidos na A1 (até bonecos de neve!)

=LOOKUP(2^15,FIND(" ",A1,ROW(INDIRECT("1:"&LEN(A1)))))

FIND tem um terceiro argumento que define a posição inicial da pesquisa, se você aplicar uma matriz de valores inteiros 1 a n (onde n é o comprimento de A1) para esse parâmetro, você obtém uma matriz de volta com a última número sendo a posição do último espaço.

LOOKUP extrai esse número pesquisando um valor maior que qualquer valor que possa ser encontrado nessa matriz, caso em que o último número é encontrado

Em Excel 2010 ou mais tarde você também pode usar a função AGGREGATE como esta

=AGGREGATE(14,6,FIND(" ",A1,ROW(INDIRECT("1:"&LEN(A1)))),1)

FIND retorna a mesma matriz de antes e usando 14 como primeiro argumento de AGGREGATE e 1 como o último que você obtém o maior valor na matriz, ignorando os erros [6]

    
por 26.11.2013 / 22:43