استخراج عناوين البريد الإلكتروني بسرعة من سلسلة نصية في Excel - دليل كامل
عند التعامل مع بيانات مستوردة أو سلاسل نصية مختلطة في Excel، قد تجد نفسك بحاجة إلى استخراج عناوين البريد الإلكتروني بسرعة ودقة. سواء كنت تعمل مع قائمة تحتوي على عناوين بريد إلكتروني مختلطة مع نصوص أخرى أو تحتاج إلى استخراج رسائل بريد إلكتروني من مجموعة بيانات كبيرة، هناك عدة طرق فعالة للقيام بهذه المهمة. سيأخذك هذا الدليل عبر تقنيات مختلفة لاستخراج عناوين البريد الإلكتروني من السلاسل النصية، بما في ذلك استخدام Flash Fill، Kutools لـ Excel، الصيغ، الدوال المعرفة من قبل المستخدم، ورمز VBA. كل طريقة توفر مزايا مختلفة حسب احتياجاتك وتعقيد البيانات.

استخراج عنوان البريد الإلكتروني من سلسلة نصية باستخدام Flash Fill
توفر ميزة Flash Fill في Excel طريقة سريعة وفعالة لتنسيق أو استخراج البيانات تلقائيًا بناءً على الأنماط التي تحددها. في هذا القسم، سنوضح لك كيفية استخدام Flash Fill لاستخراج عناوين البريد الإلكتروني من عمود يحتوي على بيانات مختلطة. هذه الطريقة مفيدة بشكل خاص عند التعامل مع قوائم تحتوي على أنواع مختلفة من النصوص وتحتاج فقط إلى استخراج عناوين البريد الإلكتروني.
- انقر فوق الخلية الأولى في العمود المجاور (مثل B2) حيث تريد أن تظهر عناوين البريد الإلكتروني.
- اكتب يدويًا عنوان البريد الإلكتروني من الصف المقابل في العمود A، ثم اضغط على Enter. على سبيل المثال، إذا كانت الخلية A2 تحتوي على "ana varela@gmail.com"، اكتب " ana varela@gmail.com " في الخلية B2.
- ابقَ في الخلية B3 واضغط على "Ctrl + E" لتفعيل Flash Fill. سيقوم Excel تلقائيًا بتعبئة باقي العمود B بالعناوين المستخرجة من البريد الإلكتروني.
- Flash Fill متاح في Excel 2013 والإصدارات الأحدث. إذا كنت تستخدم Excel 2010 أو إصدارًا أقدم، فقد لا تكون هذه الميزة متاحة.
- تأكد من أن الخلايا التي تقوم بتطبيق Flash Fill عليها تم تنسيقها كـ 'نص' لتجنب مشكلات التنسيق غير المرغوب فيها.
نقرة واحدة لاستخراج عناوين البريد الإلكتروني دفعة واحدة من سلسلة نصية باستخدام Kutools
عندما يتعلق الأمر باستخراج عناوين البريد الإلكتروني من مجموعة بيانات، فإن ميزة "استخراج عناوين البريد الإلكتروني" في Kutools لـ Excel تقدم بديلاً قويًا لميزة Flash Fill في Excel. بينما توفر Flash Fill نهجًا يدويًا للتعرف على الأنماط، يقوم Kutools لـ Excel بأتمتة العملية بنقرة واحدة فقط، مما يجعله مثاليًا للتعامل مع كميات كبيرة من البيانات بكفاءة. لا يُبسط هذا الأداة عملية الاستخراج فحسب، بل يضمن أيضًا الدقة والسرعة، خاصة عند التعامل مع مجموعات بيانات معقدة أو غير متسقة.
بعد تنزيل وتثبيت Kutools لـ Excel، يرجى القيام بما يلي:
- حدد نطاق الخلايا الذي تريد استخراج عناوين البريد الإلكتروني منه. ثم انتقل إلى تحديد "Kutools" > "النص" > "استخراج عناوين البريد الإلكتروني".
- في مربع الحوار المنبثق "استخراج عناوين البريد الإلكتروني"، حدد خلية لإخراج عنوان البريد الإلكتروني وانقر على موافق.
النتيجة
ثم يتم استخراج جميع عناوين البريد الإلكتروني الموجودة في كل خلية من النطاق المحدد على الفور.

