إجمالي مرات مشاهدة الصفحة

الأربعاء، 21 سبتمبر 2016

تقسيم محتوى خلية بيانات بها فاصل محدد Split Data By Delimiter

السلام عليكم ورحمة الله وبركاته

يوجد طرق كثيرة لتقسيم محتوى خلية بها بيانات ، يفصل بين هذه البيانات فاصل حدد ، سأقدم منها طريقة واحدة باستخدام دالة مستحدثة UDF ، حيث تقوم الدالة بالإشارة إلى موقع عنصر محدد داخل الخلية بناءً على نص محدد (الفاصلة على سبيل المثال)

ويمكن استغلال الدالة في فوائد أخرى من حيث إجراء بحث عن جزء من نص داخل الخلية.


لنفترض أن لديك في الخلية A1 النص التالي :
Ahmed, Tamer, Kamal, Yasser, Salah

المطلوب تقسيم محتوى الخلية إلى مجموعة خلايا بحيث يكون كل اسم موجود في خلية

خطوات العمل بسيطة وهي أن تضع الدالة المعرفة التالية في موديول عادي

Function GetElement(Str As String, Delim As String, Ordinal As Long) As Variant
    Dim strTxt() As String
    
    If Len(Str) = 0 Then
        GetElement = CVErr(xlErrNA)
        Exit Function
    End If

    If Len(Delim) > 1 Then
        GetElement = CVErr(xlErrNA)
        Exit Function
    End If

    If InStr(1, Str, Delim) = 0 Then
        GetElement = CVErr(xlErrNA)
        Exit Function
    End If

    If Ordinal <= 0 Then
        GetElement = CVErr(xlErrNA)
        Exit Function
    End If

    If Ordinal > Len(Str) - Len(Replace(Str, Delim, vbNullString)) + 1 Then
        GetElement = CVErr(xlErrNA)
        Exit Function
    End If
    
    strTxt = Split(Str, Delim)
    GetElement = Application.WorksheetFunction.Trim(strTxt(Ordinal - 1))
End Function

الخطوة الثانية قم بوضع المعادلة التالية في الخلية B1 ، ثم قم بسحبها لنهاية النطاق وليكن إلى الخلية B15

=IFERROR(GetElement($A$1,",",ROW(A1)),"")


إعداد / ياسر خليل أبو البراء

ليست هناك تعليقات:

إرسال تعليق