Menu

ENCONTRAR y HALLAR en Excel: buscar texto en una celda

=HALLAR("apple";A2) devuelve la posición en la que empieza apple en A2, sin distinguir mayúsculas. ENCONTRAR hace lo mismo pero distingue mayúsculas. Las dos devuelven #¡VALOR! cuando falta el texto, y ESNUMERO lo convierte en una prueba de "si la celda contiene".

Todas las hojas de esta página están vivas: cambia un número o una fórmula y se recalculan.

=SEARCH("apple",A2) devuelve la posición en la que empieza apple en A2, contando desde 1, y no distingue mayúsculas de minúsculas. =FIND("apple",A2) hace lo mismo pero solo coincide con las mismas mayúsculas. Cuando el texto no está, las dos devuelven #¡VALOR! (#VALUE! en inglés; la tabla muestra los nombres de error en inglés). En Excel en español son HALLAR (SEARCH en inglés) y ENCONTRAR (FIND en inglés), y la tabla también acepta las fórmulas escritas en español, con punto y coma (o con comas, como en México): =HALLAR("apple";A2).

ENCONTRAR distingue mayúsculas, HALLAR no
B2
ABC
1TextFIND("apple")SEARCH("apple")
2Apple pie#VALUE!1
3Green apple77
4Banana bread#VALUE!#VALUE!
#VALUE! Un argumento tiene un tipo incorrecto, por ejemplo texto donde va un número.En Excel en español: =ENCONTRAR("apple";A2)

Apple pie empieza con A mayúscula, así que ENCONTRAR no coincide y devuelve #¡VALOR!, mientras que HALLAR devuelve 1. En Green apple las dos devuelven 7: el espacio cuenta como carácter. Banana bread no contiene apple.

Sintaxis

=FIND(find_text, within_text, [start_num])
=SEARCH(find_text, within_text, [start_num])
  • find_text (texto_buscado): lo que se busca. Un carácter o una palabra.
  • within_text (dentro_del_texto): la celda en la que se busca.
  • start_num (núm_inicial): la posición desde la que se empieza, 1 si se omite. El resultado se sigue contando desde el primer carácter de la celda.

Si la celda contiene un texto

La posición en sí rara vez es lo que quieres. Normalmente la pregunta es "¿esta celda contiene la palabra?". Una posición es un número y un fallo es un error, así que ESNUMERO (ISNUMBER en inglés) convierte el resultado en VERDADERO o FALSO:

¿La nota menciona un retraso?
B2
ABC
1NoteContains "late"Status
2Arrived lateTRUECheck
3On timeFALSEOK
4LATE by 2 daysTRUECheck
5DeliveredFALSEOK
Haz clic en una celda para ver su fórmula. Cambia un número o una fórmula y la hoja se recalcula.En Excel en español: =ESNUMERO(HALLAR("late";A2))

HALLAR coincide con LATE en A4 porque ignora las mayúsculas. Ten en cuenta que también coincidiría con latest o chocolate: HALLAR busca caracteres, no palabras completas. Buscar " late" con un espacio delante lo acota un poco. Para contar cuántas celdas contienen una palabra, =CONTAR.SI(A2:A5;"*late*") es más corto; consulta contar celdas con texto.

Marca los tickets urgentes
B2
AB
1SubjectUrgent?
2URGENT: server down
3Monthly report
4Refund request, urgent
Haz clic en una celda para ver su fórmula. Cambia un número o una fórmula y la hoja se recalcula.

Tu turno: En B2, devuelve TRUE si el asunto de A2 contiene la palabra urgent, escrita con cualquier combinación de mayúsculas, y FALSE si no. La fórmula se copia hacia abajo hasta B4.

Encontrar la segunda aparición

start_num te permite empezar a buscar después de la primera coincidencia. Pon un ENCONTRAR dentro de otro: el interior encuentra el primer guion, y el exterior empieza un carácter más tarde.

