اذهب الي المحتوي
أوفيسنا

فصل ارقام عن حروف في خلية


الردود الموصى بها

الاخوه الكرام / أعضاء المنتدى

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

لدي ملف في جميع خلايا عمود ما يحتوي على حروف وأرقام (حرفين وأكثر من 3 أرقام) 

كيف لي أن أفصل الحروف عن الارقام وجزاكم الله خيرا 

 

رابط هذا التعليق
شارك

17 دقائق مضت, adsabbah said:

ممكن الملف يكون على أوفيس 2003 

جزاكم اله خيرا

Book1.rar

تفضل اخي على 2003 (عفواً اخي احمد لم انتبه الى مشاركتك)

extract_text_number.rar

تم تعديل بواسطه سليم حاصبيا
  • Like 1
رابط هذا التعليق
شارك

أستاذي الكريم 

جزاكم الله خيرا

ولكن لماذا حذف العلامة العشرية من الأرقام وأضافها في الحروف

450.45 ع. ب

جعلها 45045

 .ع. ب

رابط هذا التعليق
شارك

أخي الكريم صاحب الموضوع

يرجى تغيير اسم الظهور للغة العربية ليعبر عن شخصكم الكريم

 

جرب المعادلة التالية في الخلية B2

=TRIM(IF(A2<>"",RIGHT(SUBSTITUTE(A2," ","!",LEN(A2)-LEN(SUBSTITUTE(A2," ", ""))),LEN(SUBSTITUTE(A2," ","!",LEN(A2)-LEN(SUBSTITUTE(A2," ", ""))))-FIND("!",SUBSTITUTE(A2," ","!",LEN(A2)-LEN(SUBSTITUTE(A2," ", ""))))),""))

ثم ضع المعادلة التالية في الخلية C2

=TRIM(IF(A2<>"",SUBSTITUTE(A2,B2,""),""))

إذا لم تعمل المعادلة قم باستبدال الفاصلة العادية بفاصلة منقوطة

وإليك الملف المرفق فيه تطبيق للمطلوب

 

Split Text & Numbers Using Formulas.rar

  • Like 1
رابط هذا التعليق
شارك

6 ساعات مضت, adsabbah said:

أستاذي الكريم 

جزاكم الله خيرا

ولكن لماذا حذف العلامة العشرية من الأرقام وأضافها في الحروف

450.45 ع. ب

جعلها 45045

 .ع. ب

هذا لانك وضعت العلامة العشرية للنص كنقطة و نفس الشيء للارقام 

ليعمل الكود كما تريد يرجى فصل الاحرف بعلامة غير النقطة و سوف يتم تعديل الكود بعد ذلك

يمكتك استبدال لكود ليصبح هكذا

Sub extract_numbers()

Dim mycol As New Collection
Dim mycol1 As New Collection
Dim mytext, mytext1 As String

lr = Cells(Rows.Count, 1).End(3).Row
For i = 2 To lr
    x = Application.WorksheetFunction.Trim(Range("a" & i).Value)
    On Error Resume Next
     For t = 1 To Len(x)
        y = Mid(x, t, 1)
       
            If IsNumeric(y) Or Asc(y) = 46 Then
              mycol.Add y
              mytext = mytext & y
            Else
              mycol1.Add y
              mytext1 = mytext1 & y
            End If
    
     Next
   
        If Asc(Right((mytext), 1)) = 46 Then
             Cells(i, 2) = Left(mytext, Len(mytext) - 1)
        Else
             Cells(i, 2) = mytext
        End If

  Cells(i, 3) = Left(mytext1, Len(mytext1) - 1) & Chr(46) & Right(mytext1, 1)
    mytext = ""
    mytext1 = ""
Next
End Sub

 

  • Like 2
رابط هذا التعليق
شارك

تسلم أخي الحبيب سليم على هذا الكود الرائع ..

لو تكرمت عايزين منك شروحات للأكواد الجميلة التي تقدمها ليستفيد منها الجميع

