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

¿Cómo extraer rápidamente una dirección de correo electrónico de una cadena de texto?

Cuando importa algunas direcciones de correo electrónico desde el sitio web a la hoja de cálculo de Excel, siempre contiene texto irrelevante, pero ahora solo desea extraer las direcciones de correo electrónico puras de la cadena de texto (consulte las siguientes capturas de pantalla). ¿Cómo podría obtener rápidamente solo las direcciones de correo electrónico del texto de la celda?

doc-extraer-correos electrónicos1 -2 doc-extraer-correos electrónicos2

Extraiga la dirección de correo electrónico de la cadena de texto con la fórmula

Extraiga la dirección de correo electrónico de la cadena de texto con la función definida por el usuario

Extraiga la dirección de correo electrónico de la cadena de texto con código VBA

Extraiga la dirección de correo electrónico de la cadena de texto con Kutools para Excel


flecha azul burbuja derecha Extraiga la dirección de correo electrónico de la cadena de texto con la fórmula

Aquí les presento una fórmula larga para extraer solo las direcciones de correo electrónico del texto en Excel. Haz lo siguiente:

1. En la celda adyacente B1, ingrese esta fórmula = RECORTAR (DERECHA (SUSTITUIR (IZQUIERDA (A1, ENCONTRAR ("", A1 & "", ENCONTRAR ("@", A1)) - 1), "", REPETIR ("", LARGO (A1))), LARGO ( A1))).

doc-extraer-correos electrónicos3

2. Entonces presione Enviar , luego seleccione la celda B1 y arrastre el controlador de relleno al rango que desea que contenga esta fórmula. Y las direcciones de correo electrónico en el rango se han extraído de la cadena de texto. Ver captura de pantalla:

doc-extraer-correos electrónicos4

Notas

1. También se extraerá la puntuación después de la dirección de correo electrónico.

2. Si las celdas no contienen las direcciones de correo electrónico, la fórmula mostrará valores de error.

3. Si hay más de una dirección de correo electrónico en una celda, la fórmula solo extraerá la primera dirección.


Extraiga varias direcciones de correo electrónico a partir de cadenas de texto

Kutools for Excel, Extraer dirección de correo electrónico puede ayudarlo a extraer las direcciones de correo electrónico de las cadenas de texto de manera rápida y conveniente. ¡Haga clic para descargar Kutools para Excel!

doc extraer correos electrónicos-1

Kutools for Excel: con más de 300 prácticos complementos de Excel, prueba gratuita y sin límite en 30 días. ¡Descarga y prueba gratis ahora!


flecha azul burbuja derecha Extraiga la dirección de correo electrónico de la cadena de texto con la función definida por el usuario

Excepto la fórmula anterior, una función definida por el usuario también puede ayudarlo a obtener la dirección de correo electrónico de la cadena de texto.

1. Mantenga pulsado el ALT + F11 llaves, y abre el Microsoft Visual Basic para aplicaciones ventana.

2. Hacer clic recuadro > Móduloy pegue la siguiente macro en la ventana 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. Luego guarde el código e ingrese la fórmula = ExtractEmailFun (A1) en una celda en blanco adyacente, vea la captura de pantalla:

doc-extraer-correos electrónicos5

4. Y luego presione Enviar , seleccione la celda B1 y arrastre el controlador de relleno hasta el rango en el que necesita la fórmula. Y todas las direcciones de correo electrónico se han extraído del texto de la celda. Ver captura de pantalla:

doc-extraer-correos electrónicos6

Notas

1. Si las celdas no tienen las direcciones de correo electrónico, se mostrarán celdas en blanco.

2. Si hay más de una dirección de correo electrónico en una celda, se extraerán todos los correos electrónicos.


flecha azul burbuja derecha Extraiga la dirección de correo electrónico de la cadena de texto con código VBA

Si cree que las fórmulas anteriores son problemáticas para usted, el siguiente código VBA puede ayudarlo a extraer las direcciones de correo electrónico en una.

1. Mantenga pulsado el ALT + F11 llaves, y abre un Microsoft Visual Basic para aplicaciones ventana.

