Skip to main content

Kutools for Office — مجموعة واحدة. خمسة أدوات. أنجز المزيد.

كيفية ترتيب القيم حسب المجموعة في Excel؟

Author Sun Last modified

غالبًا ما يتطلب العمل مع البيانات المجمعة في Excel مقارنة القيم داخل كل مجموعة، مثل ترتيب أرقام المبيعات حسب المنطقة، أو درجات الاختبار حسب الصف، أو مبالغ المعاملات حسب الفئة. بينما توفر Excel أدوات قوية لترتيب البيانات، فإن الترتيب داخل المجموعات (المعروف أيضًا بـ "الترتيب حسب المجموعة" أو "الترتيب الشرطي") يتطلب نهجًا محددًا. هذا مفيد بشكل خاص عندما تحتاج إلى تقييم الأداء أو تحديد السجلات العليا والسفلى بين الفئات المختلفة دون خلط النتائج بين المجموعات. الطرق التالية تستكشف حلولًا عملية لترتيب القيم حسب المجموعة، مما يجعل من السهل تفسير وتحليل بياناتك بدقة في المهام اليومية.
A screenshot showing a grouped data set with ranked values in Excel

ترتيب القيم حسب المجموعة
رمز VBA - استخدام ماكرو لأتمتة ترتيب القيم داخل كل مجموعة


arrow blue right bubble ترتيب القيم حسب المجموعة

في الحالات التي تحتاج فيها إلى ترتيب القيم داخل مجموعات مميزة، مثل تقييم الطلاب حسب الصف أو سرد المبيعات حسب المناطق المختلفة، لا تحتوي Excel على ميزة مباشرة لـ "الترتيب حسب المجموعة". ومع ذلك، يمكن لصيغة جيدة الصياغة تحقيق الترتيب حسب المجموعة بفعالية ودون معالجة إضافية للبيانات.

للقيام بذلك، يمكنك استخدام صيغة صفيف تجمع بين اختبارات منطقية وظائف تجميع. يتيح لك هذا النهج مقارنة كل قيمة فقط داخل مجموعتها المحددة، مما ينتج الترتيب المطلوب لكل نقطة بيانات.

اتبع الخطوات التالية:

  • جهّز بياناتك المجمعة في أعمدة، مثل المجموعة (A2:A11) والقيمة (B2:B11).
  • اختر خلية فارغة بجانب بياناتك — عادةً في أول صف بجانب القيم الخاصة بك، على سبيل المثال الخلية C2.
  • أدخل الصيغة التالية:
=SUMPRODUCT(($A$2:$A$11=A2)*(B2<$B$2:$B$11))+1

تعمل هذه الصيغة عن طريق حساب عدد القيم الموجودة ضمن نفس المجموعة والتي تكون أقل من القيمة الحالية. إليك معنى كل معلمة:

  • ($A$2:$A$11=A2)
    → هذا يتحقق إذا كانت كل خلية في النطاق A2:A11 تساوي القيمة في A2.
    → ترجع مجموعة من القيم TRUE/FALSE (أو 1/0) تمثل ما إذا كانت كل صف تنتمي لنفس المجموعة مثل A2.
  • (B2<$B$2:$B$11)
    → يتحقق هذا بعدد القيم في B2:B11 التي تكون أكبر من B2.
    → ترجع TRUE (1) إذا كانت B2 أقل من قيمة معينة، وإلا ترجع FALSE (0).
  • * (الضرب)
    → يدمج هذا الشرطين:
  • المطابقة للمجموعة (A2)
    القيمة في B2 أصغر من غيرها
    → لذلك ستُحسب الصفوف التي تكون في نفس المجموعة ولديها قيمة أصغر فقط.
  • SUMPRODUCT(...)
    → يجمع عدد الصفوف التي تحقق كلا الشرطين.
  • +1
    → يبدأ الترتيب من 1 (بدلاً من 0)، لذلك نضيف 1 إلى عدد القيم الأصغر.

بمجرد إدخال الصيغة في C2، اسحب مقبض التعبئة التلقائية لأسفل لملء هذه الصيغة لجميع الصفوف ذات الصلة في مجموعة البيانات الخاصة بك. ستضبط الصيغة تلقائيًا لاستخدام كل صف لمجموعته وقيمته، وستعيد الترتيب داخل تلك المجموعة. A screenshot showing the Excel formula applied to rank values by group in a worksheet

نصائح واحتياطات:

  • إذا كان نطاقك كبيرًا، تذكر تحديث مراجع الخلايا وفقًا لذلك.
  • للحصول على ترتيب تنازلي (على سبيل المثال، أعلى قيمة هي 1)، قم بتعديل مقارنة الصيغة من B2<$B$2:$B$11 إلى B2>$B$2:$B$11.
  • للتعامل مع القيم المكررة، تخصص هذه الصيغة نفس الترتيب للقيم المتساوية داخل نفس المجموعة. إذا كنت بحاجة إلى ترتيبات فريدة متتالية، فكر في استخدام أعمدة مساعدة إضافية.

