Menu

PROCURAR e LOCALIZAR no Excel: achar texto na célula

=LOCALIZAR("apple";A2) retorna a posição onde apple começa em A2, sem diferenciar maiúsculas. A PROCURAR faz o mesmo, mas diferencia maiúsculas. As duas retornam #VALOR! quando o texto não está lá, e a ÉNÚM transforma isso em um teste de "se a célula contém".

Todas as planilhas desta página são ao vivo: mude um número ou uma fórmula e elas recalculam.

=SEARCH("apple",A2) retorna a posição onde apple começa em A2, contando a partir de 1, e ignora maiúsculas e minúsculas. =FIND("apple",A2) faz o mesmo, mas só encontra a grafia exata. No Excel em português essas funções se chamam LOCALIZAR (SEARCH em inglês) e PROCURAR (FIND em inglês), e você também pode digitar as fórmulas em português na tabela, com ponto e vírgula: =LOCALIZAR("apple";A2). Quando o texto não está lá, as duas retornam #VALOR! (#VALUE! em inglês; a tabela mostra os nomes de erro em inglês).

PROCURAR diferencia maiúsculas, LOCALIZAR não
B2
ABC
1TextFIND("apple")SEARCH("apple")
2Apple pie#VALUE!1
3Green apple77
4Banana bread#VALUE!#VALUE!
#VALUE! Um argumento tem o tipo errado, como texto onde deveria haver um número.No Excel em português: =PROCURAR("apple";A2)

Apple pie começa com A maiúsculo, então a PROCURAR não encontra e retorna #VALOR!, enquanto a LOCALIZAR retorna 1. Em Green apple as duas retornam 7: o espaço conta como caractere. Banana bread não tem apple nenhum.

Sintaxe

=FIND(find_text, within_text, [start_num])
=SEARCH(find_text, within_text, [start_num])
  • find_text: o que procurar. Um caractere ou uma palavra.
  • within_text: a célula onde procurar.
  • start_num: a posição de onde começar, 1 se ficar de fora. O resultado continua contando a partir do primeiro caractere da célula.

Se a célula contém texto

A posição em si raramente é o que você quer. Normalmente a pergunta é "esta célula contém a palavra?". Uma posição é um número e uma falha é um erro, então a ÉNÚM (ISNUMBER em inglês) transforma o resultado em VERDADEIRO ou FALSO:

A nota fala de atraso?
B2
ABC
1NoteContains "late"Status
2Arrived lateTRUECheck
3On timeFALSEOK
4LATE by 2 daysTRUECheck
5DeliveredFALSEOK
Clique em uma célula para ver a fórmula. Mude um número ou uma fórmula e a planilha recalcula.No Excel em português: =ÉNÚM(LOCALIZAR("late";A2))

A LOCALIZAR encontra LATE em A4 porque ignora maiúsculas. Repare que ela também encontraria latest ou chocolate: a LOCALIZAR procura caracteres, não palavras inteiras. Procurar " late" com um espaço na frente restringe um pouco. Para contar quantas células contêm uma palavra, =CONT.SE(A2:A5;"*late*") é mais curto; veja contar células com texto.

Marcar chamados urgentes
B2
AB
1SubjectUrgent?
2URGENT: server down
3Monthly report
4Refund request, urgent
Clique em uma célula para ver a fórmula. Mude um número ou uma fórmula e a planilha recalcula.

Sua vez: Em B2, retorne VERDADEIRO se o assunto em A2 contém a palavra urgent, com qualquer combinação de maiúsculas, e FALSO se não contém. A fórmula é arrastada até B4.

Encontrar a segunda ocorrência

O start_num permite começar a procurar depois da primeira ocorrência. Coloque uma PROCURAR dentro de outra: a de dentro encontra o primeiro hífen, e a de fora começa um caractere depois.

Posição do primeiro e do segundo hífen
C2
ABC
1CodeFirst dashSecond dash
2NYC-2041-B49
3BOSTON-15-AA710
Clique em uma célula para ver a fórmula. Mude um número ou uma fórmula e a planilha recalcula.No Excel em português: =PROCURAR("-";A2;PROCURAR("-";A2)+1)

