Validar un email puede ser bastante complicado debido a la cantidad de opciones válidas, un correo electrónico debe tener una arroba y antes debe ir algún texto que puede contener letras, números, guiones y puntos, luego de la arroba puede ir un diferentes textos separados por puntos.

Hasta ahora la mejor forma que he encontrado es usando expresiones regulares, mediante estas podemos buscar textos basándonos en patrones muy complejos. Por ejemplo para identificar un email podríamos usar este patrón:

^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$

Ahora podemos usar esta expresión en nuestras hojas de cálculo creando una función personalizada.

Validar un email mediante función personalizada

Primero ingresamos al editor de VBA (presionando Ctrl+F11) agregamos un modulo y digitamos este código:

Function validaEmail(email) As Boolean

    Dim RegEx As Object

    Set RegEx = CreateObject("vbscript.regexp")
    With RegEx
        .Global = True
        .Pattern = "^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$"
    End With

    validaEmail = RegEx.Test(email)

    Set RegEx = Nothing
End Function

Ahora podemos usar esta fórmula personalizada en la hoja de Excel.

Vista del ejemplo de como validar un email en excel
Validación de correo electrónico en Excel