كيفية استخراج النص قبل / بعد الفراغ الثاني أو الفاصلة في Excel؟
عند العمل مع بيانات النصوص في Excel، قد تواجه بشكل متكرر سلاسل تحتوي على عدة فراغات، فواصل، أو فواصل أخرى. بينما يمكن لميزة النص إلى أعمدة في Excel تقسيم محتوى الخلية إلى أعمدة منفصلة بناءً على الفاصل المختار، هناك أوقات تحتاج فيها إلى حل أكثر تحديدًا - مثل استخراج كل شيء قبل أو بعد الفراغ الثاني أو الفاصلة في الخلية. يوضح هذا المقال عدة طرق عملية لتحقيق ذلك، بما في ذلك الصيغ التي تستهدف النص قبل أو بعد الفراغ الثاني/الفاصة، وحلول قوية باستخدام ماكرو VBA لأتمتة أو مجموعات بيانات أكبر، وخيار متعدد الاستخدامات باستخدام Power Query لمعالجة البيانات المتقدمة.
استخراج النص قبل الفراغ الثاني أو الفاصلة باستخدام صيغة
استخراج النص بعد الفراغ الثاني أو الفاصلة باستخدام صيغة
استخراج النص قبل أو بعد الفاصل الثاني (فراغ/فاصلة) باستخدام كود VBA
استخراج النص قبل الفراغ الثاني أو الفاصلة باستخدام صيغة
إذا كنت تريد عزل الجزء الموجود في الخلية الذي يظهر قبل الفراغ الثاني، يمكنك استخدام مجموعة من دوال Excel.
1. أدخل الصيغة التالية في خلية فارغة حيث تريد عرض النتيجة (على سبيل المثال، الخلية C2):
=IF(ISERROR(FIND(" ",A2,FIND(" ",A2,1)+1)),A2,LEFT(A2,FIND(" ",A2,FIND(" ",A2,1)+1)))
2. اضغط على Enter. ثم استخدم مؤشر التعبئة لسحب الصيغة لأسفل لجميع الصفوف التي تريد معالجتها. ستعرض النتيجة جميع النصوص قبل الفراغ الثاني في كل صف مطابق - انظر لقطة الشاشة أدناه:
نصيحة: إذا كنت تريد استخراج النص قبل الفاصلة الثانية أو أي فاصل آخر، ما عليك سوى استبدال حرف الفراغ (" "
) في الصيغة بالفاصل المطلوب. على سبيل المثال، بالنسبة للفاصلة:
=IF(ISERROR(FIND(",",A2,FIND(",",A2,1)+1)),A2,LEFT(A2,FIND(",",A2,FIND(",",A2,1)+1)))
هذه الطريقة سريعة وفعالة لاستخراجات واحدة أو عند العمل مع مجموعات بيانات ذات حجم معتدل. ومع ذلك، إذا كان النص غير منتظم للغاية أو يختلف عدد الفواصل بشكل كبير بين الصفوف، فقد تكون هناك حاجة لتعديلات إضافية على الصيغة. أيضًا، كن حذرًا من الفراغات الإضافية أو الخلايا الفارغة، والتي قد تؤثر على النتائج. دائمًا تحقق من الناتج عند تطبيقه على بيانات حرجة.

