Note: The other languages of the website are Google-translated. Back to English

Come estrarre rapidamente l'indirizzo e-mail dalla stringa di testo?

Quando importi alcuni indirizzi e-mail dal sito Web al foglio di lavoro Excel, contiene sempre testo irrilevante, ma ora vuoi solo estrarre gli indirizzi e-mail puri dalla stringa di testo (vedi schermate seguenti). Come hai potuto ottenere rapidamente solo gli indirizzi email dal testo della cella?

doc-extract-email1 -2 doc-extract-email2

Estrai l'indirizzo email dalla stringa di testo con la formula

Estrai l'indirizzo email dalla stringa di testo con la funzione definita dall'utente

Estrai l'indirizzo email dalla stringa di testo con il codice VBA

Estrai l'indirizzo email dalla stringa di testo con Kutools per Excel


freccia blu freccia destra Estrai l'indirizzo email dalla stringa di testo con la formula

Qui ti presento una lunga formula per estrarre solo gli indirizzi email dal testo in Excel. Si prega di fare quanto segue:

1. Nella cella adiacente B1, inserisci questa formula = TRIM (RIGHT (SOSTITUISCE (LEFT (A1, FIND ("", A1 & "", FIND ("@", A1)) - 1), "", REPT ("", LEN (A1))), LEN ( A1))).

doc-extract-email3

2. Quindi premere Entra chiave, quindi selezionare la cella B1 e trascinare il quadratino di riempimento sull'intervallo in cui si desidera contenere questa formula. E gli indirizzi e-mail nell'intervallo sono stati estratti dalla stringa di testo. Vedi screenshot:

doc-extract-email4

Note:

1. Verrà estratta anche la punteggiatura dopo l'indirizzo e-mail.

2. Se le celle non contengono gli indirizzi di posta elettronica, la formula visualizzerà i valori di errore.

3. Se in una cella sono presenti più indirizzi di posta elettronica, la formula estrarrà solo il primo indirizzo.


Estrai più indirizzi email da stringhe di testo

Kutools for Excel'S Estrai indirizzo email può aiutarti a estrarre gli indirizzi email dalle stringhe di testo in modo rapido e conveniente. Fai clic per scaricare Kutools per Excel!

doc estrarre email-1

Kutools for Excel: con più di 300 utili componenti aggiuntivi di Excel, liberi di provare senza limitazioni in 30 giorni. Scarica e prova gratuita ora!


freccia blu freccia destra Estrai l'indirizzo email dalla stringa di testo con la funzione definita dall'utente

Ad eccezione della formula sopra, una funzione definita dall'utente può anche aiutarti a ottenere l'indirizzo e-mail dalla stringa di testo.

1. Tieni premuto il ALT + F11 chiavi e apre il file Microsoft Visual Basic, Applications Edition finestra.

2. Clic inserire > Moduloe incolla la seguente macro nella finestra del modulo.

Function ExtractEmailFun(extractStr As String) As String
'Update by extendoffice
Dim CharList As String
On Error Resume Next
CheckStr = "[A-Za-z0-9._-]"
OutStr = ""
Index = 1
Do While True
    Index1 = VBA.InStr(Index, extractStr, "@")
    getStr = ""
    If Index1 > 0 Then
        For p = Index1 - 1 To 1 Step -1
            If Mid(extractStr, p, 1) Like CheckStr Then
                getStr = Mid(extractStr, p, 1) & getStr
            Else
                Exit For
            End If
        Next
        getStr = getStr & "@"
        For p = Index1 + 1 To Len(extractStr)
            If Mid(extractStr, p, 1) Like CheckStr Then
                getStr = getStr & Mid(extractStr, p, 1)
            Else
                Exit For
            End If
        Next
        Index = Index1 + 1
        If OutStr = "" Then
            OutStr = getStr
        Else
            OutStr = OutStr & Chr(10) & getStr
        End If
    Else
        Exit Do
    End If
Loop
ExtractEmailFun = OutStr
End Function

