كيفية استخراج عنوان البريد الإلكتروني بسرعة من سلسلة نصية؟
عند استيراد بعض عناوين البريد الإلكتروني من موقع الويب إلى ورقة عمل Excel ، هناك دائمًا نص غير ذي صلة ، لكنك الآن تريد فقط استخراج عناوين البريد الإلكتروني الخالصة من السلسلة النصية (انظر لقطات الشاشة التالية). كيف يمكنك الحصول بسرعة على عناوين البريد الإلكتروني فقط من نص الخلية؟
استخراج عنوان البريد الإلكتروني من سلسلة نصية باستخدام الصيغة
أقدم لكم هنا صيغة طويلة لاستخراج عناوين البريد الإلكتروني فقط من النص في Excel. يرجى القيام بما يلي:
1. في الخلية المجاورة B1 ، أدخل هذه الصيغة = TRIM (RIGHT (SUBSTITUTE (LEFT (A1، FIND ("، A1 &" "، FIND (" @ "، A1)) - 1)،" "، REPT (" "، LEN (A1)))، LEN ( A1))).
2. ثم اضغط أدخل المفتاح ، ثم حدد الخلية B1 ، واسحب مقبض التعبئة إلى النطاق الذي تريد أن يحتوي على هذه الصيغة. وقد تم استخراج عناوين البريد الإلكتروني الموجودة في النطاق من السلسلة النصية. انظر لقطة الشاشة:
الملاحظات:
1. سيتم أيضًا استخراج علامات الترقيم بعد عنوان البريد الإلكتروني.
2. إذا كانت الخلايا لا تحتوي على عناوين البريد الإلكتروني ، فستعرض الصيغة قيم الخطأ.
3. إذا كان هناك أكثر من عنوان بريد إلكتروني في الخلية ، فستستخرج الصيغة العنوان الأول فقط.
استخراج عناوين بريد إلكتروني متعددة من السلاسل النصية
كوتولس ل إكسيلالصورة استخراج عنوان البريد الإلكتروني يمكن أن تساعدك على استخراج عناوين البريد الإلكتروني من السلاسل النصية بسرعة وسهولة. انقر لتنزيل Kutools for Excel!
كوتولس ل إكسيل: مع أكثر من 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) في خلية فارغة مجاورة ، انظر لقطة الشاشة:
4. ثم اضغط أدخل المفتاح ، حدد الخلية B1 ، واسحب مقبض التعبئة إلى النطاق الذي تحتاجه الصيغة. وتم استخراج كافة عناوين البريد الإلكتروني من نص الخلية. انظر لقطة الشاشة:
الملاحظات:
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 في مربع الحوار المنبثق ، انظر لقطة الشاشة:
4. ثم اضغط OK، وتم استخراج عناوين البريد الإلكتروني من السلاسل النصية المحددة. انظر لقطات الشاشة:
الملاحظات:
1. إذا كانت الخلايا لا تحتوي على عناوين البريد الإلكتروني ، فسوف تكشف عن الخلايا الفارغة.
2. سيتم استخراج جميع رسائل البريد الإلكتروني ، إذا كان هناك أكثر من عنوان بريد إلكتروني في الخلية.
3. ستغطي رسائل البريد الإلكتروني المستخرجة البيانات الأصلية ، لذا من الأفضل نسخ البيانات احتياطيًا أولاً إذا احتجت إلى ذلك.
قم باستخراج عنوان البريد الإلكتروني من سلسلة نصية باستخدام Kutools for Excel بنقرة واحدة
تبدو الطرق المذكورة أعلاه معقدة إلى حد ما بالنسبة للمبتدئين في برنامج Excel ، وهنا ، يمكنني أن أوصيك بأداة سريعة وسهلة- كوتولس ل إكسيل، بما لديها استخراج عنوان البريد الإلكتروني فائدة ، يمكنك استخراج عناوين البريد الإلكتروني من السلاسل النصية دون بذل الكثير من الجهد.
كوتولس ل إكسيل : مع أكثر من 300 وظيفة إضافية مفيدة في Excel ، يمكنك تجربتها مجانًا دون قيود في أيام 30. |
إذا كنت قد قمت بتثبيت كوتولس ل إكسيليرجى القيام بما يلي:
1. حدد الخلايا التي تحتوي على السلاسل النصية.
2. انقر كوتولس > نص > استخراج عنوان البريد الإلكتروني، انظر لقطة الشاشة:
3. و استخراج عنوان البريد الإلكتروني سيظهر مربع الحوار ، حدد خلية حيث تريد وضع النتيجة ، انظر لقطة الشاشة:
4. ثم اضغط OK زر ، تم استخراج جميع عناوين البريد الإلكتروني من السلاسل النصية ، انظر الصورة:
انقر للتنزيل والإصدار التجريبي المجاني Kutools for Excel الآن!
عرض توضيحي: استخراج عنوان البريد الإلكتروني من سلسلة نصية باستخدام Kutools for Excel
مقالة ذات صلة:
كيفية استخراج المجالات من عناوين بريد إلكتروني متعددة في Excel؟
أفضل أدوات إنتاجية المكتب
عزز مهاراتك في Excel باستخدام Kutools for Excel، واختبر كفاءة لم يسبق لها مثيل. يقدم Kutools for Excel أكثر من 300 ميزة متقدمة لتعزيز الإنتاجية وتوفير الوقت. انقر هنا للحصول على الميزة التي تحتاجها أكثر...
يجلب Office Tab الواجهة المبوبة إلى Office ، ويجعل عملك أسهل بكثير
- تمكين التحرير والقراءة المبوبة في Word و Excel و PowerPointوالناشر والوصول و Visio والمشروع.
- فتح وإنشاء مستندات متعددة في علامات تبويب جديدة من نفس النافذة ، بدلاً من النوافذ الجديدة.
- يزيد من إنتاجيتك بنسبة 50٪ ، ويقلل مئات النقرات بالماوس كل يوم!