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 en base a patrones muy complejos. Por ejemplo para identificar un email podriamos usar este patron:

^[_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 calculo creando una funcion personalizada.

Validar un email mediante funcion 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