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

كيفية استخراج عنوان البريد الإلكتروني بسرعة من سلسلة نصية؟

عند استيراد بعض عناوين البريد الإلكتروني من موقع الويب إلى ورقة عمل Excel ، هناك دائمًا نص غير ذي صلة ، لكنك الآن تريد فقط استخراج عناوين البريد الإلكتروني الخالصة من السلسلة النصية (انظر لقطات الشاشة التالية). كيف يمكنك الحصول بسرعة على عناوين البريد الإلكتروني فقط من نص الخلية؟

doc-extract-البريد الإلكتروني 1 -2 doc-extract-البريد الإلكتروني 2

استخراج عنوان البريد الإلكتروني من سلسلة نصية باستخدام الصيغة

استخراج عنوان البريد الإلكتروني من سلسلة نصية باستخدام وظيفة محددة بواسطة المستخدم

استخراج عنوان البريد الإلكتروني من سلسلة نصية برمز VBA

استخراج عنوان البريد الإلكتروني من سلسلة نصية باستخدام كوتولس ل إكسيل


السهم الأزرق الحق فقاعة استخراج عنوان البريد الإلكتروني من سلسلة نصية باستخدام الصيغة

أقدم لكم هنا صيغة طويلة لاستخراج عناوين البريد الإلكتروني فقط من النص في Excel. يرجى القيام بما يلي:

