Excel no tiene función nativa IS.EMAIL(). Pero verificar emails es perfectamente posible con las herramientas que ya tienes. Tres formas ordenadas por potencia y complejidad.
Método 1 — Fórmula con SI + HALLAR (sintaxis básica)
La forma más simple y rápida. Pega esta fórmula en la columna auxiliar (asumiendo email en A2):
=SI(Y(ESNUMERO(HALLAR("@",A2)); ESNUMERO(HALLAR(".",A2)); LARGO(A2)>=6), "OK", "INVÁLIDO")
En Excel en inglés:
=IF(AND(ISNUMBER(SEARCH("@",A2)), ISNUMBER(SEARCH(".",A2)), LEN(A2)>=6), "OK", "INVALID")
Arrastra por toda la columna. En 3 segundos tienes cada fila marcada.
Qué pilla: falta arroba, falta punto, cadenas muy cortas, celdas vacías.
Qué NO pilla: emails que técnicamente cumplen pero están rotos (@dominio.com, hola@.es), typos en dominio, dominios muertos, desechables.
Coste: 0€. Tiempo: 2 minutos.
Método 2 — Fórmula con regex mejorada (Excel 365 / 2021+)
Si tienes Excel 365 o Excel 2021, dispones de REGEX.PROBAR (REGEXTEST en inglés). Cubre mucho más:
=SI(REGEX.PROBAR(A2, "^[^\s@]+@[^\s@]+\.[^\s@]+$"), "OK", "INVÁLIDO")
En inglés:
=IF(REGEXTEST(A2, "^[^\s@]+@[^\s@]+\.[^\s@]+$"), "OK", "INVALID")
Esta ya sí valida la estructura completa: local + arroba + dominio + punto + TLD, sin espacios en ningún sitio.
En versiones anteriores (2019 y previas) no tienes REGEX.PROBAR. O sigues con el Método 1 o pasas a Power Query (siguiente).
Método 3 — Power Query con función personalizada (verificación DNS)
Para cazar dominios muertos (terra.es, gmial.com) necesitas comprobar DNS. Excel no puede hacerlo nativo, pero Power Query sí — puedes llamar a la API DNS-over-HTTPS de Cloudflare.
- Datos → Obtener datos → Iniciar Editor Power Query con tu tabla cargada.
- En el editor: Inicio → Editor avanzado.
- Añade esta función M al principio del código:
let
VerifyDomain = (email as text) as text =>
let
trimmed = Text.Lower(Text.Trim(email)),
hasFormat = Text.Contains(trimmed, "@") and Text.Contains(trimmed, "."),
domain = if hasFormat then Text.AfterDelimiter(trimmed, "@") else "",
result = if not hasFormat then "sintaxis inválida"
else
try
let
url = "https://cloudflare-dns.com/dns-query?name=" & Uri.EscapeDataString(domain) & "&type=MX",
response = Web.Contents(url, [Headers=[Accept="application/dns-json"]]),
json = Json.Document(response),
status = json[Status],
hasMX = if Record.HasFields(json, "Answer") then List.Contains(List.Transform(json[Answer], each _[type]), 15) else false
in
if status = 3 then "dominio no existe"
else if status = 0 and hasMX then "OK"
else if status = 0 then "sin MX"
else "DNS error"
otherwise "error consulta"
in result,
Source = <tu paso anterior aquí>
in
Source
- En una columna nueva usa
VerifyDomain([email]).
Limitaciones:
- Power Query tarda ~200ms-1s por llamada DNS. Para 5.000 filas prevé 15-40 min.
- Excel puede quejarse con "no puedes ejecutar consultas web sin permiso" — acepta las 2-3 veces que pregunte al primer refresh.
Método 4 — Herramienta externa (para volumen o análisis completo)
Cuando la lista pasa de 5.000 filas o quieres además duplicados (con normalización), desechables y estimación económica:
- Exporta tu tabla desde Excel: Archivo → Guardar como → CSV UTF-8 (delimitado por comas).
- Sube el CSV al analizador gratis de ClearRows en clearrows.com/salud.
En 30 segundos ves:
- % de emails inválidos con DNS de cada dominio
- Duplicados con normalización agresiva (Gmail con puntos + alias
+) - Desechables detectados
- Score de salud sobre 100
- Pérdida estimada al mes por lista sin limpiar
Es gratis para el análisis y el archivo se elimina en 24h. Para la limpieza completa entregada como CSV limpio, cuesta 67€ hasta 25.000 filas.
Alternativa sin subir archivo: el verificador de emails en tu navegador — hasta 500 emails a la vez, 100% local.
Errores comunes al validar emails en Excel
Emails que "se ven bien" pero salen inválidos El Método 1 puede marcarlos OK aunque el dominio no exista. Para eso está el Método 3 (DNS). No mezcles conclusiones: sintaxis OK ≠ email existe.
Excel convierte emails largos a notación científica
Sí, en teoría no debería. En la práctica sí ocurre con ciertos exports de plataformas antiguas si el campo pierde el tipo Text. Al abrir el CSV desde Excel, en el asistente elige Text para la columna email. O usa Google Sheets, que respeta mejor tipos de origen.
Fórmulas se ralentizan con 50.000+ filas
Excel local con muchas fórmulas volátiles empieza a arrastrar. Convierte tu tabla a Tabla estructurada (Ctrl+T), o mueve la lógica a Power Query, o exporta y usa herramienta externa.
Los emails con acentos en el local (josé@empresa.es)
Los estándares internacionales (IDN + EAI, RFC 6531) permiten UTF-8 en el local. Los regex clásicos los rechazan. Si tu público es corporativo español (empresas con TLDs .es), es raro. Si sirve consumidor global, quizá quieras relajar la regex.
Preguntas frecuentes
¿Excel puede llamar a la API de ZeroBounce/Bouncer/NeverBounce para SMTP-level?
Sí, con Power Query o macros VBA + MSXML2.XMLHTTP. Coste: 8-16$/1.000 emails.
¿Qué es un "hard bounce" y por qué debo evitarlo antes de enviar? Hard bounce = el servidor destino rechaza el email definitivamente (buzón no existe, dominio no existe). Cada hard bounce degrada tu reputación de dominio con Gmail/Outlook, aumentando la probabilidad de que futuros envíos vayan a spam — también para los buenos destinatarios.
¿Cada cuánto debería re-verificar mi lista? Cada 6 meses mínimo. Cada 3 meses si haces campañas semanales o tu lista tiene más de 5 años.
¿Excel Online (versión web) puede usar REGEX.PROBAR?
Sí, si tu cuenta tiene Microsoft 365 con las funciones actualizadas activadas. Power Query en cambio requiere Excel de escritorio (Windows) o Excel para Mac 16.65+.
Lo siguiente
Analiza tu lista completa en ClearRows /salud →
30 segundos, sin registro. O usa el verificador rápido para hasta 500 emails.
ClearRows — Barcelona. Datos limpios, ventas reales.