Formula per validare un indirizzo email
Creaiamo una formula per validare un indirizzo email
Oggi mi è capitato un elenco di nomi, cognomi ed indirizzi email veramente lungo. Quello che dovevo fare era valutare se gli indirizzi email fossero formalmente validi. Excel, infatti, non si preoccupa di controllare se un indirizzo email è valido o meno, se in una cella trova un “@” per lui è un indirizzo valido e, automaticamente, lo trasforma in link. Capita, però, che le persone mettano di tutto e di più nelle celle dedicate agli indirizzi email, incluse email con spazi, email senza nulla dopo il “.”, numeri di telefono e chissà cos’altro. Vediamo allora una formula, un po’ complessa per dirla tutta, che sia in grado di valutare se un indirizzo è formalmente valido.
Visto che non mi è possibile metterla tutta di seguito (Blogger me la trancia) allora ne approfitto per suddividerla in frammenti e spiegarvela, se invece volete copiarla ed incollarla in un vostro file allora scaricate questo file Excel 🙂
Iniziamo:
=SE(VAL.ERR(RICERCA(" ";A1));
Ecco il primo controllo, se la ricerca di uno spazio ritorna un errore di tipo “#VALORE” allora posso andare avanti, se mi ritorna un numero, invece, vuol dire che è presente uno spazio e quindi non è una mail valida e la formula restituisce il valore FALSO.
SE(VAL.ERR(RICERCA("@";A1));FALSO;
Secondo controllo, a differenza di prima controllo se la ricerca del simbolo at (@) restituisce un errore di tipo #N/D allora la mail non è valida, quindi la formula restituirà FALSO, altrimenti si prosegue con il prossimo controllo
SE(VAL.ERR(RICERCA(".";STRINGA.ESTRAI(A1;RICERCA("@";A1)+2;
LUNGHEZZA(A1))));FALSO;
Qui la cosa si fa un po’ più complessa, sempre usando il controllo sull’errore faccio una ricerca del punto ( . ) nella stringa che parte dalla posizione di “@” + 2, questo perché ci deve essere almeno un carattere dopo il simbolo @, altrimenti la mail non sarebbe valida, se anche questo controllo passa vado all’ultimo controllo
SE(VAL.ERR(LUNGHEZZA(STRINGA.ESTRAI(STRINGA.ESTRAI(A1;RICERCA("@";A1);
LUNGHEZZA(A1));RICERCA(".";STRINGA.ESTRAI(A1;RICERCA("@";A1);
LUNGHEZZA(A1)));LUNGHEZZA(A1))));FALSO;
SE(LUNGHEZZA(STRINGA.ESTRAI(STRINGA.ESTRAI(A1;RICERCA("@";A1);
LUNGHEZZA(A1));RICERCA(".";STRINGA.ESTRAI(A1;RICERCA("@";A1);
LUNGHEZZA(A1)));LUNGHEZZA(A1)))<3;FALSO;VERO))));FALSO)
Questo è un unico controllo che verifica se, incluso il punto, ci siano almeno 3 caratteri, inoltre di sono i risultati FALSO di tutti i precedenti SE.
Passato anche questo controllo la nostra formula restituirà VERO.
Per adattare questa formula dovrete solo sostituire il riferimento A1 con la l’indirizzo della cella che contiene l’indirizzo email da controllare
Come al solito sono sempre disponibile per ulteriori chiarimenti, buon divertimento 🙂
avrei un grosso problema a sistemare un elenco csv contatti in excel per estrarre da una stessa cella piena di parole e punteggiatura, solo l'email. ho applicato la formula lunga qui sopra ma mi dice che contiene errore.
la mia email: potz1090@gmail.com
desidero una mano xk ho da sistemare 5900 contatti..se ti va di spiegarmi è gradita risposta sulla mia email.ti ringrazio
Ciao, in effetti quella formula serve a validare un indirizzo email, al momento non mi viene in mente nessuna formula che estragga la mail da una cella.
Se conosci il VBA ti posso scrivere al volo una funzione che possa farlo.
Esiste Easy email exctractor che ti consente di estrarre velocemente la mail
Molto interessante. Segnalo però che il file non è scaricabile.
Potresti mandarmelo?
Grazie
angelo
CIAO, IL FILE NON E’ SCARICABILE, E’ POSSIBILE RIPRISTINARLO? GRAZIE
CIAO, IL DOWNLOAD NON E’ DISPONIBILE, E’ POSSIBILE RIPRISTINARLO? GRAZIE