فبا: كيفية تصنيف قائمة القيم


يمكنك استخدام بناء الجملة الأساسي التالي لترتيب قائمة القيم في 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

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *