=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).
| A | B | C | |
|---|---|---|---|
| 1 | Text | FIND("apple") | SEARCH("apple") |
| 2 | Apple pie | #VALUE! | 1 |
| 3 | Green apple | 7 | 7 |
| 4 | Banana 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 | B | C | |
|---|---|---|---|
| 1 | Note | Contains "late" | Status |
| 2 | Arrived late | TRUE | Check |
| 3 | On time | FALSE | OK |
| 4 | LATE by 2 days | TRUE | Check |
| 5 | Delivered | FALSE | OK |
=É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.
| A | B | |
|---|---|---|
| 1 | Subject | Urgent? |
| 2 | URGENT: server down | |
| 3 | Monthly report | |
| 4 | Refund request, urgent |
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.
| A | B | C | |
|---|---|---|---|
| 1 | Code | First dash | Second dash |
| 2 | NYC-2041-B | 4 | 9 |
| 3 | BOSTON-15-AA | 7 | 10 |
=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.
| A | B | |
|---|---|---|
| 1 | Position | |
| 2 | ana@coddy.tech |
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:
| A | B | |
|---|---|---|
| 1 | Position of @ | |
| 2 | ana@coddy.tech | 4 |
| 3 | not an email | 0 |
=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
| PROCURAR | LOCALIZAR | Ctrl+F | |
|---|---|---|---|
| Maiúsculas | Precisam bater | Ignoradas | Ignoradas, a menos que Diferenciar maiúsculas de minúsculas esteja marcado |
| Curingas | Não | ?, *, ~ | ?, *, ~ |
| Não encontrado | #VALOR! | #VALOR! | Uma mensagem |
| Resultado | Uma posição, recalculada | Uma posição, recalculada | Seleciona 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.