فبا: كيفية تصنيف قائمة القيم
يمكنك استخدام بناء الجملة الأساسي التالي لترتيب قائمة القيم في Excel باستخدام VBA:
SubRankValues ()
Dim i As Integer
For i = 2 To 11
Range(" C " & i) = WorksheetFunction.Rank(Range(" B " & i), Range(" B2:B11 "), 0)
Next i
End Sub
يقوم هذا المثال تحديدًا بترتيب القيم في الخلايا B2:B11 ويعرض الترتيب في الخلايا C2:C11 .
تحدد الوسيطة الأخيرة 0 أنه يجب ترتيب القيم بترتيب تصاعدي (تتلقى القيمة الأكبر رتبة 1، وتتلقى ثاني أكبر قيمة رتبة 2، وما إلى ذلك).
لترتيب القيم بترتيب تنازلي، ما عليك سوى استبدال 0 بـ 1 .
يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.
مثال: كيفية ترتيب القيم باستخدام VBA
لنفترض أن لدينا القائمة التالية من لاعبي كرة السلة مع نقاطهم المسجلة:
لنفترض أننا نريد حساب ترتيب كل قيمة في عمود النقاط.
يمكننا إنشاء الماكرو التالي للقيام بذلك:
SubRankValues ()
Dim i As Integer
For i = 2 To 11
Range(" C " & i) = WorksheetFunction.Rank(Range(" B " & i), Range(" B2:B11 "), 0)
Next i
End Sub
عندما نقوم بتشغيل هذا الماكرو، نحصل على الإخراج التالي:
يتم عرض ترتيب كل قيمة في عمود النقاط في العمود C.
على سبيل المثال:
- اللاعب H الذي لديه 41 نقطة لديه أعلى قيمة للنقاط، لذلك يحصل على المرتبة 1 .
- اللاعب C الذي لديه 40 نقطة لديه ثاني أعلى قيمة للنقاط، لذلك يحصل على المرتبة 2 .
وما إلى ذلك وهلم جرا.
لترتيب القيم الموجودة في عمود النقاط ترتيبًا تنازليًا، يمكننا تغيير الوسيط الأخير لطريقة Rank من 0 إلى 1 :
SubRankValues ()
Dim i As Integer
For i = 2 To 11
Range(" C " & i) = WorksheetFunction.Rank(Range(" B " & i), Range(" B2:B11 "), 1)
Next i
End Sub
عندما نقوم بتشغيل هذا الماكرو، نحصل على الإخراج التالي:
يتم عرض ترتيب كل قيمة في عمود النقاط في العمود C.
على سبيل المثال:
- اللاعب الأول الذي لديه 11 نقطة لديه أقل قيمة للنقاط، لذلك يحصل على المرتبة 1 .
- اللاعب E الذي لديه 13 نقطة لديه ثاني أقل قيمة للنقاط، لذلك يحصل على المرتبة 2 .
وما إلى ذلك وهلم جرا.
ملاحظة : يمكنك العثور على الوثائق الكاملة لطريقة تصنيف VBA هنا .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في VBA:
VBA: كيفية حساب الخلايا التي تحتوي على نص معين
فبا: كيفية حساب عدد الصفوف في النطاق
VBA: كيفية كتابة وظائف COUNTIF وCOUNTIFS