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

Como extrair rapidamente o endereço de e-mail de uma string de texto?

Quando você importa alguns endereços de e-mail do site para a planilha do Excel, sempre contém texto irrelevante, mas agora você deseja apenas extrair os endereços de e-mail puros da sequência de texto (veja as capturas de tela a seguir). Como você poderia obter rapidamente apenas os endereços de e-mail do texto da célula?

doc-extract-e-mails1 -2 doc-extract-e-mails2

Extraia o endereço de e-mail da string de texto com a fórmula

Extraia o endereço de e-mail da string de texto com a função definida pelo usuário

Extraia o endereço de e-mail da string de texto com o código VBA

Extraia o endereço de e-mail da string de texto com o Kutools para Excel


seta azul bolha direita Extraia o endereço de e-mail da string de texto com a fórmula

Aqui, apresento a você uma fórmula longa para extrair apenas os endereços de e-mail do texto no Excel. Faça o seguinte:

1. Na célula adjacente B1, insira esta fórmula = TRIM (RIGHT (SUBSTITUTE (LEFT (A1, FIND ("", A1 & "", FIND ("@", A1)) - 1), "", REPT ("", LEN (A1))), LEN ( A1))).

doc-extract-e-mails3

2. Então aperte Entrar e, em seguida, selecione a célula B1 e arraste a alça de preenchimento para o intervalo que você deseja que contenha esta fórmula. E os endereços de e-mail no intervalo foram extraídos da string de texto. Veja a imagem:

doc-extract-e-mails4

notas:

1. A pontuação após o endereço de e-mail também será extraída.

2. Se as células não contiverem os endereços de e-mail, a fórmula exibirá valores de erro.

3. Se houver mais de um endereço de e-mail em uma célula, a fórmula extrairá apenas o primeiro endereço.


Extraia vários endereços de e-mail de strings de texto

Kutools for Excel'S Extrair endereço de email pode ajudá-lo a extrair os endereços de e-mail das strings de texto de forma rápida e conveniente. Clique para baixar o Kutools para Excel!

doc extrair e-mails-1

Kutools for Excel: com mais de 300 suplementos úteis do Excel, grátis para testar sem limitação em 30 dias. Baixe e teste grátis agora!


seta azul bolha direita Extraia o endereço de e-mail da string de texto com a função definida pelo usuário

Exceto a fórmula acima, uma função definida pelo usuário também pode ajudá-lo a obter o endereço de e-mail a partir da string de texto.

1. Segure o ALT + F11 chaves, e abre o Microsoft Visual Basic para Aplicações janela.

2. Clique inserção > Móduloe cole a macro a seguir na janela Módulo.

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. Em seguida, salve o código e insira a fórmula = ExtractEmailFun (A1) em uma célula em branco adjacente, veja a captura de tela:

doc-extract-e-mails5

4. E, em seguida, pressione Entrar , selecione a célula B1 e arraste a alça de preenchimento até o intervalo em que você precisa da fórmula. E todos os endereços de e-mail foram extraídos do texto da célula. Veja a imagem:

doc-extract-e-mails6

notas:

1. Se as células não tiverem os endereços de e-mail, serão reveladas células em branco.

2. Se houver mais de um endereço de e-mail em uma célula, todos os e-mails serão extraídos.


seta azul bolha direita Extraia o endereço de e-mail da string de texto com o código VBA

Se você acha que as fórmulas acima são problemáticas para você, o código VBA a seguir pode ajudá-lo a extrair os endereços de e-mail em um.

1. Segure o ALT + F11 chaves, e abre um Microsoft Visual Basic para Aplicações janela.

2. Clique inserção > Móduloe cole a macro a seguir no Janela do módulo.

VBA: extrai endereços de e-mail da string de texto

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. Então aperte F5 para executar este código, e você deve selecionar um intervalo que deseja usar o VBA na caixa de diálogo exibida, consulte a captura de tela:

doc-extract-e-mails7

4. Então clique OK, e os endereços de e-mail foram extraídos das sequências de texto selecionadas. Veja as capturas de tela:

doc-extract-e-mails8 -2 doc-extract-e-mails9

notas:

1. Se as células não tiverem endereços de e-mail, serão reveladas células em branco.

2. Todos os e-mails serão extraídos, se houver mais de um endereço de e-mail em uma célula.

3. Os e-mails extraídos cobrirão os dados originais, portanto, é melhor fazer backup dos dados primeiro, se necessário.


seta azul bolha direita Extraia o endereço de e-mail da string de texto com o Kutools para Excel com um clique

Os métodos acima parecem um pouco complicados para nosso iniciante em Excel, aqui, posso recomendar uma ferramenta rápida e fácil Kutools for Excel, Com o seu Extrair endereço de email utilitário, você pode extrair os endereços de e-mail das strings de texto sem muito esforço.

Kutools for Excel : com mais de 300 suplementos úteis do Excel, grátis para testar sem limitação em 30 dias.

Se você instalou Kutools for Excel, faça o seguinte:

1. Selecione as células que contêm as sequências de texto.