Com as duas posições, a EXT.TEXTO consegue pegar o que está entre os hífens: =EXT.TEXTO(A2;B2+1;C2-B2-1) retorna 2041.

Onde está o @?
B2
AB
1EmailPosition
2ana@coddy.tech
Clique em uma célula para ver a fórmula. Mude um número ou uma fórmula e a planilha recalcula.

Sua vez: Em B2, retorne a posição do @ no endereço de email.

PROCURAR e LOCALIZAR retornam #VALOR!

Aqui o #VALOR! só quer dizer "não encontrado". Troque esse erro por algo útil:

Não encontrado sem o erro
B2
AB
1EmailPosition of @
2ana@coddy.tech4
3not an email0
Clique em uma célula para ver a fórmula. Mude um número ou uma fórmula e a planilha recalcula.No Excel em português: =SEERRO(PROCURAR("@";A2);0)

Não compare o resultado puro com um número, como em =PROCURAR("@";A2)>0: uma falha é um erro, e a comparação retorna #VALOR! em vez de FALSO. Teste com a ÉNÚM, como na seção acima.

Curingas: só na LOCALIZAR

A LOCALIZAR aceita os curingas ? (um caractere qualquer) e * (qualquer sequência de caracteres). A PROCURAR trata esses sinais como caracteres literais. No Excel:

=SEARCH("b?d","a bad day")     returns 3
=SEARCH("2*B","NYC-2041-B")    returns 5
=SEARCH("~?","Why?")           returns 4, the tilde means a real question mark
=FIND("?","Why?")              returns 4, FIND has no wildcards

No Excel em português: =LOCALIZAR("b?d";"a bad day"), =LOCALIZAR("2*B";"NYC-2041-B"), =LOCALIZAR("~?";"Why?") e =PROCURAR("?";"Why?"). Mais sobre *, ? e ~ nas funções do Excel está na página de curingas.

PROCURAR, LOCALIZAR e Ctrl+F

PROCURARLOCALIZARCtrl+F
MaiúsculasPrecisam baterIgnoradasIgnoradas, a menos que Diferenciar maiúsculas de minúsculas esteja marcado
CuringasNão?, *, ~?, *, ~
Não encontrado#VALOR!#VALOR!Uma mensagem
ResultadoUma posição, recalculadaUma posição, recalculadaSeleciona a célula

Para localizar um valor uma vez só, Página Inicial > Localizar e Selecionar > Localizar (Ctrl+F, Cmd+F no Mac) é mais rápido que uma fórmula. Para marcar ou extrair em todas as linhas, e manter isso atualizado, use PROCURAR ou LOCALIZAR. Escolha a PROCURAR quando as maiúsculas têm significado (códigos de produto como ab e AB), e a LOCALIZAR para tudo o que as pessoas digitam.

Perguntas frequentes

Qual é a diferença entre PROCURAR e LOCALIZAR no Excel?

A PROCURAR diferencia maiúsculas de minúsculas e não aceita curingas. A LOCALIZAR ignora maiúsculas e aceita ? e *. =PROCURAR("a";"Apple") é #VALOR!, enquanto =LOCALIZAR("a";"Apple") é 1.

Como extrair o texto entre dois hífens no Excel?

Encontre os dois hífens e pegue o que está entre eles com a EXT.TEXTO: =EXT.TEXTO(A2;PROCURAR("-";A2)+1;PROCURAR("-";A2;PROCURAR("-";A2)+1)-PROCURAR("-";A2)-1) retorna 2041 de NYC-2041-B. No Microsoft 365, =TEXTOANTES(TEXTODEPOIS(A2;"-");"-") é mais curto.

Por que a PROCURAR retorna #VALOR!?

O texto não está na célula, ou está lá com maiúsculas diferentes (a PROCURAR diferencia maiúsculas). Envolva a fórmula para retornar outra coisa: =SEERRO(PROCURAR("-";A2);0).

Como encontrar a segunda ocorrência de um caractere?

Comece a busca um caractere depois da primeira ocorrência: =PROCURAR("-";A2;PROCURAR("-";A2)+1). O terceiro argumento é a posição onde a busca começa.

Ilustração das linguagens de programação do Coddy

Aprenda a programar com o Coddy

COMEÇAR