بارك الله فيك وجزاك الله خيراً

تقبل تحياتي

 

  • Like 1
رابط هذا التعليق
شارك

جزاكم الله خيرا أستاذي الكريم

ولكن هل يمكن فصل جزء من خلية عن باقي الخلية وليكن مثلا 

الجيزه : المركز المصرى للكتاب ، 1417 هـ = 1996 م.

أريد الحصول على الجملة التي بعد النقطتين وقبل الفصلة وهي "المركز المصري للكتاب"

 حيث أن الملف يحتوي على عمود به أكثر من 2500 صف 

العمود هو E 

أريد فصل الجزء الخاص الذي بعد : وقبل الفصلة في كل خلية فهل يمكن ذالك جزاكم الله خيرا

تم تعديل بواسطه adsabbah
  • Like 1
رابط هذا التعليق
شارك

أستاذي الكريم / 

جزاكم الله خيرا وأستئذنكم في جعل الملف على اكسل 2003 حيث هو المتوفر لدي

 

تم تعديل بواسطه عادل صباح
رابط هذا التعليق
شارك

أخي الكريم عادل

يفضل دائماً إرفاق ملف معبر عن الملف الأصلي

جرب الكود التالي عله يفي بالغرض

Sub SplitIt()
    Dim I As Long, Arr1, Arr2
    
    Application.ScreenUpdating = False
        Arr1 = Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row).Value
        For I = LBound(Arr1) To UBound(Arr1)
            Cells(I, 7) = VBA.Split(Arr1(I, 1), " : ")(1)
        Next I
        
        Arr2 = Range("G1:G" & Cells(Rows.Count, 7).End(xlUp).Row).Value
        For I = LBound(Arr2) To UBound(Arr2)
            Cells(I, 2) = VBA.Split(Arr2(I, 1), " ، ")(0)
            Cells(I, 3) = VBA.Split(Arr2(I, 1), " ، ")(1)
        Next I
        
        Columns(7).ClearContents
    Application.ScreenUpdating = True
End Sub

تقبل تحياتي

Split Text YasserKhalil.rar

  • Like 1
رابط هذا التعليق
شارك

جرب الكود التالي

Sub SplitIt()
    Dim I As Long, Arr1, Arr2, X
    
    Application.ScreenUpdating = False
        Arr1 = Range("E1:E" & Cells(Rows.Count, 5).End(xlUp).Row).Value
        For I = LBound(Arr1) To UBound(Arr1)
            Cells(I, 6) = Mid(VBA.Split(Arr1(I, 1), " : ")(1), 1, InStr(VBA.Split(Arr1(I, 1), " : ")(1), " ¡ ") - 1)
        Next I
    Application.ScreenUpdating = True
End Sub

 

 

Split Text YasserKhalil V2.rar

رابط هذا التعليق
شارك

طبعا أستاذي الكريم

شكرا أستاذي أبو براء وأستاذي سليم   

ولكن أنا أسف كنت مشغول في تجربة الكود 

وهذا سبب تأخري

كيف نجعل المثال السابق ينطبق على اللغة الإنجليزية 

بمعنى لو الجملة هكذا 

Giza : nahdet miser , 2006.

وأردت أن أحصل على جملة 

nahdet miser

فقط فكيف نحول المعادلة هذه 

IF(A3="";"";MID(LEFT(A3;FIND("،";A3)-1);FIND(":";A3)+1;500))

 

تم تعديل بواسطه عادل صباح
رابط هذا التعليق
شارك

أستاذي الكريم / أبو براء بارك الله فيكم

أنا لم أستطع وضع الكود الذي أرشدتني إليه فهل يمكنكم المساعدة 

علما بأن ما أريد تحويله قد يكون باللغة العربية أو باللغة الإنجليزية 

مرفق مثال للتوضيح 

Ex.rar

Ex.rar

تم تعديل بواسطه عادل صباح
رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information