2. Clique Kutools > Texto > Extrair endereço de email, veja a captura de tela:

3. E um Extrair endereço de email caixa de diálogo aparecerá, selecione uma célula onde você deseja colocar o resultado, veja a captura de tela:

doc-extract-e-mails9

4. Então clique OK botão, todos os endereços de e-mail foram extraídos das sequências de texto, consulte a imagem:

doc-extract-e-mails9

Clique para baixar e testar gratuitamente o Kutools for Excel Now!


seta azul bolha direita Demonstração: Extraia o endereço de e-mail da string de texto com o Kutools para Excel

Kutools for Excel: com mais de 300 suplementos úteis do Excel, grátis para testar sem limitação em 30 dias. Baixe e teste grátis agora!

Artigo relacionado:

Como extrair domínios de vários endereços de e-mail no Excel?


As melhores ferramentas de produtividade para escritório

O Kutools for Excel resolve a maioria dos seus problemas e aumenta sua produtividade em 80%

  • armadilha para peixes: Insira rapidamente fórmulas complexas, gráficos e qualquer coisa que você tenha usado antes; Criptografar células com senha; Criar lista de discussão e enviar emails ...
  • Barra Super Fórmula (edite facilmente várias linhas de texto e fórmula); Layout de leitura (ler e editar facilmente um grande número de células); Colar na faixa filtrada...
  • Mesclar células / linhas / colunas sem perder dados; Dividir o conteúdo das células; Combinar linhas / colunas duplicadas... Evite células duplicadas; Comparar intervalos...
  • Selecione Duplicado ou Único Linhas; Selecione linhas em branco (todas as células estão vazias); Super Find e Fuzzy Find em muitos livros; Seleção aleatória ...
  • Cópia exata Várias células sem alterar a referência da fórmula; Criação automática de referências para várias folhas; Inserir marcadores, Caixas de seleção e mais ...
  • Extrair Texto, Adicionar texto, remover por posição, Remover Espaço; Criar e imprimir subtotais de paginação; Converter entre conteúdo de células e comentários...
  • Super Filtro (salvar e aplicar esquemas de filtro a outras planilhas); Classificação Avançada por mês / semana / dia, frequência e mais; Filtro Especial por negrito, itálico ...
  • Combine pastas de trabalho e planilhas; Mesclar tabelas com base em colunas-chave; Divida os dados em várias folhas; Conversão em lote de xls, xlsx e PDF...
  • Mais de 300 recursos poderosos. Suporta Office / Excel 2007-2021 e 365. Suporta todos os idiomas. Fácil implantação em sua empresa ou organização. Recursos completos de avaliação gratuita de 30 dias. Garantia de devolução do dinheiro em 60 dias.
guia kte 201905

Guia do Office traz interface com guias para o Office e torna seu trabalho muito mais fácil

  • Habilite a edição e leitura com guias em Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Abra e crie vários documentos em novas guias da mesma janela, em vez de em novas janelas.
  • Aumenta sua produtividade em 50% e reduz centenas de cliques do mouse para você todos os dias!