Posición del primer y del segundo guion
C2
ABC
1CodeFirst dashSecond dash
2NYC-2041-B49
3BOSTON-15-AA710
Haz clic en una celda para ver su fórmula. Cambia un número o una fórmula y la hoja se recalcula.En Excel en español: =ENCONTRAR("-";A2;ENCONTRAR("-";A2)+1)

Con las dos posiciones, EXTRAE (MID en inglés) puede tomar lo que hay entre los guiones: =EXTRAE(A2;B2+1;C2-B2-1) devuelve 2041.

¿Dónde está la @?
B2
AB
1EmailPosition
2ana@coddy.tech
Haz clic en una celda para ver su fórmula. Cambia un número o una fórmula y la hoja se recalcula.

Tu turno: En B2, devuelve la posición de la @ en la dirección de correo.

ENCONTRAR y HALLAR devuelven #¡VALOR!

Aquí #¡VALOR! solo significa "no encontrado". Sustitúyelo por algo útil:

No encontrado sin el error
B2
AB
1EmailPosition of @
2ana@coddy.tech4
3not an email0
Haz clic en una celda para ver su fórmula. Cambia un número o una fórmula y la hoja se recalcula.En Excel en español: =SI.ERROR(ENCONTRAR("@";A2);0)

No compares el resultado directo con un número, como en =ENCONTRAR("@";A2)>0: un fallo es un error, y la comparación devuelve #¡VALOR! en lugar de FALSO. Compruébalo con ESNUMERO, como en la sección anterior.

Comodines: solo HALLAR

HALLAR acepta los comodines ? (un carácter cualquiera) y * (cualquier secuencia de caracteres). ENCONTRAR los trata como los caracteres literales. En 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

Hay más sobre *, ? y ~ en las funciones de Excel en la página de comodines.

ENCONTRAR frente a HALLAR frente a Ctrl+B

ENCONTRARHALLARCtrl+B
MayúsculasDeben coincidirSe ignoranSe ignoran, salvo que marques Coincidir mayúsculas y minúsculas
ComodinesNo?, *, ~?, *, ~
No encontrado#¡VALOR!#¡VALOR!Un mensaje
ResultadoUna posición, que se recalculaUna posición, que se recalculaSelecciona la celda

Para localizar un valor una vez, Inicio > Buscar y seleccionar > Buscar (Ctrl+B en Excel en español, Ctrl+F en inglés, Cmd+F en Mac) es más rápido que una fórmula. Para marcar o extraer en cada fila, y mantenerlo actualizado, usa ENCONTRAR o HALLAR. Elige ENCONTRAR cuando las mayúsculas tienen significado (códigos de producto como ab y AB), y HALLAR para todo lo que escriben las personas.

Preguntas frecuentes

¿Qué diferencia hay entre ENCONTRAR y HALLAR en Excel?

ENCONTRAR distingue mayúsculas y no acepta comodines. HALLAR ignora las mayúsculas y acepta ? y *. =ENCONTRAR("a";"Apple") es #¡VALOR!, mientras que =HALLAR("a";"Apple") es 1.

¿Cómo extraigo el texto entre dos guiones en Excel?

Encuentra los dos guiones y toma lo que hay entre ellos con EXTRAE: =EXTRAE(A2;ENCONTRAR("-";A2)+1;ENCONTRAR("-";A2;ENCONTRAR("-";A2)+1)-ENCONTRAR("-";A2)-1) devuelve 2041 de NYC-2041-B. En Microsoft 365, =TEXTOANTES(TEXTODESPUES(A2;"-");"-") es más corta.

¿Por qué ENCONTRAR devuelve #¡VALOR!?

El texto no está en la celda, o está con otras mayúsculas (ENCONTRAR las distingue). Envuélvela para devolver otra cosa: =SI.ERROR(ENCONTRAR("-";A2);0).

¿Cómo encuentro la segunda aparición de un carácter?

Empieza a buscar un carácter después de la primera coincidencia: =ENCONTRAR("-";A2;ENCONTRAR("-";A2)+1). El tercer argumento es la posición desde la que se empieza.

Ilustración de los lenguajes de programación de Coddy

Aprende a programar con Coddy

COMENZAR