Kutools لـ Excel - قم بتعزيز Excel بأكثر من 300 أدوات أساسية. استمتع بميزات ذكاء اصطناعي مجانية بشكل دائم! احصل عليه الآن
استخراج عنوان البريد الإلكتروني من سلسلة نصية باستخدام صيغة
هنا أقدم لكم صيغة طويلة لاستخراج عناوين البريد الإلكتروني فقط من النص في Excel. يرجى القيام بما يلي:
1. في الخلية المجاورة B1، أدخل الصيغة التالية:
=TRIM(RIGHT(SUBSTITUTE(LEFT(A1,FIND (" ",A1&" ",FIND("@",A1))-1)," ", REPT(" ",LEN(A1))),LEN(A1)))
2. ثم اضغط على مفتاح Enter، وبعد ذلك حدد الخلية B1 واسحب مقبض التعبئة إلى النطاق الذي تريد أن يحتوي على هذه الصيغة. وسيتم استخراج عناوين البريد الإلكتروني في النطاق من السلسلة النصية. انظر لقطة الشاشة:
ملاحظات:
1. سيتم استخراج علامات الترقيم بعد عنوان البريد الإلكتروني أيضًا.
2. إذا لم تحتوي الخلايا على عناوين البريد الإلكتروني، ستعرض الصيغة قيم خطأ.
3. إذا كان هناك أكثر من عنوان بريد إلكتروني في خلية واحدة، ستستخرج الصيغة العنوان الأول فقط.
استخراج عنوان البريد الإلكتروني من سلسلة نصية باستخدام دالة معرفة من قبل المستخدم
بالإضافة إلى الصيغة أعلاه، يمكن أن تساعدك دالة معرفة من قبل المستخدم أيضًا في الحصول على عنوان البريد الإلكتروني من السلسلة النصية.
1. اضغط مع الاستمرار على مفاتيح "ALT + F11"، ويفتح نافذة "Microsoft Visual Basic for Applications".
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. ثم اضغط على مفتاح Enter، وحدد الخلية B1 واسحب مقبض التعبئة إلى النطاق الذي تحتاج فيه إلى الصيغة. وسيتم استخراج جميع عناوين البريد الإلكتروني من النص الموجود في الخلية. انظر لقطة الشاشة:
ملاحظات:
1. إذا لم تحتوي الخلايا على عناوين البريد الإلكتروني، ستظهر خلايا فارغة.
2. إذا كان هناك أكثر من عنوان بريد إلكتروني في خلية واحدة، سيتم استخراج جميع الرسائل الإلكترونية.
استخراج عنوان البريد الإلكتروني من سلسلة نصية باستخدام كود VBA
إذا شعرت أن الصيغ أعلاه مرهقة، يمكن أن يساعدك الكود التالي من VBA في استخراج عناوين البريد الإلكتروني بسرعة.
1. اضغط مع الاستمرار على مفاتيح "ALT + F11"، ويفتح نافذة "Microsoft Visual Basic for Applications".
2. انقر على "إدراج" > "وحدة"، والصق ما يلي من الكود في نافذة الوحدة.
VBA: استخراج عناوين البريد الإلكتروني من سلسلة نصية
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. ثم انقر على موافق، وسيتم استخراج عناوين البريد الإلكتروني من السلاسل النصية المحددة. انظر لقطات الشاشة:
![]() | ![]() | ![]() |
ملاحظات:
1. إذا لم تحتوي الخلايا على عناوين البريد الإلكتروني، ستظهر خلايا فارغة.
2. سيتم استخراج جميع الرسائل الإلكترونية إذا كان هناك أكثر من عنوان بريد إلكتروني في خلية واحدة.
3. سيتم الكتابة فوق الرسائل الإلكترونية المستخرجة على البيانات الأصلية، لذلك يُوصى بعمل نسخة احتياطية من بياناتك أولاً.
عرض توضيحي: استخراج عنوان البريد الإلكتروني من سلسلة نصية باستخدام Kutools لـ Excel
المقالة ذات الصلة:
كيفية استخراج المجالات من عناوين البريد الإلكتروني المتعددة في Excel؟
أفضل أدوات الإنتاجية لمكتب العمل
عزز مهاراتك في Excel مع Kutools لـ Excel، واختبر الكفاءة كما لم يحدث من قبل. Kutools لـ Excel يقدم أكثر من300 ميزة متقدمة لزيادة الإنتاجية وتوفير وقت الحفظ. انقر هنا للحصول على الميزة التي تحتاجها أكثر...
Office Tab يقدم واجهة التبويب لـ Office، ويجعل عملك أسهل بكثير
- تمكين تحرير وقراءة المستندات عبر التبويبات في Word وExcel وPowerPoint.
- افتح وأنشئ عدة مستندات في تبويبات جديدة ضمن نفس النافذة، بدلاً من فتحها في نوافذ منفصلة.
- يزيد إنتاجيتك بنسبة50%، ويقلل مئات النقرات بالماوس يومياً!