parte inferior da aba do escritório
Comentários (40)
Ainda não há classificações. Seja o primeiro a avaliar!
Este comentário foi feito pelo moderador no site
LUL USE ESTE CÓDIGO PARA EXTRATO DE E-MAIL. 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
Este comentário foi feito pelo moderador no site
muito útil, obrigado!
Este comentário foi feito pelo moderador no site
Obrigado por esta fórmula! Você acabou de me poupar uma tonelada de trabalho - teve que extrair 1500 e-mails de uma planilha do Excel mal escrita para uma lista de e-mail marketing. Uma vez que eu finalmente encontrei sua fórmula, foi um piscar de olhos.
Este comentário foi feito pelo moderador no site
Ótimo código! Muito útil. Infelizmente, está concatenando vários endereços de e-mail em vez de separá-los de maneira útil, por exemplo, com um ponto e vírgula. Como você adicionaria um separador?
Este comentário foi feito pelo moderador no site
sem VBA apenas fórmula a ser colada na célula Basta alterar as referências (o exemplo abaixo analisa a célula A1) =TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND("@",A1)-1)," ",REPT( " ",99)),99))&MID(A1,FIND("@",A1),FIND(" ",A1&" ",FIND("@",A1))-FIND("@",A1) )
Este comentário foi feito pelo moderador no site
[quote]... =TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND("@",A1)-1)," ",REPT(" ",99)),99))&MID(A1,FIND("@",A1),FIND(" ",A1&" ",FIND("@",A1))-FIND("@",A1))Por mim[/quote] Obrigado "ME", funciona literalmente na planilha do Google!
Este comentário foi feito pelo moderador no site
[quote]sem VBA apenas fórmula a ser colada na célula Basta alterar as referências (o exemplo abaixo analisa a célula A1) =TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND("@",A1)-1)," " ,REPT(" ",99)),99))&MID(A1,FIND("@",A1),FIND(" ",A1&" ",FIND("@",A1))-FIND("@" ,A1))Por mim[/quote] Obrigado. Funcionou para mim.
Este comentário foi feito pelo moderador no site
Incrível! Grandes cumprimentos para o script VBS! VALEU!
Este comentário foi feito pelo moderador no site
Muito obrigado, isso é muito prático!
Este comentário foi feito pelo moderador no site
Isso é ótimo, mas agora eu tenho um problema. Há um espaço em vez de um ponto entre todos os endereços de e-mail (ou seja, abcd@aol com), então a fórmula não está colocando o final de todos os endereços de e-mail (.net, .com, etc.) na nova coluna. Como posso consertar isso?
Este comentário foi feito pelo moderador no site
Olá a todos, eu também estava procurando uma maneira de separar os endereços de e-mail, para que eu pudesse colocá-lo no Outlook. Eu adicionei um separador "; " entre os endereços de e-mail para que eles não sejam executados juntos. Diz-me o que pensas. Obrigado ao autor do original por conseguir isso! Function ExtractEmailFun(extractStr As String) As String 'Update 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 & "@" Para p = Index1 + 1 Para Len(extractStr) If Mid(extractStr, p, 1) Like CheckStr Então getStr = getStr & Mid(extractStr, p, 1) Else getStr = getStr Exit For End If Next Index = Index1 + 1 getStr = getStr & "; " If ExtractEmailFun = "" Then ExtractEmailFun = getStr Else ExtractEmailFun = ExtractEmailFun & Chr(10) & getStr End If Else Exit Do End If Função de Fim de Loop
Este comentário foi feito pelo moderador no site
Agradecimentos ao autor do roteiro original; Eu fui em frente e adicionei um separador "; " entre vários endereços de e-mail. Function ExtractEmailFun(extractStr As String) As String 'Update 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 & "@" Para p = Index1 + 1 Para Len(extractStr) If Mid(extractStr, p, 1) Like CheckStr Então getStr = getStr & Mid(extractStr, p, 1) Else getStr = getStr Exit For End If Next Index = Index1 + 1 getStr = getStr & "; " If ExtractEmailFun = "" Then ExtractEmailFun = getStr Else ExtractEmailFun = ExtractEmailFun & Chr(10) & getStr End If Else Exit Do End If Função de Fim de Loop
Este comentário foi feito pelo moderador no site
Isso é bom! obrigado.
Este comentário foi feito pelo moderador no site
Irmão, você é realmente um gênio. A fórmula abaixo funcionou para mim e salvou a intervenção manual que costumava levar horas =TRIM(RIGHT(SUBSTITUTE(LEFT(H2,FIND" ",H2&" ",FIND("@",H2))-1)," ", REPT(" ",LEN(H2))),LEN(H2))) Deus te abençoe
Este comentário foi feito pelo moderador no site
eu preciso de mais informações como extrair e-mails
Este comentário foi feito pelo moderador no site
Caro senhor, Como posso extrair IDs de e-mail corretos do meu exemplo de lista de e-mail abaixo a.hamilton@tradsingapore.com.sg aarabest@emirates.com.net.ae admin@countrywide.com.my
Este comentário foi feito pelo moderador no site
já que a fórmula tem me ajudado muito, pensei em compartilhar minha experiência. Eu o corro em uma lista de webscrapes html que às vezes são tão longos que a fórmula falha. De acordo com a wikipedia, o comprimento máximo de um endereço de e-mail é de 254 caracteres, portanto, substituir as partes len(A1) por 256 melhora a estabilidade da função: =TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND" ",A1&""), FIND("@",A1))-1)," ", REPT(" ",256)),256))
Este comentário foi feito pelo moderador no site
Excelente, maravilhoso. cada um deve usar..
Este comentário foi feito pelo moderador no site
Se eu quiser extrair apenas um endereço de e-mail de A1, essa fórmula faz isso e relata apenas um espaço em branco, não um erro, se A1 não contiver um endereço de e-mail. Acho isso uma solução mais fácil do que tentar dominar todos esses scripts e não custa nada. =SEERRO(TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND(" ",A1&" ",FIND("@",A1))-1)," ",REPT(" ",LEN(A1))), LEN(A1))),"")
Este comentário foi feito pelo moderador no site
Extremamente útil. Muito obrigado!!
Este comentário foi feito pelo moderador no site
Otimas informações! Obrigado
Este comentário foi feito pelo moderador no site
Estou usando o Excel 2007 em um HP. Se você tem Melanie Brown em A1 e deseja que ela leia Melanie.Brown@gmail.com na mesma célula, como você faz isso? Eu tenho uma série de crinas para fazer o mesmo. Alguém vai me ajudar com isso?
Não há comentários postados aqui ainda
carregar mais
Deixe o seu comentário
Postando como convidado
×
Avalie esta postagem:
0   Personagens
Locais sugeridos

Siga-nos

Copyright © 2009 - www.extendoffice.com. | Todos os direitos reservados. Distribuído por ExtendOffice. | | | Mapa do site
Microsoft e o logotipo do Office são marcas comerciais ou marcas registradas da Microsoft Corporation nos Estados Unidos e / ou em outros países.
Protegido por Sectigo SSL