3. Quindi salva il codice e inserisci la formula = ExtractEmailFun (A1) in una cella vuota adiacente, vedi screenshot:

doc-extract-email5

4. E poi premere Entra chiave, seleziona la cella B1 e trascina il quadratino di riempimento sull'intervallo in cui hai bisogno della formula. E tutti gli indirizzi email sono stati estratti dal testo della cella. Vedi screenshot:

doc-extract-email6

Note:

1. Se le celle non hanno gli indirizzi e-mail, verranno visualizzate celle vuote.

2. Se in una cella sono presenti più indirizzi di posta elettronica, verranno estratti tutti i messaggi di posta elettronica.


freccia blu freccia destra Estrai l'indirizzo email dalla stringa di testo con il codice VBA

Se ritieni che le formule sopra siano fastidiose per te, il seguente codice VBA può aiutarti a estrarre gli indirizzi e-mail in uno.

1. Tieni premuto il ALT + F11 keys, e apre un file Microsoft Visual Basic, Applications Edition finestra.

2. Clic inserire > Moduloe incolla la seguente macro nel file Finestra del modulo.

VBA: estrae gli indirizzi e-mail dalla stringa di testo

Sub ExtractEmail()
'Update 20130829
Dim WorkRng As Range
Dim arr As Variant
Dim CharList As String
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
arr = WorkRng.Value
CheckStr = "[A-Za-z0-9._-]"
For i = 1 To UBound(arr, 1)
    For j = 1 To UBound(arr, 2)
        extractStr = arr(i, j)
        outStr = ""
        Index = 1
        Do While True
            Index1 = VBA.InStr(Index, extractStr, "@")
            getStr = ""
            If Index1 > 0 Then
                For p = Index1 - 1 To 1 Step -1
                    If Mid(extractStr, p, 1) Like CheckStr Then
                        getStr = Mid(extractStr, p, 1) & getStr
                    Else
                        Exit For
                    End If
                Next
                getStr = getStr & "@"
                For p = Index1 + 1 To Len(extractStr)
                    If Mid(extractStr, p, 1) Like CheckStr Then
                        getStr = getStr & Mid(extractStr, p, 1)
                    Else
                        Exit For
                    End If
                Next
                Index = Index1 + 1
                If outStr = "" Then
                    outStr = getStr
                Else
                    outStr = outStr & Chr(10) & getStr
                End If
            Else
                Exit Do
            End If
        Loop
        arr(i, j) = outStr
    Next
Next
WorkRng.Value = arr
End Sub

3. Quindi premere F5 chiave per eseguire questo codice e dovresti selezionare un intervallo in cui desideri utilizzare VBA nella finestra di dialogo spuntata, vedi screenshot:

doc-extract-email7

4. Quindi fare clic OKe gli indirizzi e-mail sono stati estratti dalle stringhe di testo selezionate. Vedi screenshot:

doc-extract-email8 -2 doc-extract-email9

Note:

1. Se le celle non hanno gli indirizzi e-mail, verranno visualizzate celle vuote.

2. Verranno estratte tutte le e-mail, se in una cella sono presenti più indirizzi e-mail.

3. Le e-mail estratte copriranno i dati originali, quindi è meglio eseguire prima il backup dei dati se necessario.


freccia blu freccia destra Estrai l'indirizzo email dalla stringa di testo con Kutools per Excel con un clic

I metodi di cui sopra sembrano un po 'complicati per il nostro principiante di Excel, qui posso consigliarti uno strumento facile e veloce- Kutools for Excel, Con la sua Estrai indirizzo email utility, puoi estrarre gli indirizzi email dalle stringhe di testo senza troppi sforzi.

Kutools for Excel : con oltre 300 utili componenti aggiuntivi di Excel, da provare gratuitamente senza limitazioni in 30 giorni.

Se hai installato Kutools for Excel, si prega di fare come segue:

1. Seleziona le celle che contengono le stringhe di testo.

2. Clic Kutools > Testo > Estrai indirizzo email, vedi screenshot:

3. E un Estrai indirizzo email verrà visualizzata la finestra di dialogo, selezionare una cella in cui si desidera inserire il risultato, vedere screenshot:

doc-extract-email9

4. Quindi fare clic OK pulsante, tutti gli indirizzi e-mail sono stati estratti dalle stringhe di testo, vedi screenshot:

doc-extract-email9

Fai clic per scaricare e prova gratuita Kutools per Excel ora!


freccia blu freccia destra Demo: estrai l'indirizzo email dalla stringa di testo con Kutools per Excel

Kutools for Excel: con più di 300 utili componenti aggiuntivi di Excel, liberi di provare senza limitazioni in 30 giorni. Scarica e prova gratuita ora!

Articolo correlato:

Come estrarre domini da più indirizzi e-mail in Excel?


I migliori strumenti per la produttività in ufficio

Kutools per Excel risolve la maggior parte dei tuoi problemi e aumenta la tua produttività dell'80%

  • Riutilizzo: Inserisci rapidamente formule complesse, grafici e tutto ciò che hai usato prima; Crittografa celle con password; Crea mailing list e invia email ...
  • Bar Super Formula (modifica facilmente più righe di testo e formula); Layout di lettura (leggi e modifica facilmente un gran numero di celle); Incolla su intervallo filtrato...
  • Unisci celle / righe / colonne senza perdere dati; Contenuto delle celle divise; Combina righe / colonne duplicate... Impedisci celle duplicate; Confronta intervalli...
  • Seleziona Duplica o Unico Righe; Seleziona Righe vuote (tutte le celle sono vuote); Super Find e Fuzzy Find in molte cartelle di lavoro; Selezione casuale ...
  • Copia esatta Più celle senza modificare il riferimento della formula; Riferimenti di creazione automatica a più fogli; Inserisci punti elenco, Caselle di controllo e altro ...
  • Estrai testo, Aggiungi testo, Rimuovi per posizione, Rimuovi spazio; Creare e stampare totali parziali di paging; Converti contenuto e commenti tra celle...
  • Super filtro (salva e applica schemi di filtri ad altri fogli); Ordinamento avanzato per mese / settimana / giorno, frequenza e altro; Filtro speciale in grassetto, corsivo ...
  • Combina cartelle di lavoro e fogli di lavoro; Unisci tabelle in base a colonne chiave; Suddividi i dati in più fogli; Conversione in batch xls, xlsx e PDF...
  • Più di 300 potenti funzionalità. Supporta Office/Excel 2007-2021 e 365. Supporta tutte le lingue. Facile implementazione nella tua azienda o organizzazione. Funzionalità complete Prova gratuita di 30 giorni. Garanzia di rimborso di 60 giorni.
scheda kte 201905

Scheda Office porta l'interfaccia a schede a Office e semplifica notevolmente il lavoro

  • Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Apri e crea più documenti in nuove schede della stessa finestra, piuttosto che in nuove finestre.
  • Aumenta la produttività del 50% e riduce ogni giorno centinaia di clic del mouse!