هذا الأسلوب القائم على الصيغة مرنة ويطبق بسهولة على معظم هياكل الجداول المجمعة في Excel. ومع ذلك، بالنسبة لمجموعات البيانات الكبيرة جدًا، قد تتباطأ أداء الحساب بسبب الاعتماد على منطق الصفيف.


رمز VBA - استخدام ماكرو لأتمتة ترتيب القيم داخل كل مجموعة

بالنسبة للمستخدمين الذين يبحثون عن أتمتة عملية الترتيب، أو التعامل مع مجموعات بيانات أكبر بكفاءة أكثر، يمكن أن يكون كتابة ماكرو VBA نهجًا قيمًا. يمكن أن تؤتمت الماكرو الخطوات المتكررة، وتقدم المزيد من التخصيص، وتقوم بمعالجة البيانات بسرعة مقارنة بالصيغ المعقدة. هذا مثالي لسيناريوهات مثل إنشاء تقارير مجدولة، أو مهام الترتيب المتكررة، أو عندما تريد تجنب فوضى الصيغ في ورقة العمل الخاصة بك.

قبل المتابعة، تأكد من حفظ عملك وتمكين الماكرو في إعدادات Excel الخاصة بك. إليك كيفية كتابة وتشغيل هذا الحل:

  1. اضغط على Alt + F11 لتمكين محرر VBA. في نافذة Microsoft Visual Basic for Applications التي تظهر، انقر فوق إدراج > وحدة، ثم ألصق الكود التالي في الوحدة المفتوحة:
Sub RankValuesByGroup()
    Dim DataRange As Range
    Dim GroupRng As Range
    Dim ValueRng As Range
    Dim OutCol As Range
    Dim dictGroups As Object
    Dim arrValues, arrRanks
    Dim i As Long, j As Long
    Dim GroupKey As String
    
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    Set DataRange = Application.InputBox("Select the data table range (including group and value columns)", xTitleId, Selection.Address, Type:=8)
    If DataRange Is Nothing Then Exit Sub
    
    Set GroupRng = Application.InputBox("Select the group column within your range", xTitleId, DataRange.Columns(1).Address, Type:=8)
    Set ValueRng = Application.InputBox("Select the value column to rank within your range", xTitleId, DataRange.Columns(2).Address, Type:=8)
    
    Set OutCol = DataRange.Offset(0, DataRange.Columns.Count).Resize(DataRange.Rows.Count, 1)
    OutCol.Cells(1).Value = "RankByGroup"
    
    Set dictGroups = CreateObject("Scripting.Dictionary")
    arrValues = ValueRng.Value
    arrRanks = ValueRng.Value
    
    ' Build group dictionaries for ranking
    For i = 2 To UBound(arrValues, 1)
        GroupKey = GroupRng.Cells(i, 1).Value
        If Not dictGroups.Exists(GroupKey) Then
            dictGroups.Add GroupKey, CreateObject("System.Collections.ArrayList")
        End If
        dictGroups(GroupKey).Add arrValues(i, 1)
    Next i
    
    ' Rank within each group
    For i = 2 To UBound(arrValues, 1)
        GroupKey = GroupRng.Cells(i, 1).Value
        Dim countLower As Long
        countLower = 0
        For j = 0 To dictGroups(GroupKey).Count - 1
            If dictGroups(GroupKey)(j) < arrValues(i, 1) Then
                countLower = countLower + 1
            End If
        Next j
        arrRanks(i, 1) = countLower + 1
    Next i
    
    ' Output results
    For i = 2 To UBound(arrRanks, 1)
        OutCol.Cells(i, 1).Value = arrRanks(i, 1)
    Next i
    
    MsgBox "Ranking by group completed.", vbInformation, xTitleId
End Sub
  1. انقر فوق تشغيل. ستظهر مربع حوار يطالبك بتحديد نطاق البيانات الكامل، عمود المجموعة، وعمود القيمة. سيقوم الماكرو بعد ذلك بإنشاء عمود جديد مع الترتيب لكل قيمة داخل مجموعتها.

ملاحظات واستكشاف للأخطاء:

  • تأكد من أن اختيار الأعمدة يتطابق مع بياناتك: يجب أن يتماشى عمودا المجموعة والقيمة بشكل صحيح.
  • إذا كان رأس البيانات مشمولًا، قم بتعديل مؤشر الحلقة الأولي في الكود للحصول على ترتيب صحيح (وفقًا لهيكل بياناتك).
  • لترتيب ترتيب تنازلي، قم بتعديل المقارنة If dictGroups(GroupKey)(j) < arrValues(i,1) وفقًا لذلك.
  • إذا واجهت تحذيرات حول الأذونات أو الأمان الخاص بالماكرو، تحقق من إعدادات أمان الماكرو في Excel تحت ملف > خيارات > مركز الثقة.

يقدم هذا الأسلوب باستخدام VBA مرونة وأداء قوي لتطبيقات أكثر تقدمًا أو موسعة، خاصة عند دمجه مع سير عمل التقارير الآلية.


