validar validacion para formato electronico ejemplos direcciones datos crear correo celda excel excel-2007

validacion - fórmula de validación de correo electrónico de excel



validar email en celda excel (4)

Tengo una columna donde las personas ingresan la dirección de correo electrónico manualmente. Quiero validar la dirección de correo electrónico utilizando esta fórmula:

=AND(FIND(“@”,A2),FIND(“.”,A2),ISERROR(FIND(” “,A2)))

pero a Excel se le ocurre que la fórmula que escribió contiene un error. Para mí la fórmula se ve bien. ¿Tienen alguna sugerencia?


Me topé con un problema de firstname.lastname@domain@topdomain para el cual hice una enmienda que verifica el orden correcto de @ y . Con un Like implícito sin VBA.

=AND(NOT(ISERROR(VLOOKUP("*@*.*",A2,1,FALSE))),ISERROR(FIND(" ",A2)))

EDITAR
"*?@?*.??*" parece ser aún más descriptivo, siempre y cuando los dominios de nivel superior tengan al menos dos caracteres (a partir de esta publicación son).


Otra forma de validar los correos electrónicos en Excel es mediante el uso del código VBA: vea el código siguiente tomado de http://www.vbaexpress.com/kb/getarticle.php?kb_id=281 , funciona muy bien tal como está, y puede modificar el código en función en sus necesidades

Sub email() Dim txtEmail As String txtEmail = InputBox("Type the address", "e-mail address") Dim Situacao As String '' Check e-mail syntax If IsEmailValid(txtEmail) Then Situacao = "Valid e-mail syntax!" Else Situacao = "Invalid e-mail syntax!" End If '' Shows the result MsgBox Situacao End Sub Function IsEmailValid(strEmail) Dim strArray As Variant Dim strItem As Variant Dim i As Long, c As String, blnIsItValid As Boolean blnIsItValid = True i = Len(strEmail) - Len(Application.Substitute(strEmail, "@", "")) If i <> 1 Then IsEmailValid = False: Exit Function ReDim strArray(1 To 2) strArray(1) = Left(strEmail, InStr(1, strEmail, "@", 1) - 1) strArray(2) = Application.Substitute(Right(strEmail, Len(strEmail) - Len(strArray(1))), "@", "") For Each strItem In strArray If Len(strItem) <= 0 Then blnIsItValid = False IsEmailValid = blnIsItValid Exit Function End If For i = 1 To Len(strItem) c = LCase(Mid(strItem, i, 1)) If InStr("abcdefghijklmnopqrstuvwxyz_-.", c) <= 0 And Not IsNumeric(c) Then blnIsItValid = False IsEmailValid = blnIsItValid Exit Function End If Next i If Left(strItem, 1) = "." Or Right(strItem, 1) = "." Then blnIsItValid = False IsEmailValid = blnIsItValid Exit Function End If Next strItem If InStr(strArray(2), ".") <= 0 Then blnIsItValid = False IsEmailValid = blnIsItValid Exit Function End If i = Len(strArray(2)) - InStrRev(strArray(2), ".") If i <> 2 And i <> 3 Then blnIsItValid = False IsEmailValid = blnIsItValid Exit Function End If If InStr(strEmail, "..") > 0 Then blnIsItValid = False IsEmailValid = blnIsItValid Exit Function End If IsEmailValid = blnIsItValid End Function

Para obtener instrucciones sobre cómo consultar http://www.vbaexpress.com/kb/getarticle.php?kb_id=281#instr


Recibí el mismo error para su código, y parece que NO tiene "comillas dobles", esto es diferente de este símbolo: " .

Prueba mi ortografía: =AND(FIND("@",A2),FIND(".",A2),ISERROR(FIND(" ",A2))) - ¡Espero que te ayude!

EDITAR:

Además, considere usar =AND(NOT(ISERROR(FIND("@",A1))),NOT(ISERROR(FIND(".",A1))),ISERROR(FIND(" ",A1))) - Eso evitará errores en caso @ o . están perdidos. Aún así, esto pasará como OK aaa@. , pero supongo que incluso un enfoque tan directo tiene derechos para ser utilizado)


=AND(IFERROR(FIND(".",A2),FALSE),IFERROR(FIND(".",A2,FIND("@",A2)),FALSE))

Esto validará el. es después de la @ que no se prueba en la respuesta aceptada