2. Hacer clic recuadro > Móduloy pegue la siguiente macro en el Ventana del módulo.

VBA: extraer direcciones de correo electrónico de una cadena 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. Entonces presione F5 para ejecutar este código, y debe seleccionar un rango que desea usar el VBA en el cuadro de diálogo emergente, vea la captura de pantalla:

doc-extraer-correos electrónicos7

4. Luego haga clic OKy las direcciones de correo electrónico se han extraído de las cadenas de texto seleccionadas. Ver capturas de pantalla:

doc-extraer-correos electrónicos8 -2 doc-extraer-correos electrónicos9

Notas

1. Si las celdas no tienen las direcciones de correo electrónico, se mostrarán celdas en blanco.

2. Se extraerán todos los correos electrónicos, si hay más de una dirección de correo electrónico en una celda.

3. Los correos electrónicos extraídos cubrirán los datos originales, por lo que será mejor que primero haga una copia de seguridad de los datos si es necesario.


flecha azul burbuja derecha Extraiga la dirección de correo electrónico de la cadena de texto con Kutools para Excel con un clic

Los métodos anteriores parecen algo complicados para nuestro principiante de Excel, aquí, puedo recomendarle una herramienta rápida y fácil: Kutools for Excel, Con su Extraer dirección de correo electrónico utilidad, puede extraer las direcciones de correo electrónico de las cadenas de texto sin mucho esfuerzo.

Kutools for Excel : con más de 300 prácticos complementos de Excel, prueba gratuita y sin límite en 30 días.

Si tienes instalado Kutools for Excel, haga lo siguiente:

1. Seleccione las celdas que contienen las cadenas de texto.

2. Hacer clic Kutools > Texto > Extraer dirección de correo electrónico, ver captura de pantalla:

3. Y un Extraer dirección de correo electrónico aparecerá el cuadro de diálogo, seleccione una celda donde desea colocar el resultado, vea la captura de pantalla:

doc-extraer-correos electrónicos9

4. Luego haga clic OK botón, todas las direcciones de correo electrónico se han extraído de las cadenas de texto, vea la captura de pantalla:

doc-extraer-correos electrónicos9

Haga clic para descargar y probar gratis Kutools para Excel ahora!


flecha azul burbuja derecha Demostración: extraiga la dirección de correo electrónico de la cadena de texto con Kutools para Excel

Kutools for Excel: con más de 300 prácticos complementos de Excel, prueba gratuita y sin límite en 30 días. ¡Descarga y prueba gratis ahora!

Artículo relacionado:

¿Cómo extraer dominios de varias direcciones de correo electrónico en Excel?


Las mejores herramientas de productividad de oficina

Kutools para Excel resuelve la mayoría de sus problemas y aumenta su productividad en un 80%

  • Reutilizar: Inserte rápidamente fórmulas complejas, gráficos y cualquier cosa que hayas usado antes; Cifrar celdas con contraseña; Crear lista de distribución y enviar correos electrónicos ...
  • Barra de súper fórmula (edite fácilmente varias líneas de texto y fórmulas); Diseño de lectura (leer y editar fácilmente un gran número de celdas); Pegar en rango filtrado...
  • Combinar celdas / filas / columnas sin perder datos; Contenido de celdas divididas; Combinar filas / columnas duplicadas... Prevenir celdas duplicadas; Comparar rangos...
  • Seleccione Duplicado o Único Filas; Seleccionar filas en blanco (todas las celdas están vacías); Super Find y Fuzzy Find en muchos libros de trabajo; Selección aleatoria ...
  • Copia exacta Varias celdas sin cambiar la referencia de la fórmula; Crear referencias automáticamente a varias hojas; Insertar viñetas, Casillas de verificación y más ...
  • Extraer texto, Agregar texto, Eliminar por posición, Quitar espacio; Crear e imprimir subtotales de paginación; Convertir entre contenido de celdas y comentarios...
  • Súper filtro (guardar y aplicar esquemas de filtros a otras hojas); Orden avanzado por mes / semana / día, frecuencia y más; Filtro especial en negrita, cursiva ...
  • Combinar libros y hojas de trabajo; Combinar tablas basadas en columnas clave; Dividir datos en varias hojas; Conversión por lotes de xls, xlsx y PDF...
  • Más de 300 potentes funciones. Compatible con Office/Excel 2007-2021 y 365. Compatible con todos los idiomas. Fácil implementación en su empresa u organización. Funciones completas Prueba gratuita de 30 días. Garantía de devolución de dinero de 60 días.