fondo officetab
Commenti (40)
Ancora nessuna valutazione. Puoi essere il primo a votare!
Questo commento è stato fatto dal moderatore sul sito
LUL UTILIZZA QUESTO CODICE PER L'ESTRATTO DI EMAIL. Sub lula() Dim d1 As Variant cntr = 0 rowstring = ActiveCell.Offset(0, 0).Value d1 = Split(rowstring, " ") Do 'MsgBox d1(cntr) cntr = cntr + 1 If d1(cntr) = "" Then GoTo ttt If InStr(d1(cntr), "@") Then MsgBox d1(cntr) GoTo ttt End If Loop While d1(cntr) "" ttt: End Sub
Questo commento è stato fatto dal moderatore sul sito
molto utile, grazie!
Questo commento è stato fatto dal moderatore sul sito
Grazie per questa formula! Mi hai appena risparmiato un sacco di lavoro: ho dovuto estrarre 1500 e-mail da un foglio Excel scritto male per un elenco di e-mail marketing. Una volta che ho finalmente trovato la tua formula, è stato un gioco da ragazzi.
Questo commento è stato fatto dal moderatore sul sito
Ottimo codice! Davvero utile. Sfortunatamente sta concatenando più indirizzi e-mail anziché separarli in modo utile, ad esempio con un punto e virgola. Come aggiungeresti un separatore?
Questo commento è stato fatto dal moderatore sul sito
nessun VBA solo formula da incollare nella cella Basta cambiare i riferimenti (l'esempio seguente esamina la cella A1) =TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND("@",A1)-1)," ",REPT( " ",99)),99))&MID(A1,TROVA("@",A1),TROVA(" ",A1&" ",TROVA("@",A1))-TROVA("@",A1) )
Questo commento è stato fatto dal moderatore sul sito
[quote]... =TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND("@",A1)-1)," ",REPT(" ",99)),99))&MID(A1,FIND("@",A1),FIND(" ",A1&" ",FIND("@",A1))-FIND("@",A1))Da me[/quote] Grazie "ME", funziona alla lettera nel foglio di lavoro di Google!
Questo commento è stato fatto dal moderatore sul sito
[quote]nessuna formula VBA solo da incollare nella cella Basta cambiare i riferimenti (l'esempio seguente esamina la cella A1) =TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND("@",A1)-1)," " ,RIPETI(" ",99)),99))&MID(A1,TROVA("@",A1),TROVA(" ",A1&" ",TROVA("@",A1))-TROVA("@" ,A1))Da me[/quote] Grazie. Ha funzionato per me.
Questo commento è stato fatto dal moderatore sul sito
Sorprendente! Un grande saluto per lo script VBS! GRAZIE!
Questo commento è stato fatto dal moderatore sul sito
Grazie mille, questo è molto utile!
Questo commento è stato fatto dal moderatore sul sito
Questo è fantastico, ma ora ho un problema. C'è uno spazio invece di un punto tra tutti gli indirizzi email (ad esempio abcd@aol com), quindi la formula non inserisce la fine di tutti gli indirizzi email (.net, .com, ecc.) nella nuova colonna. Come posso risolvere questo problema?
Questo commento è stato fatto dal moderatore sul sito
Ciao a tutti, stavo anche cercando un modo per separare gli indirizzi e-mail, in modo da poterlo inserire in Outlook. Ho aggiunto un separatore "; " tra gli indirizzi e-mail in modo che non vengano eseguiti insieme. Fatemi sapere cosa ne pensate. Grazie all'autore dell'originale per aver messo insieme tutto questo! Funzione ExtractEmailFun(extractStr As String) As String 'Aggiorna 20150723 Dim CharList As String On Error Resume Next CheckStr = "[A-Za-z0-9._-]" ExtractEmailFun = "" Index = 1 Do While True Index1 = VBA. InStr(Index, extractStr, "@") getStr = "" If Index1 > 0 Then For p = Index1 - 1 To 1 Step -1 If Mid(extractStr, p, 1) Like CheckStr Then getStr = Mid(extractStr, p, 1) & getStr Else Exit For End If Next getStr = getStr & "@" For p = Index1 + 1 To Len(extractStr) If Mid(extractStr, p, 1) Like CheckStr Then getStr = getStr & Mid(extractStr, p, 1) Altrimenti getStr = getStr Esci per fine se prossimo Indice = Index1 + 1 getStr = getStr & "; " Se ExtractEmailFun = "" Allora ExtractEmailFun = getStr Funzione di fine ciclo
Questo commento è stato fatto dal moderatore sul sito
Grazie all'autore della sceneggiatura originale; Sono andato avanti e ho aggiunto un separatore "; " tra più indirizzi e-mail. Funzione ExtractEmailFun(extractStr As String) As String 'Aggiorna 20150723 Dim CharList As String On Error Resume Next CheckStr = "[A-Za-z0-9._-]" ExtractEmailFun = "" Index = 1 Do While True Index1 = VBA. InStr(Index, extractStr, "@") getStr = "" If Index1 > 0 Then For p = Index1 - 1 To 1 Step -1 If Mid(extractStr, p, 1) Like CheckStr Then getStr = Mid(extractStr, p, 1) & getStr Else Exit For End If Next getStr = getStr & "@" For p = Index1 + 1 To Len(extractStr) If Mid(extractStr, p, 1) Like CheckStr Then getStr = getStr & Mid(extractStr, p, 1) Altrimenti getStr = getStr Esci per fine se prossimo Indice = Index1 + 1 getStr = getStr & "; " Se ExtractEmailFun = "" Allora ExtractEmailFun = getStr Funzione di fine ciclo
Questo commento è stato fatto dal moderatore sul sito
Questo è buono! grazie.
Questo commento è stato fatto dal moderatore sul sito
Fratello, sei davvero geniale. La formula seguente ha funzionato per me e ha salvato l'intervento manuale che richiedeva ore =TRIM(RIGHT(SUBSTITUTE(LEFT(H2,FIND (" ",H2&" ",FIND("@",H2))-1)," ", REPT(" ",LEN(H2))),LEN(H2))) Dio ti benedica
Questo commento è stato fatto dal moderatore sul sito
ho bisogno di maggiori informazioni su come estrarre le email
Questo commento è stato fatto dal moderatore sul sito
Caro signore, come posso estrarre gli ID e-mail corretti dal mio elenco di e-mail di esempio sotto a.hamilton@tradsingapore.com.sg aarabest@emirates.com.net.ae admin@countrywide.com.my
Questo commento è stato fatto dal moderatore sul sito
visto che la formula mi è stata di grande aiuto, ho pensato di condividere la mia esperienza. Lo eseguo su un elenco di webscrape html che a volte sono così lunghi che la formula si sbaglia. Secondo wikipedia la lunghezza massima di un indirizzo email è di 254 caratteri, quindi la sostituzione delle porzioni len(A1) con 256 migliora la stabilità della funzione: =TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND (" ",A1&" ", TROVA("@",A1))-1)," ", RIPETI(" ",256)),256))
Questo commento è stato fatto dal moderatore sul sito
Eccellente, meraviglioso. tutti dovrebbero usare..
Questo commento è stato fatto dal moderatore sul sito
Se voglio estrarre un solo indirizzo email da A1, questa formula lo fa e segnala solo uno spazio vuoto, non un errore, se A1 non contiene alcun indirizzo email. Trovo che questa sia una soluzione più semplice che provare a padroneggiare tutti questi script e non costa nulla. =IFERROR(TRIM(RIGHT(SOSTITUTO(LEFT(A1,TROVA(" ",A1&" ",TROVA("@",A1))-1)," ",RIPETI(" ",LEN(A1))), LUNGHEZZA(A1))),"")
Questo commento è stato fatto dal moderatore sul sito
Estremamente utile. Molte grazie!!
Questo commento è stato fatto dal moderatore sul sito
Informazioni fantastiche! Grazie
Questo commento è stato fatto dal moderatore sul sito
Sto usando Excel 2007 su un HP. Se hai Melanie Brown in A1 e desideri che legga Melanie.Brown@gmail.com nella stessa cella, come ci riesci? Ho una serie di criniere da fare allo stesso modo. Qualcuno mi aiuterà con questo?
Non ci sono ancora commenti pubblicati qui
Carica Altre
Lasciate i vostri commenti
Pubblicazione come ospite
×
Valuta questo post:
0   Personaggi
Posizioni suggerite

Seguici

Copyright © 2009 - www.extendoffice.com. | Tutti i diritti riservati. Offerto da ExtendOffice, | Mappa del sito
Microsoft e il logo Office sono marchi o marchi registrati di Microsoft Corporation negli Stati Uniti e / o in altri paesi.
Protetto da Sectigo SSL