اكتشف سحر Excel مع Kutools AI
- التنفيذ الذكي: قم بعمليات الخلية، وتحليل البيانات، وإنشاء المخططات - كل ذلك يتم من خلال أوامر بسيطة.
- الصيغ المخصصة: قم بإنشاء صيغ مصممة خصيصًا لتسهيل سير عملك.
- برمجة VBA: كتابة وتطبيق أكواد VBA بسهولة.
- تفسير الصيغ: فهم الصيغ المعقدة بسهولة.
- ترجمة النصوص: تجاوز الحواجز اللغوية داخل جداول البيانات الخاصة بك.
استخراج النص بعد الفراغ الثاني أو الفاصلة باستخدام صيغة
للحصول على النص الذي يظهر بعد الفاصل الثاني للفراغ في الخلية، يمكنك استخدام دوال MID
و FIND
معًا.
1. أدخل الصيغة التالية في الخلية المستهدفة (على سبيل المثال، D2):
=MID(A2, FIND(" ", A2, FIND(" ", A2)+1)+1,256)
2. اضغط على Enter. اسحب مؤشر التعبئة لأسفل عبر جميع الصفوف التي تحتاج إلى استخراج. سيعرض كل شيء بعد الفراغ الثاني لكل صف، كما هو موضح في لقطة الشاشة:
نصيحة: لاستخراج النص بعد الفاصلة الثانية أو أي فاصل آخر، استبدل حرف الفراغ داخل الصيغة بالفاصل المطلوب. بالنسبة للفاصلة، ستكون الصيغة كالتالي:
=MID(A2, FIND(",", A2, FIND(",", A2)+1)+1,256)
استخراج النص قبل أو بعد الفاصل الثاني (فراغ/فاصلة) باستخدام كود VBA
لمجموعات البيانات الأكبر، عمليات الاستخراج المتكررة، أو سيناريوهات الأتمتة، يعد استخدام ماكرو VBA حلاً فعالاً. يسمح لك VBA باستخراج النص قبل أو بعد الفراغ الثاني، الفاصلة، أو أي فاصل آخر - مما يعزز الكفاءة عند العمل مع هياكل بيانات مختلفة أو الحاجة إلى روتين متكرر.
1. حدد Developer > Visual Basic. في نافذة Microsoft Visual Basic for Applications المنبثقة، انقر على Insert > Module، وأدخل الكود التالي في نافذة الوحدة:
Sub ExtractTextSecondDelimiter()
Dim rng As Range
Dim cell As Range
Dim sep As String
Dim direction As String
Dim arr As Variant
Dim result As String
Dim pos1 As Long
Dim pos2 As Long
Dim xTitleId As String
Dim outputCell As Range
Dim i As Long
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set rng = Application.Selection
Set rng = Application.InputBox("Select text range to extract from", xTitleId, rng.Address, Type:=8)
If rng Is Nothing Then Exit Sub
sep = Application.InputBox("Enter delimiter (e.g. space or comma)", xTitleId, " ", Type:=2)
If sep = "" Then Exit Sub
direction = Application.InputBox("Type 'before' for text before, 'after' for text after the 2nd delimiter", xTitleId, "before", Type:=2)
If direction = "" Then Exit Sub
Set outputCell = Application.InputBox("Select the first cell to output the result", xTitleId, Type:=8)
If outputCell Is Nothing Then Exit Sub
Application.ScreenUpdating = False
i = 0
For Each cell In rng
If Not IsEmpty(cell.Value) Then
pos1 = InStr(1, cell.Value, sep)
If pos1 > 0 Then
pos2 = InStr(pos1 + 1, cell.Value, sep)
If pos2 > 0 Then
If LCase(direction) = "before" Then
result = Left(cell.Value, pos2 - 1)
ElseIf LCase(direction) = "after" Then
result = Mid(cell.Value, pos2 + Len(sep))
Else
result = cell.Value
End If
Else
result = cell.Value
End If
Else
result = cell.Value
End If
outputCell.Offset(i, 0).Value = result
End If
i = i + 1
Next
Application.ScreenUpdating = True
MsgBox "Extraction completed.", vbInformation, xTitleId
End Sub
2. بعد لصق الكود، انقر على تشغيل الزر، أو اضغط على F5 لتنفيذ. ستظهر نافذة تطلب منك تحديد نطاق بياناتك، ثم أدخل الفاصل، حدد ما إذا كنت تريد النص "قبل" أو "بعد" الحدوث الثاني، وأخيرًا، حدد خلية لإظهار النتيجة. ستقوم الماكرو بإخراج النتيجة المستخرجة في الخلية المحددة.
أفضل أدوات زيادة الإنتاجية لمجموعة Office
عزز مهاراتك في Excel مع Kutools لـ Excel، وتمتع بكفاءة غير مسبوقة. يقدم Kutools لـ Excel أكثر من300 ميزة متقدمة لتعزيز الإنتاجية وتوفير وقت الحفظ. انقر هنا للحصول على الميزة التي تحتاجها أكثر...
Office Tab يجلب تجربة التبويبات إلى Office، ويجعل عملك أسهل بكثير
- فعّل تحرير وقراءة المستندات عبر التبويبات في Word وExcel وPowerPoint
- افتح وأنشئ مستندات متعددة في تبويبات جديدة ضمن نفس النافذة، بدلاً من فتحها في نوافذ جديدة.
- يمنحك زيادة إنتاجية تصل إلى50% ويوفر عليك مئات النقرات يومياً!