pestaña kte 201905

Office Tab lleva la interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil

  • Habilite la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
  • Abra y cree varios documentos en nuevas pestañas de la misma ventana, en lugar de en nuevas ventanas.
  • ¡Aumenta su productividad en un 50% y reduce cientos de clics del mouse todos los días!
officetab parte inferior
Comentarios (40)
Aún no hay calificaciones. ¡Sé el primero en calificar!
Este comentario fue minimizado por el moderador en el sitio
LUL UTILIZA ESTE CÓDIGO PARA EL EXTRACTO DE CORREO ELECTRÓNICO. Sub lula() Dim d1 As Variant cntr = 0 filas = ActiveCell.Offset(0, 0).Valor d1 = Split(filas, " ") Do 'MsgBox d1(cntr) cntr = cntr + 1 If d1(cntr) = "" Entonces Ir a ttt Si InStr(d1(cntr), "@") Entonces MsgBox d1(cntr) Ir a ttt Finalizar si bucle Mientras d1(cntr) "" ttt: End Sub
Este comentario fue minimizado por el moderador en el sitio
muy útil, gracias!
Este comentario fue minimizado por el moderador en el sitio
¡Gracias por esta fórmula! Acabas de ahorrarme un montón de trabajo: tuve que extraer 1500 correos electrónicos de una hoja de Excel mal escrita para una lista de marketing por correo electrónico. Una vez que finalmente encontré tu fórmula, fue muy fácil.
Este comentario fue minimizado por el moderador en el sitio
¡Gran código! Realmente util. Desafortunadamente, está concatenando varias direcciones de correo electrónico en lugar de separarlas de manera útil, por ejemplo, con un punto y coma. ¿Cómo agregarías un separador?
Este comentario fue minimizado por el moderador en el sitio
no hay fórmula de VBA solo para pegar en la celda Simplemente cambie las referencias (el ejemplo a continuación se ve en la celda A1) = TRIM (DERECHA (SUSTITUIR (IZQUIERDA (A1, ENCONTRAR ("@", A1) -1), "", REPETIR ( " ",99)),99))&MEDIO(A1,BUSCAR("@",A1),BUSCAR(" ",A1&" ",BUSCAR("@",A1))-BUSCAR("@",A1) )
Este comentario fue minimizado por el moderador en el sitio
[quote]... =TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND("@",A1)-1)," ",REPT(" ",99)),99))&MID(A1,FIND("@",A1),FIND(" ",A1&" ",FIND("@",A1))-FIND("@",A1))Por mi[/quote] ¡Gracias "YO", funciona literalmente en la hoja de cálculo de Google!
Este comentario fue minimizado por el moderador en el sitio
[cita] ninguna fórmula de VBA solo para pegar en la celda Simplemente cambie las referencias (el ejemplo a continuación se ve en la celda A1) = TRIM (DERECHA (SUSTITUIR (IZQUIERDA (A1, ENCONTRAR ("@", A1) -1), "" ,REPETIR(" ",99)),99))&MEDIO(A1,BUSCAR("@",A1),BUSCAR(" ",A1&" ",BUSCAR("@",A1))-BUSCAR("@" ,A1))Por mi[/cita] Gracias. Funcionó para mí.
Este comentario fue minimizado por el moderador en el sitio
¡Increíble! ¡Un gran saludo para el script VBS! ¡GRACIAS!
Este comentario fue minimizado por el moderador en el sitio
¡Muchas gracias, esto es muy útil!
Este comentario fue minimizado por el moderador en el sitio
Esto es genial, pero ahora tengo un problema. Hay un espacio en lugar de un punto entre todas las direcciones de correo electrónico (es decir, abcd@aol com), por lo que la fórmula no coloca el final de todas las direcciones de correo electrónico (.net, .com, etc.) en la nueva columna. ¿Cómo puedo arreglar esto?
Este comentario fue minimizado por el moderador en el sitio
Hola a todos, también estaba buscando una manera de separar las direcciones de correo electrónico, para poder ponerlo en Outlook. He agregado un separador ";" entre las direcciones de correo electrónico para que no se ejecuten juntas. Déjame saber lo que piensas. ¡Gracias al autor del original por reunir esto! Función 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 Entonces 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 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 Función de fin de bucle
Este comentario fue minimizado por el moderador en el sitio
Gracias al autor del guión original; Seguí adelante y agregué un separador ";" entre varias direcciones de correo electrónico. Función 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 Entonces 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 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 Función de fin de bucle
Este comentario fue minimizado por el moderador en el sitio
¡Esto es bueno! gracias.
Este comentario fue minimizado por el moderador en el sitio
Hermano, eres realmente un genio. La siguiente fórmula funcionó para mí y salvó la intervención manual que solía tomar horas = TRIM (DERECHA (SUSTITUTO (IZQUIERDA (H2, ENCONTRAR (" ", H2 &" ", ENCONTRAR ("@", H2)) -1), " ", REPT(" ",LEN(H2))),LEN(H2))) Dios te bendiga
Este comentario fue minimizado por el moderador en el sitio
necesito más información sobre cómo extraer correos electrónicos
Este comentario fue minimizado por el moderador en el sitio
Estimado señor: ¿Cómo puedo extraer las identificaciones de correo electrónico correctas de mi ejemplo de lista de correo electrónico a continuación a.hamilton@tradsingapore.com.sg aarabest@emirates.com.net.ae admin@countrywide.com.my
Este comentario fue minimizado por el moderador en el sitio
ya que la fórmula me ha sido de gran ayuda, pensé en compartir mi experiencia. Lo ejecuto contra una lista de webscrapes html que a veces son tan largos que la fórmula falla. Según wikipedia, la longitud máxima de una dirección de correo electrónico es de 254 caracteres, por lo que reemplazar las porciones de longitud (A1) con 256 mejora la estabilidad de la función: =RECORTAR(DERECHA(SUSTITUIR(IZQUIERDA(A1,BUSCAR (" ",A1&" ", ENCONTRAR("@",A1))-1)," ", REPETIR(" ",256)),256))
Este comentario fue minimizado por el moderador en el sitio
Excelente, maravilloso. cada uno debe debe usar ..
Este comentario fue minimizado por el moderador en el sitio
Si quiero extraer solo una dirección de correo electrónico de A1, esta fórmula lo hace e informa solo un espacio en blanco, no un error, si A1 no contiene ninguna dirección de correo electrónico. Considero que esta es una solución más fácil que tratar de dominar todos estos scripts, y no cuesta nada. =SI.ERROR(RECORTAR(DERECHA(SUSTITUIR(IZQUIERDA(A1,BUSCAR(" ",A1&" ",BUSCAR("@",A1))-1)," ",REPETIR(" ",LARGO(A1))), LARGO(A1))),"")
Este comentario fue minimizado por el moderador en el sitio
Extramadamente útil. ¡¡Muchas gracias!!
Este comentario fue minimizado por el moderador en el sitio
Impresionante información! Gracias
Este comentario fue minimizado por el moderador en el sitio
Estoy usando Excel 2007 en un HP. Si tiene a Melanie Brown en A1 y desea que se lea Melanie.Brown@gmail.com en la misma celda, ¿cómo logra esto? Tengo un hilo de melenas para hacer de la misma manera. ¿Alguien me ayudará con esto?
No hay comentarios publicados aquí todavía
Ver más
Deje sus comentarios
Publicar como invitado
×
Califica esta publicación:
0   Personajes
Ubicaciones sugeridas

Seguinos

Copyright © 2009 - www.extendoffice.com. | Reservados todos los derechos. Energizado por ExtendOffice, | Mapa del Sitio
Microsoft y el logotipo de Office son marcas comerciales o marcas comerciales registradas de Microsoft Corporation en los Estados Unidos y / o en otros países.
Protegido por Sectigo SSL