بوابة الثانوية العامة المصرية

بوابة الثانوية العامة المصرية (https://www.thanwya.com/vb/index.php)
-   المنتدى الأكاديمي للمعلمين (https://www.thanwya.com/vb/forumdisplay.php?f=22)
-   -   دوال اكسيل استخراج اسم الأب من اسم الطالب (https://www.thanwya.com/vb/showthread.php?t=573840)

البطل السيناوي 15-01-2014 08:08 PM

دوال اكسيل استخراج اسم الأب من اسم الطالب
 
1 مرفق
استخدمت دالة right و len في الحصول علي اسم الاب من خلية بها اسم الطالب


=RIGHT(B2;LEN(B2)-FIND(" ";B2;1))

alfa 15-01-2014 09:41 PM

أحسنت أستاذى

جرب هذه أيضا
=mid(b2;find(" ";b2);len(b2))

لكن أود تنبيه حضرتك
أن هذا لا يعمل على الوجه الأكمل مع أسماء الذكور المركبة
مثل
عبد الله
عبد الرحمن
سيف الإسلام.....

إلا إذا كتبت متصلة

msh835 15-01-2014 10:31 PM

مشكووووووووووور

أحمد هاشم الزيدي 17-01-2014 12:07 AM

بارك الله في حضرتك استاذي العزيز مجاهد علي هذا الجهد
جعله الله في ميزان حسانتك يوم القيامة باذن الله تعالي

البطل السيناوي 21-01-2014 01:23 AM

العفو أ/ أحمد اتمني لك دوام التوفيق كلماتك الرقيقة تبعث فينا السعادة و الدافع من أجل المزيد فشكرا جزيلا لك
و الشكر موصول ل أ/ alfa علي الاضافة

البطل السيناوي 21-01-2014 02:03 AM

مستر Alfa تحياتي لك لكى نتفادى مشكلة الاسماء المركبة ( عبد الرحمن) نستخدم هذه المعادلة

=MID(A3;FIND(" ";A3;5)+1;LEN(A3))


والتعديل عليها فى دالة find حيث كنا نهمل رقم الحرف الذى نبدأ البحث بعده عن المسافة
فاذا قلنا له ان يبدأ البحث عن المسافة بعد الخرف الخامس ( لان عبد + مسافه = 4 )
بذلك نجبره بالبحث بعد المسافة الاول فى اسم الطالب ( عبد الحميد على )


والتعديل عليها فى دالة find حيث كنا نهمل رقم الحرف الذى نبدأ البحث بعده عن المسافة
فاذا قلنا له ان يبدأ البحث عن المسافة بعد الخرف الخامس ( لان عبد + مسافه = 4 )
بذلك نجبره بالبحث بعد المسافة الاول فى اسم الطالب ( عبد الرحمن على )

alfa 21-01-2014 08:27 PM

كلامك مضبوط
إذا بدأنا البحث بعد الخامس
حصلنا بالطبع على الاسم المركب
لكن لا نحصل على الاسم المنفرد
مثل
حسن
على
رضا

المقصد

ليس هناك معادلة تجمع النتيجتين

أليس هذا صحيحا؟

البطل السيناوي 22-01-2014 11:03 PM

نعم مستر الفا

البطل السيناوي 25-01-2014 11:51 PM

1 مرفق
تم تعديل الكود للتعامل مع الأسماء المركبة و المسافات

محمد صالح العشيري 26-01-2014 04:34 PM

الدالة على تعمل مع الأسماء المركبة

alfa 26-01-2014 05:09 PM

1 مرفق
الأستاذ البطل السيناوى

عندما كتبت اسم
نور الدين يحيى

جاءت النتيجة
الدين يحيى
و هذا طبعا خطأ

الحاصل أن مثل هذا الهدف
لايمكن الحصول عليه بمعادلة
لكن هناك دالة مخصصة
من ابتكار أخى و معلمى الأستاذ خبور
تكفلت ب 99 فى المئة من النتائج الصحيحة
و هذا هو الكود العبقرى الخاص بها
كود:

Option Explicit

'        بسم الله الرحمن الرحيم            "
'        ********************          "

'      دالة استخراج اسم ولي الأمر        "
'========================================"
'    True =    kh_First  اذا كان        "
'        او اي رقم غير الصفر              "
'    تقوم باستخراج الاسم الاول            "
'========================================"
'    يامكانية معالجة الاسم المركب الاول      "
'    تلقائياً حسب  معايير معرفة لديها      "
'      Kh_Father_Replace  في الدالة      "
'      ويمكنك اضافة اي معيار آخر        "
'        بجانب المعايير الموجودة            "
'          MyArray  في المتغير              "
'      مع مراعاة وجود فراغ بداية
'          او نهاية المعيار
'========================================"
'-----------------------------------------------------------------

Function Kh_Father_Name(ByVal Name As String, Optional kh_First As Boolean) As String
Dim KhString As String, Kh_Mid As String, Kh_Rep  As String
Dim KhMyNo As Integer

    On Error GoTo Err_Kh_Father_Name

    If IsEmpty(Name) Then GoTo Err_Kh_Father_Name
    KhString = Kh_Father_Replace(Trim(Name)) & " "
    KhMyNo = InStr(1, KhString, " ", 1)
    If kh_First Then Kh_Mid = Trim(Mid(KhString, 1, KhMyNo)) Else _
    Kh_Mid = Trim(Mid(KhString, KhMyNo, Len(KhString)))
    Kh_Rep = Replace(Kh_Mid, "^", " ")
    Kh_Father_Name = Kh_Rep
   
    Exit Function

Err_Kh_Father_Name:
    Kh_Father_Name = ""
End Function
Private Function Kh_Father_Replace(ByVal Kh_Sub As String) As String
Dim MyArray, Ar
Dim Sn As String, Re As String
'====================================================
' يمكنك اضافة اي معيار آخر هنا بجانب المعايير الموجودة

MyArray = Array("عبد ", "أبو ", "ابو ", "آل ", " الله" _
    , " الدين", " الإسلام", " الاسلام", " الحق")

'====================================================
Sn = Kh_Sub
For Each Ar In MyArray
    Re = Replace(Ar, " ", "^")
    Sn = Replace(Sn, Ar, Re)
Next
Kh_Father_Replace = Sn
End Function

الملف بالمرفقات

البطل السيناوي 26-01-2014 10:28 PM

شكرا لك مستر الفا وطبعا للاستاذ خبور الكود شغال vba بس كان نفسي تستخدم كود من صنع ايدك انت ممكن تطور فيه باستخدام الدوال و يمكن لو حضرتك بصيت علي الاسماء الموجوده بالكود
AND(MID(TRIM(B2);1;3)="عبد";MID(TRIM(B2);4;1)=" ")
استبدل استخدم الكود بعد استبدال كلمة "عبد" بكلمة "نور" ستحصل علي ما تريد

marwasamy 01-02-2014 06:46 PM

شكرا على هذا الجهد المبذول

البطل السيناوي 03-02-2014 11:53 PM

شكرا لوجودك المميز أ/مروة

أ.حسين احمد 05-02-2014 01:31 AM

جزاك الله خير


جميع الأوقات بتوقيت GMT +2. الساعة الآن 03:24 PM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.