فيديو يوضح طرق فصل النص والأرقام من خلية واحدة إلى عمودين في الإكسيل

 طرق فصل النص والأرقام من خلية واحدة إلى عمودين



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


طبعا سابقا شرحت هذه الطريقه عن طريق كود نضيفه في المديول الفيجوال بيسك لكن هناك طرق اخرى لفصل الاسم عن الرقم والعكس في نفس الخليه…



- نفرض لدينا البيانات التاليه في خليه C2


Ahmed ail 4454

Zainab Abbas 677434

Akram Tariq  34466

Fatima Hussain 9665

Karrar Jassim 095454

Hassanein Kamal 4576

Zahraa Hussei12347

Tariq Muhammad 7689

Alia Kazem 43546

Qasim Nasser 56565


ونريد فصل الارقام عن النص او العكس نستخدم الطرق التاليه :



لفصل الاسم عن الرقم نستخدم الصيغه التاليه 


=LEFT(C2;MIN(FIND({0;1;2;3;4;5;6;7;8;9};C2&" 0123456789 "))-1)



علما C2 هي الخليه التي تتواجد فيها البيانات انتم فقط غيروا مكان الخليه يعني وين ماتكون بياناتكم غيروها الى الاسم لديكم 



لفصل الرقم عن الاسم نستخدم الطريقه التاليه : 


=RIGHT(C2;LEN(A1)-MIN(FIND({0;1;2;3;4;5;6;7;8;9};C2&"0123456789"))+1)



ايضا C2 هي خليه التي تتواجد فيها البيانات




طريقه اخرى تحتاج إلى كود نضعه في المديول وذلك نضغط Alt + F11 حتى ينفتح عدنه المطور بعدها نضغط على ادراج مديول ونضع الكود التالي 


Public Function SplitText(pWorkRng As Range, pIsNumber As Boolean) As String

'Updateby Extendoffice

Dim xLen As Long

Dim xStr As String

xLen = VBA.Len(pWorkRng.Value)

For i = 1 To xLen

    xStr = VBA.Mid(pWorkRng.Value, i, 1)

    If ((VBA.IsNumeric(xStr) And pIsNumber) Or (Not (VBA.IsNumeric(xStr)) And Not (pIsNumber))) Then

        SplitText = SplitText + xStr

    End If

Next

End Function




الان نكدر نستخدم SplitText لفصل الاسم عن الرقم بعد اضافه الكود اعلاه وبالتالي نستخدم الصيغه التاليه : 


=SplitText(C2;FALSE)


علما C2 مكان تواجد البيانات




 لفصل الرقم عن الاسم نستخدم الصيغه التاليه لنفس الكود اعلاه 


=SplitText(C2,TRUE)


علما C2 مكان تواجد البيانات



شاهدوا الفيديوهات ادناه للتوضيح اكثر



فيديو يوضح فصل الارقام عن النصوص والعكس باستخدام الصيغ في الاكسل



فيديو يوضح فصل الارقام عن النصوص والعكس باستخدام الكود في الفيجوال المتواجد في الاكسل


المعادلات المستخدمة

=LEFT(C2;MIN(FIND({0;1;2;3;4;5;6;7;8;9};C2&" 0123456789 "))-1)  دالة فصل الاسم عن الرقم

=RIGHT(C2;LEN(C2)-MIN(FIND({0;1;2;3;4;5;6;7;8;9};C2&"0123456789"))+1)   دالة فصل الرقم عن الاسم

===========================================

Public Function SplitText(pWorkRng As Range, pIsNumber As Boolean) As String
'Updateby Extendoffice
Dim xLen As Long
Dim xStr As String
xLen = VBA.Len(pWorkRng.Value)
For i = 1 To xLen
    xStr = VBA.Mid(pWorkRng.Value, i, 1)
    If ((VBA.IsNumeric(xStr) And pIsNumber) Or (Not (VBA.IsNumeric(xStr)) And Not (pIsNumber))) Then
        SplitText = SplitText + xStr
    End If
Next
End Function


=SplitText(C2;FALSE) دالة فصل الاسم عن الرقم

=SplitText(C2;TRUE)   دالة فصل الرقم عن الاسم


كود فصل الرقم عن الاسم والعكس




صوره توضح المثال

طرق فصل النص والأرقام من خلية واحدة إلى عمودين


المعادلات ايضا تستخدم اذا كان عدكم نصوص عربيه بدل الإنكليزية بدون اي  اخطاء

تعليقات