a screenshot of kutools for excel ai

اكتشف سحر Excel مع Kutools AI

  • التنفيذ الذكي: قم بعمليات الخلية، وتحليل البيانات، وإنشاء المخططات - كل ذلك يتم من خلال أوامر بسيطة.
  • الصيغ المخصصة: قم بإنشاء صيغ مصممة خصيصًا لتسهيل سير عملك.
  • برمجة VBA: كتابة وتطبيق أكواد VBA بسهولة.
  • تفسير الصيغ: فهم الصيغ المعقدة بسهولة.
  • ترجمة النصوص: تجاوز الحواجز اللغوية داخل جداول البيانات الخاصة بك.
عزز قدرات Excel لديك باستخدام أدوات تعمل بالذكاء الاصطناعي. قم بالتنزيل الآن وعش تجربة الكفاءة كما لم يحدث من قبل!

أفضل أدوات الإنتاجية لمكتب العمل

🤖 Kutools AI Aide: أحدث ثورة في تحليل البيانات اعتمادًا على: التنفيذ الذكي |  توليد الأكواد |  إنشاء الصيغ المخصصة |  تحليل البيانات وتوليد الرسوم البيانية |  استخدام Kutools Functions...
ميزات شائعة: البحث، تمييز أو وضع علامة على المكررات | حذف الصفوف الفارغة | دمج الأعمدة أو الخلايا بدون فقدان البيانات | تقريب بدون الصيغة...
بحث متقدم: بحث بمعايير متعددة VLookup | بحث بقيم متعددة VLookup | بحث في عدة ورقات VLookup | مطابقة غامضة...
قائمة منسدلة متقدمة: إنشاء قائمة منسدلة بسرعة | قائمة منسدلة معتمدة | قائمة منسدلة متعددة الاختيارات...
مدير الأعمدة: إضافة عدد محدد من الأعمدة | نقل الأعمدة | تبديل حالة إظهار الأعمدة المخفية | مقارنة النطاقات والأعمدة...
ميزات مميزة: التركيز على الشبكة | عرض التصميم | شريط الصيغ المحسن | مدير أدوات المصنف وورقة العمل | مكتبة النص التلقائي | منتقي التاريخ | دمج البيانات | تشفير/فك تشفير الخلايا | إرسال البريد الإلكتروني حسب الجدول | مرشح متقدم | تصفية خاصة (تصفية الخلايا التي تحتوي على خط عريض/مائل/يتوسطه خط...)...
أفضل15 مجموعة أدوات:12 أداة نصية (إضافة نص، حذف الأحرف المحددة، ...) | أكثر من50 نوع رسم بياني (مخطط جانت، ...) | أكثر من40 صيغة عملية (حساب العمر بناءً على تاريخ الميلاد، ...) |19 أداة إدراج (إدراج رمز الاستجابة السريعة، إدراج صورة من المسار، ...) |12 أداة تحويل (تحويل إلى كلمات، تحويل العملة، ...) |7 أدوات دمج وتقسيم (دمج متقدم للصفوف، تقسيم الخلايا، ...) | ... والمزيد
استخدم Kutools بلغتك المفضلة – يدعم الإنجليزية، الإسبانية، الألمانية، الفرنسية، الصينية، وأكثر من40 لغة أخرى!

عزز مهاراتك في Excel باستخدام Kutools لـ Excel، واختبر كفاءة غير مسبوقة. Kutools لـ Excel يوفر أكثر من300 ميزة متقدمة لزيادة الإنتاجية وتوفير وقت الحفظ. انقر هنا للحصول على الميزة الأكثر أهمية بالنسبة لك...


Office Tab يجلب واجهة التبويب إلى Office ويجعل عملك أسهل بكثير

  • تفعيل تحرير وقراءة عبر التبويبات في Word، Excel، PowerPoint، Publisher، Access، Visio وProject.
  • افتح وأنشئ عدة مستندات في تبويبات جديدة في نفس النافذة، بدلاً من نوافذ مستقلة.
  • يزيد إنتاجيتك بنسبة50%، ويقلل مئات النقرات اليومية من الفأرة!

جميع إضافات Kutools. مثبت واحد

حزمة Kutools for Office تجمع بين إضافات Excel وWord وOutlook وPowerPoint إضافة إلى Office Tab Pro، وهي مثالية للفرق التي تعمل عبر تطبيقات Office.

Excel Word Outlook Tabs PowerPoint
  • حزمة الكل في واحد — إضافات Excel وWord وOutlook وPowerPoint + Office Tab Pro
  • مثبّت واحد، ترخيص واحد — إعداد في دقائق (جاهز لـ MSI)
  • الأداء الأفضل معًا — إنتاجية مُبسطة عبر تطبيقات Office
  • تجربة كاملة لمدة30 يومًا — بدون تسجيل، بدون بطاقة ائتمان
  • قيمة رائعة — وفر مقارنة بشراء الإضافات بشكل منفرد