Validação rigorosa de e-mail no Excel 2013

0

Estou usando o Excel 2013. Estou criando um formulário que o usuário final preencherá.

Eu tenho uma célula para os usuários inserirem seu endereço de e-mail e quero criar uma validação completa de e-mail. Pesquisei muito on-line e tudo que descobri é a sugestão de procurar a presença de @ e . , mas se, por exemplo, o usuário final digitar isso: @@. Com , não erro será sinalizado.

Qual é a validação correta?

Nota: eu tentei usar o UDF e o VBscript que encontrei online e nem funciona para mim.

    
por Mohammed Abusaif 13.07.2016 / 11:25

2 respostas

1

Adaptando A técnica de Bill Manville , isso deve funcionar para você. Vá para Validação de dados e selecione Personalizado . Digite esta fórmula (assumindo que seu endereço de e-mail está na célula A2):

=AND(ISERROR(FIND(" ",A2)),LEN(A2)-LEN(SUBSTITUTE(A2,"@",""))=1,IFERROR(SEARCH("@",A2)<SEARCH(".",A2,SEARCH("@",A2)),0),NOT(IFERROR(SEARCH("@",A2),0)=1),NOT(IFERROR(SEARCH(".",A2,SEARCH("@",A2))-SEARCH("@",A2),0)=1),LEFT(A2,1)<>".",RIGHT(A2,1)<>".")

Aqui está a mesma fórmula espaçada para que seja legível:

=AND(
    ISERROR(FIND(" ",A2))
   ,LEN(A2)-LEN(SUBSTITUTE(A2,"@",""))=1
   ,IFERROR(SEARCH("@",A2)<SEARCH(".",A2,SEARCH("@",A2)),0)
   ,NOT(IFERROR(SEARCH("@",A2),0)=1)
   ,NOT(IFERROR(SEARCH(".",A2,SEARCH("@",A2))-SEARCH("@",A2),0)=1)
   ,LEFT(A2,1)<>"."
   ,RIGHT(A2,1)<>"."
   )

Isso verifica que:

  1. Não há espaços
  2. Apenas um símbolo @
  3. Existem alguns caracteres antes do símbolo @
  4. Pelo menos um símbolo . após o símbolo @
  5. Pelo menos um caractere entre os símbolos @ e seguintes .
  6. O endereço não começa nem termina com .
por 13.07.2016 / 12:51
0

O formato do endereço de e-mail está bem definido em RFC 2822 .

Basicamente, você pode simplificá-lo da seguinte forma.

Você tem duas partes: USER @ Domain.

O domínio está no formato decimal pontilhado. Por exemplo. mydomain.tld, foo.bar.baz.net etc.

O usuário é mais complexo, pode ser uma string entre aspas ou um formato pontilhado com conteúdo entre os pontos e uma opção + marcador.

Exemplo1:
 @@@pen00tje"@superuser.com
O usuário é @@penootje . o domínio é superuser.com . Existe um @ entre o nome de usuário e o domínio.

Exemplo2:
 [email protected]

Exemplo3:
 [email protected]
  Isso será enviado com o destino de entrega [email protected] , mas o campo "Para:" conterá [email protected] . Isso permite que seu cliente de e-mail filtre mensagens.

Exemplo

Inválido :
 Jane..Smith @ Superuser.com (não são permitidos dois pontos no nome de usuário)

A maioria dos formulários da web parecem estar errados. Até mesmo grandes organizações ficam com problemas, pois a Dell e a Visa falham quando encontram endereços de e-mail legais, mas inesperados. Por favor, leia o RFC. A princípio, não é trivial ler o que está escrito, mas ele já vem em um formato perfeito para traduzir em código (ou em regras do Excel). e é a única fonte de verdade para o que é permitido.

    
por 13.07.2016 / 14:46