السلام عليكم ورحمة الله وبركاته
أقدم لكم دالة معرفة للعلامة عبد الله باقشير ، تقوم الدالة بترتيب الطلاب حسب درجاتهم ، وإذا كان لطالبين أو أكثر نفس الدرجة تكتب كلمة مكرر.
بفرض أن لديك مجموعة طلاب ولهم درجات في العمود الثالث في النطاق C2:C11 ، والمطلوب ترتيب الطلاب حسب الدرجات.
أولاً نقوم بتسمية نطاق الدرجات لتسهيل التعديل في المعادلة حسب ملفك ، نحدد النطاق C2:C11 ونضع مؤشر الماوس في صندوق الاسم على يسار شريط المعادلات ونكتب اسم للنطاق وليكن Marks ، حيث سنستخدم هذا الاسم في المعادلة.
قم بوضع الدالة المعرفة التالية في موديول عادي (للدخول لمحرر الأكواد اضغط Alt + F11 ، ومن قائمة Insert اختر الأمر Module ثم الصق الدالة المعرفة التالية)
Function OrdinalNum(ByVal Num As Variant, Optional ByVal Sex As Byte = 0) As String
Const Male = 0
Const Female = 1
Dim Sings(1 To 11) As String
Dim Tens(2 To 10) As String
Dim Fem As String
On Error Resume Next
OrdinalNum = Num
Num = CDbl(Num)
If Num < 1 Or Num > 100 Or Num <> CLng(Num) Then
Exit Function
End If
Sings(1) = "الأول"
Sings(2) = "الثاني"
Sings(3) = "الثالث"
Sings(4) = "الرابع"
Sings(5) = "الخامس"
Sings(6) = "السادس"
Sings(7) = "السابع"
Sings(8) = "الثامن"
Sings(9) = "التاسع"
Sings(10) = "العاشر"
Sings(11) = "الحادي"
Tens(2) = "العشرون"
Tens(3) = "الثلاثون"
Tens(4) = "الأربعون"
Tens(5) = "الخمسون"
Tens(6) = "الستون"
Tens(7) = "السبعون"
Tens(8) = "الثمانون"
Tens(9) = "التسعون"
Tens(10) = "المائة"
If Sex > Female Then Sex = Male
Fem = IIf(Sex = 0, "", "ة")
Select Case Num
Case 1: OrdinalNum = Sings(Num) & IIf(Sex = Male, "", "ى")
Case 2 To 10: OrdinalNum = Sings(Num) & Fem
Case 11: OrdinalNum = Sings(Num) & Fem & " عشر" & Fem
Case 12 To 19: OrdinalNum = Sings(Num Mod 10) & Fem & " عشر" & Fem
Case Else
Select Case Num Mod 10
Case 0: OrdinalNum = Tens(CLng(Num / 10))
Case 1: OrdinalNum = Sings(11) & Fem & " و" & Tens(Fix(Num / 10))
Case Else: OrdinalNum = Sings(Num Mod 10) & Fem & " و" & Tens(Fix(Num / 10))
End Select
End Select
End Function
الآن ننتقل لآخر جزئية وهي أننا سنقوم بوضع معادلة في الخلية D2 بهذا الشكل
=OrdinalNum(RANK(C2,Marks))
ثم نضع معادلة أخرى في الخلية D3 بهذا الشكل (وبعدها نسحب هذه المعادلة لنهاية النطاق أي إلى الخلية D11)
=IF(C3=C2,OrdinalNum(RANK(C3,Marks))&" مكرر",OrdinalNum(RANK(C3,Marks)))
إعداد / ياسر خليل أبو البراء
استاذ : ياسر
ردحذفهكذا يكون الشرح .. وياليت الجروب يلتزم وينتهج نهجك في الشرح والعرض
حسن علي
أخي الغالي حسن علي
ردحذفشهادة أعتز بها منك ..بارك الله فيك وجزيت خيراً
بارك الله فيك
ردحذفأخي الكريم أسامة مشكور على مررك الطيب بالمدونة
ردحذفبارك الله فيكم
ردحذفكفيت ووفيت
أخي الفاضل سمير بارك الله فيك ومشكور على مرورك العطر بالمدونة
ردحذفرائع جدا
ردحذفحفظك الله ورعاك
لم اتمكن من تنزيل الملف
ردحذف