Eu tenho uma planilha do Excel com valores de texto, por exemplo, em A1: "Este é o texto". Preciso encontrar a posição do último caractere de espaço. Existe uma fórmula do Excel que me dará o resultado que eu quero? Eu tentei encontrar e pesquisar, no entanto, estes começam a partir da esquerda, o que eu preciso é começar a partir da direita.
17
Respostas:
Se por valor em branco você quer dizer "espaço" e por XLS você quer dizer Excel, você pode usar esta fórmula (assumindo que o teste em que você deseja encontrar o último espaço esteja
A1
):Você pode dividi-lo em 3 partes:
LEN(A1)-LEN(SUBSTITUTE(A1," ",""))
fornece o número de espaços, vamos chamá-lox
,SUBSTITUTE(A1," ","☃",[x])
substituirá ox
espaço th (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.fonte
Aqui está outra maneira: qualquer personagem é permitido na A1 (até bonecos de neve!)
=LOOKUP(2^15,FIND(" ",A1,ROW(INDIRECT("1:"&LEN(A1)))))
FIND
possui 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) a esse parâmetro, você recupera uma matriz com o último número sendo a posição da último espaço.LOOKUP
extrai esse número pesquisando um valor maior que qualquer valor que possa ser encontrado nessa matriz; nesse caso, o último número é encontradoEm
Excel 2010
ou mais tarde, você também pode usarAGGREGATE
funções 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 deAGGREGATE
e 1 como o último, você obtém o maior valor da matriz, ignorando erros [6]fonte
"1:"&LEN(A1)
avaliada como "1:12" - essa é uma sequência que ROW não pode processar, mas INDIRECT converte uma sequência em uma referência válida que ROW pode manipular, então ROW (1:12) fornece {1 ; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12}barry larry houdini
em seguida, encontrar retornará essa matriz{6;6;6;6;6;6;12;12;12;12;12;12;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!}
e PROC e / ou agregado vai tomar o último maior valor / numérico disso, ou seja, 12