1. في الخلية المجاورة B1 ، أدخل هذه الصيغة = TRIM (RIGHT (SUBSTITUTE (LEFT (A1، FIND ("، A1 &" "، FIND (" @ "، A1)) - 1)،" "، REPT (" "، LEN (A1)))، LEN ( A1))).

doc-extract-البريد الإلكتروني 3

2. ثم اضغط أدخل المفتاح ، ثم حدد الخلية B1 ، واسحب مقبض التعبئة إلى النطاق الذي تريد أن يحتوي على هذه الصيغة. وقد تم استخراج عناوين البريد الإلكتروني الموجودة في النطاق من السلسلة النصية. انظر لقطة الشاشة:

doc-extract-البريد الإلكتروني 4

الملاحظات:

1. سيتم أيضًا استخراج علامات الترقيم بعد عنوان البريد الإلكتروني.

2. إذا كانت الخلايا لا تحتوي على عناوين البريد الإلكتروني ، فستعرض الصيغة قيم الخطأ.

3. إذا كان هناك أكثر من عنوان بريد إلكتروني في الخلية ، فستستخرج الصيغة العنوان الأول فقط.


استخراج عناوين بريد إلكتروني متعددة من السلاسل النصية

كوتولس ل إكسيلالصورة استخراج عنوان البريد الإلكتروني يمكن أن تساعدك على استخراج عناوين البريد الإلكتروني من السلاسل النصية بسرعة وسهولة. انقر لتنزيل Kutools for Excel!

استخراج doc لرسائل البريد الإلكتروني -1

كوتولس ل إكسيل: مع أكثر من 300 وظيفة إضافية مفيدة في Excel ، يمكنك تجربتها مجانًا دون قيود خلال 30 يومًا. تنزيل وتجربة مجانية الآن!


السهم الأزرق الحق فقاعة استخراج عنوان البريد الإلكتروني من سلسلة نصية باستخدام وظيفة محددة بواسطة المستخدم

باستثناء الصيغة أعلاه ، يمكن أن تساعدك الوظيفة المحددة من قبل المستخدم أيضًا في الحصول على عنوان البريد الإلكتروني من السلسلة النصية.

1. اضغط باستمرار على ALT + F11 مفاتيح ، ويفتح ميكروسوفت فيسوال باسيك للتطبيقات نافذة.

2. انقر إدراج > وحدة، ولصق الماكرو التالي في نافذة الوحدة النمطية.

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. ثم احفظ الرمز وأدخل الصيغة = ExtractEmailFun (A1) في خلية فارغة مجاورة ، انظر لقطة الشاشة:

doc-extract-البريد الإلكتروني 5

4. ثم اضغط أدخل المفتاح ، حدد الخلية B1 ، واسحب مقبض التعبئة إلى النطاق الذي تحتاجه الصيغة. وتم استخراج كافة عناوين البريد الإلكتروني من نص الخلية. انظر لقطة الشاشة:

doc-extract-البريد الإلكتروني 6

الملاحظات:

1. إذا كانت الخلايا لا تحتوي على عناوين البريد الإلكتروني ، فستكشف عن خلايا فارغة.

2. إذا كان هناك أكثر من عنوان بريد إلكتروني في الخلية ، فسيتم استخراج جميع رسائل البريد الإلكتروني.


السهم الأزرق الحق فقاعة استخراج عنوان البريد الإلكتروني من سلسلة نصية برمز VBA

إذا كنت تشعر أن الصيغ أعلاه مزعجة بالنسبة لك ، فيمكن أن يساعدك رمز VBA التالي في استخراج عناوين البريد الإلكتروني في مكان واحد.

1. اضغط باستمرار على ALT + F11 مفاتيح ، ويفتح ملف ميكروسوفت فيسوال باسيك للتطبيقات نافذة.

2. انقر إدراج > وحدة، ولصق الماكرو التالي في ملف نافذة الوحدة.

فبا: استخراج عناوين البريد الإلكتروني من سلسلة نصية

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. ثم اضغط F5 مفتاح لتشغيل هذا الرمز ، ويجب عليك تحديد النطاق الذي تريد استخدام VBA في مربع الحوار المنبثق ، انظر لقطة الشاشة:

doc-extract-البريد الإلكتروني 7

4. ثم اضغط OK، وتم استخراج عناوين البريد الإلكتروني من السلاسل النصية المحددة. انظر لقطات الشاشة:

doc-extract-البريد الإلكتروني 8 -2 doc-extract-البريد الإلكتروني 9

الملاحظات:

1. إذا كانت الخلايا لا تحتوي على عناوين البريد الإلكتروني ، فسوف تكشف عن الخلايا الفارغة.

2. سيتم استخراج جميع رسائل البريد الإلكتروني ، إذا كان هناك أكثر من عنوان بريد إلكتروني في الخلية.

3. ستغطي رسائل البريد الإلكتروني المستخرجة البيانات الأصلية ، لذا من الأفضل نسخ البيانات احتياطيًا أولاً إذا احتجت إلى ذلك.


السهم الأزرق الحق فقاعة قم باستخراج عنوان البريد الإلكتروني من سلسلة نصية باستخدام Kutools for Excel بنقرة واحدة

تبدو الطرق المذكورة أعلاه معقدة إلى حد ما بالنسبة للمبتدئين في برنامج Excel ، وهنا ، يمكنني أن أوصيك بأداة سريعة وسهلة- كوتولس ل إكسيل، بما لديها استخراج عنوان البريد الإلكتروني فائدة ، يمكنك استخراج عناوين البريد الإلكتروني من السلاسل النصية دون بذل الكثير من الجهد.

كوتولس ل إكسيل : مع أكثر من 300 وظيفة إضافية مفيدة في Excel ، يمكنك تجربتها مجانًا دون قيود في أيام 30.

إذا كنت قد قمت بتثبيت كوتولس ل إكسيليرجى القيام بما يلي:

1. حدد الخلايا التي تحتوي على السلاسل النصية.

2. انقر كوتولس > نص > استخراج عنوان البريد الإلكتروني، انظر لقطة الشاشة:

3. و استخراج عنوان البريد الإلكتروني سيظهر مربع الحوار ، حدد خلية حيث تريد وضع النتيجة ، انظر لقطة الشاشة:

doc-extract-البريد الإلكتروني 9

4. ثم اضغط OK زر ، تم استخراج جميع عناوين البريد الإلكتروني من السلاسل النصية ، انظر الصورة:

doc-extract-البريد الإلكتروني 9

انقر للتنزيل والإصدار التجريبي المجاني Kutools for Excel الآن!


السهم الأزرق الحق فقاعة عرض توضيحي: استخراج عنوان البريد الإلكتروني من سلسلة نصية باستخدام Kutools for Excel

كوتولس ل إكسيل: مع أكثر من 300 وظيفة إضافية مفيدة في Excel ، يمكنك تجربتها مجانًا دون قيود خلال 30 يومًا. تنزيل وتجربة مجانية الآن!

مقالة ذات صلة:

كيفية استخراج المجالات من عناوين بريد إلكتروني متعددة في Excel؟


أفضل أدوات إنتاجية المكتب

Kutools for Excel يحل معظم مشاكلك ويزيد إنتاجيتك بنسبة 80٪

  • إعادة استخدام: أدخل بسرعة الصيغ المعقدة والرسوم البيانية وأي شيء استخدمته من قبل ؛ تشفير الخلايا مع كلمة السر إنشاء قائمة بريدية وإرسال رسائل البريد الإلكتروني ...
  • سوبر فورميولا بار (بسهولة تحرير أسطر متعددة من النص والصيغة) ؛ تخطيط القراءة (قراءة وتحرير أعداد كبيرة من الخلايا بسهولة) ؛ لصق في النطاق المصفى
  • دمج الخلايا / الصفوف / الأعمدة دون فقدان البيانات ؛ تقسيم محتوى الخلايا ؛ ادمج الصفوف / الأعمدة المكررة... منع تكرار الخلايا؛ قارن النطاقات
  • حدد مكرر أو فريد صفوف حدد صفوف فارغة (جميع الخلايا فارغة) ؛ البحث الفائق والبحث الغامض في العديد من المصنفات. تحديد عشوائي ...
  • نسخة طبق الأصل خلايا متعددة بدون تغيير مرجع الصيغة ؛ إنشاء المراجع تلقائيًا إلى أوراق متعددة أدخل الرموز النقطية، مربعات الاختيار والمزيد ...
  • استخراج النص، إضافة نص ، إزالة حسب الموضع ، إزالة الفضاء؛ إنشاء وطباعة المجاميع الفرعية لترحيل الصفحات ؛ التحويل بين محتوى الخلايا والتعليقات
  • سوبر تصفية (حفظ وتطبيق مخططات التصفية على أوراق أخرى) ؛ فرز متقدم حسب الشهر / الأسبوع / اليوم ، التكرار والمزيد ؛ مرشح خاص بواسطة bold، italic ...
  • اجمع بين المصنفات وأوراق العمل؛ دمج الجداول على أساس الأعمدة الرئيسية ؛ تقسيم البيانات إلى أوراق متعددة; تحويل دفعة xls و xlsx و PDF
  • أكثر من 300 ميزة قوية. يدعم Office / Excel 2007-2021 و 365. يدعم جميع اللغات. سهولة النشر في مؤسستك أو مؤسستك. الميزات الكاملة نسخة تجريبية مجانية لمدة 30 يومًا. ضمان استرداد الأموال لمدة 60 يومًا.
علامة تبويب kte 201905

يجلب Office Tab الواجهة المبوبة إلى Office ، ويجعل عملك أسهل بكثير

  • تمكين التحرير والقراءة المبوبة في Word و Excel و PowerPointوالناشر والوصول و Visio والمشروع.
  • فتح وإنشاء مستندات متعددة في علامات تبويب جديدة من نفس النافذة ، بدلاً من النوافذ الجديدة.
  • يزيد من إنتاجيتك بنسبة 50٪ ، ويقلل مئات النقرات بالماوس كل يوم!
أوفيسيتاب القاع
فرز التعليقات حسب
التعليقات (40)
لا يوجد تقييم. كن أول من يقيم!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
استخدم LUL هذا الرمز لاستخراج البريد الإلكتروني. Sub lula () Dim d1 كمتغير cntr = 0 rowstring = ActiveCell.Offset (0، 0) .Value d1 = Split (rowstring، "") Do 'MsgBox d1 (cntr) cntr = cntr + 1 If d1 (cntr) = "" ثم GoTo ttt If InStr (d1 (cntr)، "@") ثم MsgBox d1 (cntr) انتقل إلى ttt End If Loop while d1 (cntr) "" ttt: End Sub
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مفيد جدا ، شكرا!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
شكرا على هذه الصيغة! لقد وفرت لي الكثير من العمل - اضطررت إلى استخراج 1500 رسالة بريد إلكتروني من ورقة Excel سيئة الكتابة للحصول على قائمة تسويق عبر البريد الإلكتروني. بمجرد أن وجدت الصيغة الخاصة بك أخيرًا ، كانت سريعة.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
كود رائع! حقا مفيد. لسوء الحظ ، يتم ربط عدة عناوين بريد إلكتروني بدلاً من فصلها بشكل مفيد ، على سبيل المثال باستخدام فاصلة منقوطة. كيف تضيف فاصل؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
لا توجد صيغة VBA فقط ليتم لصقها في الخلية فقط قم بتغيير المراجع (المثال أدناه ينظر إلى الخلية A1) = TRIM (RIGHT (SUBSTITUTE (LEFT (A1، FIND ("@"، A1) -1)، ""، REPT ( ""، 99))، 99)) & MID (A1، FIND ("@"، A1)، FIND (""، A1 & ""، FIND ("@"، A1)) - FIND ("@"، A1) )
تم تصغير هذا التعليق بواسطة المشرف على الموقع
[quote]... =TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND("@",A1)-1)," ",REPT(" ",99)),99))&MID(A1,FIND("@",A1),FIND(" ",A1&" ",FIND("@",A1))-FIND("@",A1))بواسطتي[/ quote] شكرًا "ME" ، يعمل حرفياً في جدول بيانات Google!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
[اقتباس] لا توجد صيغة فقط لـ VBA ليتم لصقها في الخلية فقط قم بتغيير المراجع (المثال أدناه يلقي نظرة على الخلية A1) = TRIM (RIGHT (SUBSTITUTE (LEFT (A1، FIND ("@"، A1) -1)، "" ، REPT (""، 99))، 99)) & MID (A1، FIND ("@"، A1)، FIND (""، A1 & ""، FIND ("@"، A1)) - FIND ("@" ، A1))بواسطتي[/ اقتباس] شكرا لك. عملت معي.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مدهش! تحياتي الكبيرة لسيناريو VBS! شكرًا!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
شكرا جزيلا لك ، هذا سهل جدا!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
هذا رائع ، لكن لدي الآن مشكلة. توجد مسافة بدلاً من نقطة بين جميع عناوين البريد الإلكتروني (مثل abcd @ aol com) ، لذا فإن الصيغة لا تضع نهاية جميع عناوين البريد الإلكتروني (.net ، .com ، إلخ) في العمود الجديد. كيف يمكنني اصلاح هذا؟
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مرحبًا بالجميع ، كنت أبحث أيضًا عن طريقة لفصل عناوين البريد الإلكتروني ، حتى أتمكن من وضعها في Outlook. لقد أضفت الفاصل "؛" بين عناوين البريد الإلكتروني حتى لا تعمل معًا. اسمحوا لي أن أعرف ما هو رأيك. شكرا لمؤلف النسخة الأصلية لجمع هذا معا! الوظيفة ExtractEmailFun (extractStr As String) كتحديث سلسلة '20150723 خافت CharList كسلسلة عند الخطأ ، استئناف CheckStr التالي = "[A-Za-z0-9 ._-]" ExtractEmailFun = "" Index = 1 Do while True Index1 = VBA. InStr (Index، extractStr، "@") getStr = "" If Index1> 0 ثم لـ p = Index1 - 1 To 1 Step -1 If Mid (extractStr، p، 1) مثل CheckStr ثم getStr = Mid (extractStr، p، 1) & getStr Else Exit For End If التالي getStr = getStr & "@" For p = Index1 + 1 To Len (extractStr) If Mid (extractStr، p، 1) Like CheckStr ثم getStr = getStr & Mid (extractStr، p، 1) Else getStr = getStr الخروج للنهاية إذا كان الفهرس التالي = Index1 + 1 getStr = getStr & "؛" If ExtractEmailFun = "" ثم ExtractEmailFun = getStr Else ExtractEmailFun = ExtractEmailFun & Chr (10) & getStr End إذا وظيفة نهاية الحلقة
تم تصغير هذا التعليق بواسطة المشرف على الموقع
شكرا لمؤلف السيناريو الأصلي ؛ تقدمت وأضفت "؛" فاصلًا بين عناوين البريد الإلكتروني المتعددة. الوظيفة ExtractEmailFun (extractStr As String) كتحديث سلسلة '20150723 خافت CharList كسلسلة عند الخطأ ، استئناف CheckStr التالي = "[A-Za-z0-9 ._-]" ExtractEmailFun = "" Index = 1 Do while True Index1 = VBA. InStr (Index، extractStr، "@") getStr = "" If Index1> 0 ثم لـ p = Index1 - 1 To 1 Step -1 If Mid (extractStr، p، 1) مثل CheckStr ثم getStr = Mid (extractStr، p، 1) & getStr Else Exit For End If التالي getStr = getStr & "@" For p = Index1 + 1 To Len (extractStr) If Mid (extractStr، p، 1) Like CheckStr ثم getStr = getStr & Mid (extractStr، p، 1) Else getStr = getStr الخروج للنهاية إذا كان الفهرس التالي = Index1 + 1 getStr = getStr & "؛" If ExtractEmailFun = "" ثم ExtractEmailFun = getStr Else ExtractEmailFun = ExtractEmailFun & Chr (10) & getStr End إذا وظيفة نهاية الحلقة
تم تصغير هذا التعليق بواسطة المشرف على الموقع
هذا جيد! شكرا.
تم تصغير هذا التعليق بواسطة المشرف على الموقع
أخي ، أنت عبقري حقًا. عملت الصيغة أدناه من أجلي وتم حفظ التدخل اليدوي الذي كان يستغرق ساعات = TRIM (RIGHT (SUBSTITUTE (LEFT (H2، FIND (""، H2 & "" "، FIND (" @ "، H2)) - 1)،" "، REPT (""، LEN (H2)))، LEN (H2))) بارك الله فيك
تم تصغير هذا التعليق بواسطة المشرف على الموقع
أنا بحاجة إلى مزيد من المعلومات حول كيفية استخراج رسائل البريد الإلكتروني
تم تصغير هذا التعليق بواسطة المشرف على الموقع
سيدي العزيز ، كيف يمكنني استخراج معرفات البريد الإلكتروني الصحيحة من مثال قائمة البريد الإلكتروني الخاصة بي أدناه a.hamilton@tradsingapore.com.sg aarabest@emirates.com.net.ae admin@countrywide.com.my
تم تصغير هذا التعليق بواسطة المشرف على الموقع
نظرًا لأن الصيغة ساعدتني كثيرًا ، فقد اعتقدت أنني سأشارك تجربتي. أقوم بتشغيله مقابل قائمة من صفحات الويب بتنسيق html والتي تكون أحيانًا طويلة جدًا بحيث تنتهي أخطاء الصيغة. وفقًا لويكيبيديا ، يبلغ الحد الأقصى لطول عنوان البريد الإلكتروني 254 حرفًا ، لذا فإن استبدال أجزاء len (A1) بـ 256 يحسن ثبات الوظيفة: = TRIM (RIGHT (SUBSTITUTE (LEFT (A1، FIND (""، A1 & ""، FIND ("@"، A1)) - 1)، ""، REPT (""، 256))، 256))
تم تصغير هذا التعليق بواسطة المشرف على الموقع
ممتاز ، رائع. يجب على كل شخص أن يستخدم ..
تم تصغير هذا التعليق بواسطة المشرف على الموقع
إذا كنت أرغب في استخراج عنوان بريد إلكتروني واحد فقط من A1 ، فإن هذه الصيغة تفعل ذلك وتبلغ فقط فارغة ، وليس خطأ ، إذا كان A1 لا يحتوي على عنوان بريد إلكتروني. أجد هذا حلاً أسهل من محاولة إتقان كل هذه البرامج النصية ، ولا يكلف شيئًا. = IFERROR (TRIM (RIGHT (SUBSTITUTE (LEFT (A1، FIND (""، A1 & ""، FIND ("@"، A1)) - 1)، ""، REPT (""، LEN (A1)))، LEN (A1)))، "")
تم تصغير هذا التعليق بواسطة المشرف على الموقع
مفيد للغاية. شكرًا جزيلاً!!
تم تصغير هذا التعليق بواسطة المشرف على الموقع
رهيبة المعلومات! شكرًا
تم تصغير هذا التعليق بواسطة المشرف على الموقع
أنا أستخدم Excel 2007 على HP. إذا كانت لديك Melanie Brown في A1 وترغب في أن تقرأ Melanie.Brown@gmail.com في نفس الخلية ، فكيف يمكنك تحقيق ذلك؟ لدي سلسلة من الرجال للقيام بنفس الطريقة. هل سيساعدني أحد في هذا؟
لا توجد تعليقات منشورة هنا حتى الآن
عرض المزيد
اترك تعليقاتك
النشر كضيف
×
قيم المنشور:
0   الشخصيات
المواقع المقترحة

تواصل معنا

حقوق التأليف والنشر © 2009 - شبكة الاتصالات العالمية.extendoffice.com. | كل الحقوق محفوظة. مشغل بواسطة ExtendOffice. | | خريطة الموقع
Microsoft وشعار Office هما علامتان تجاريتان أو علامتان تجاريتان مسجلتان لشركة Microsoft Corporation في الولايات المتحدة و / أو دول أخرى.
محمي بواسطة Sectigo SSL