مشاهدة النسخة كاملة : دوال اكسيل استخراج اسم الأب من اسم الطالب


البطل السيناوي
15-01-2014, 08:08 PM
استخدمت دالة 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 (http://thanwya.com/vb/member.php?u=155314) علي الاضافة

البطل السيناوي
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
تم تعديل الكود للتعامل مع الأسماء المركبة و المسافات

محمد صالح العشيري
26-01-2014, 04:34 PM
الدالة على تعمل مع الأسماء المركبة

alfa
26-01-2014, 05:09 PM
الأستاذ البطل السيناوى

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

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

الحاصل أن مثل هذا الهدف
لايمكن الحصول عليه بمعادلة
لكن هناك دالة مخصصة
من ابتكار أخى و معلمى الأستاذ خبور
تكفلت ب 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
جزاك الله خير

mido_tota
05-02-2014, 10:06 PM
جامدة جدا .............. جزاك الله خيرا

ismibra
10-02-2014, 08:00 PM
لكم جزيل الشكر والعرفان اخوانى

الشهيد الحاج
18-06-2014, 08:15 PM
شكرًا علي مجهودك .

amr_asdoo
07-07-2014, 01:02 PM
كل عام وأعضاء المنتدى والمصريين والمسلمين كلهم بخير بمناسبة شهر رمضان الكريم

البطل السيناوي
07-07-2014, 10:50 PM
وكل عام و انت بخير

logy2006
14-07-2014, 10:27 PM
جزاكم الله خير الجزاء كنت بدور عليها

hany alsaed214
14-08-2014, 11:38 AM
very good.....

عبدالناصر2005
04-01-2015, 08:22 PM
https://www.facebook.com/AndalusFCT?ref=bookmarks