كيفية إنشاء قائمة ديناميكية لأفضل 10 أو n في Excel؟
في العديد من المشاريع والعمليات التجارية، غالبًا ما يكون من الضروري ترتيب الأفراد أو المؤسسات أو المنتجات أو الكيانات الأخرى بناءً على أدائهم أو قيمهم العددية. تُستخدم "قائمة الأفضل" لتسليط الضوء على الإدخالات الأعلى أداءً، مثل أفضل الطلاب حسب الدرجات، أو أفضل البائعين، أو الأقسام ذات الإيرادات الأعلى. على سبيل المثال، قد يكون لديك جدول بدرجات الطلاب وتريد استخراج أفضل 10 درجات بشكل ديناميكي لجوائز أو تحليل أو مراقبة النتائج التعليمية، كما هو موضح في لقطة الشاشة أدناه. إنشاء قائمة ديناميكية لأفضل 10 أو n في Excel يتيح لك رؤية النتائج المحدثة تلقائيًا مع تغير بياناتك، مما يوفر الوقت ويقلل من الأخطاء التي يمكن أن تحدث بسبب الترتيب اليدوي. يقدم هذا الدليل عدة حلول عملية - بما في ذلك الصيغ، الجداول المحورية، وماكرو VBA - لمساعدتك في بناء قائمة ديناميكية لأفضل 10 أو n لتلبية احتياجات تحليل البيانات بكفاءة.
إنشاء قائمة ديناميكية لأفضل 10 في Excel
إنشاء قائمة ديناميكية لأفضل 10 في Office 365
إنشاء قائمة ديناميكية لأفضل 10 في Excel
في Excel 2019 والإصدارات السابقة، يتضمن إنشاء قائمة ديناميكية لأفضل 10 (أو أفضل N) دمج الصيغ لاستخراج القيم الأعلى وأسمائها أو معرفاتها المرتبطة في نفس الوقت. هذه الحلول تستخدم على نطاق واسع ومناسبة للمواقف التي ترغب فيها بأن يتم تحديث القائمة تلقائيًا عندما تتغير بياناتك. الخطوات التالية توضح كيفية تحقيق ذلك باستخدام صيغ Excel التقليدية. توفر هذه الصيغ مرونة ولا تتطلب إضافات خاصة لـ Excel، ولكن عملية الإعداد أكثر تعقيدًا مقارنة ببعض وظائف المصفوفات الديناميكية الحديثة.
صيغ لإنشاء قائمة ديناميكية لأفضل 10
1. لبدء العملية، تحتاج إلى استخراج أفضل 10 قيم من نطاق القيم الخاص بك. أدخل الصيغة التالية في خلية فارغة (على سبيل المثال، الخلية G2). بعد إدخال الصيغة، اسحب مقبض التعبئة لأسفل لتوليد قائمة القيم العشر الأولى الديناميكية. انظر لقطة الشاشة:
2. بعد ذلك، لعرض الأسماء (أو المعرفات) المرتبطة بتلك القيم العليا، أدخل الصيغة التالية في الخلية F2. هذه صيغة صفيف، لذا بعد إدخالها، اضغط Ctrl + Shift + Enter للتأكيد. تقوم هذه الصيغة بإيجاد الأسماء المقابلة للقيم العليا التي استخرجتها للتو:
- A2:A20 هو النطاق الذي يتم سحب الأسماء منه;
- B2:B20 هو نطاق الدرجات أو القيم;
- G2 هي القيمة العليا من الصيغة أعلاه;
- B1 هو رأس قائمة القيم ويُستخدم لحساب إزاحة الصفوف في ROW.
هذه الصيغة تربط بشكل ديناميكي القيم الأعلى بأسمائها. إذا كان نطاق القيم الخاص بك يحتوي على تكرارات، فإن COUNTIF يضمن ظهور كل اسم مطابق مرة واحدة فقط مع درجته.
3. بعد استخراج النتيجة الأولى، حدد الصيغة في الخلية F2 واسحب مقبض التعبئة لأسفل لنسخ الصيغة إلى عدد الصفوف الذي تحتاج إليه. سيقوم هذا بتوسيع نتيجتك لعرض الأسماء الخاصة بجميع الإدخالات العليا بشكل ديناميكي، والتي تتطابق مع تلك الدرجات. انظر لقطة الشاشة:

اكتشف سحر Excel مع Kutools AI
- التنفيذ الذكي: قم بعمليات الخلية، وتحليل البيانات، وإنشاء المخططات - كل ذلك يتم من خلال أوامر بسيطة.
- الصيغ المخصصة: قم بإنشاء صيغ مصممة خصيصًا لتسهيل سير عملك.
- برمجة VBA: كتابة وتطبيق أكواد VBA بسهولة.
- تفسير الصيغ: فهم الصيغ المعقدة بسهولة.
- ترجمة النصوص: تجاوز الحواجز اللغوية داخل جداول البيانات الخاصة بك.
صيغ لإنشاء قائمة ديناميكية لأفضل 10 بشروط
في بعض مهام التحليل، قد تحتاج إلى قائمة تحتوي فقط على الإدخالات التي تحقق شروطاً معينة - مثل تقييد النتائج الأعلى لمجموعة، فريق، أو فئة محددة. على سبيل المثال، قد ترغب في تحديد أفضل 10 درجات فقط لـ "الصف الأول" من ورقة بيانات شاملة تحتوي على درجات من صفوف متعددة. إليك كيفية استخدام الصيغ لهذه الحالة:
1. ابدأ باستخراج أفضل 10 قيم تتناسب مع المعيار المحدد الخاص بك (مثل "الصف الأول") من مجموعة البيانات. أدخل هذه الصيغة في الخلية المستهدفة (على سبيل المثال، J2):
2. بعد إدخال الصيغة، اضغط Ctrl + Shift + Enter للتأكيد كصيغة صفيف ثم اسحب مقبض التعبئة لأسفل لملء الخلايا الأخرى. ستقوم الصيغة بإرجاع القيم العالية العشرة التي تطابق الشرط المختار (مثل جميع الدرجات من "الصف الأول").
3. لسرد الأسماء المقابلة لهذه القيم العليا ضمن شروطك، انسخ الصيغة أدناه والصقها في الخلية I2 واضغط Ctrl + Shift + Enter كصيغة صفيف. بعد ذلك، املأ لأسفل حسب الحاجة لتوليد القائمة الكاملة للأسماء.
تأكد من تعديل النطاقات في الصيغ لتتناسب مع إعداد بياناتك الفعلي. كن حذرًا من أن استخدام نطاقات بيانات كبيرة مع صيغ الصفيف يمكن أن يؤدي إلى بطء الأداء. إذا ظهرت قيم مكررة في أفضل 10، ستتعامل الصيغة بشكل مناسب مع الدرجات المتكررة وستعطي أسماء طلاب متعددة إذا كانت درجاتهم متساوية.
إنشاء قائمة ديناميكية لأفضل 10 في Office 365
بينما تتطلب الإصدارات السابقة من Excel دمج العديد من الوظائف مع صيغ الصفيف، قدمت Office 365 (وExcel 2021) وظائف صفائف ديناميكية مثل INDEX، SORT، SEQUENCE، وFILTER التي تبسط سير العمل بشكل كبير. هذه الوظائف تسهل إنشاء قوائم ديناميكية لأفضل 10، تقلل الأخطاء، وهي مفيدة بشكل خاص للجداول التي تنمو أو تتغير بشكل متكرر. إذا كنت تعمل في بيئة مع تحديثات مستمرة للبيانات، يمكن أن تساعدك هذه الوظائف في تبسيط التحليل وتمكين اتخاذ قرارات عمل أسرع.
الصيغة لإنشاء قائمة ديناميكية لأفضل 10
للاستخراج وعرض قائمة ديناميكية لأفضل 10 باستخدام Office 365، أدخل الصيغة أدناه في الخلية المطلوبة للإخراج. كل ما عليك فعله هو تعديل النطاقات والأرقام بناءً على احتياجاتك، وسيظهر تلقائيًا أحدث نتائج أفضل 10 كلما تغيرت بياناتك.
ما عليك سوى الضغط على مفتاح Enter. ستظهر قائمة أفضل 10 كاملة فورًا وستبقى ديناميكية، بحيث تنعكس البيانات الإضافية أو التعديلات في الترتيب فورًا.
وظيفة SORT:
=SORT(array, [sort_index], [sort_order], [by_col])
- array: النطاق الذي تريد فرزه.
- [sort_index]: رقم العمود الذي سيتم الفرز بناءً عليه. بالنسبة لجدول الدرجات النموذجي، غالبًا ما يكون هذا العمود الثاني.
- [sort_order]: استخدم 1 للتسلسل التصاعدي أو -1 للتسلسل التنازلي. للحصول على الدرجات الأعلى، استخدم -1.
- [by_col]: ما إذا كان سيتم الفرز بواسطة الأعمدة (TRUE) أو الصفوف (FALSE أو متروكة).
على سبيل المثال: SORT(A2:B20,2,-1) يقوم بترتيب A2:B20 بناءً على العمود الثاني بترتيب تنازلي.
وظيفة SEQUENCE:
=SEQUENCE(rows, [columns], [start], [step])
- rows: عدد الصفوف المراد إرجاعها، على سبيل المثال، 10 لقائمة أفضل 10.
- [columns]: (اختياري) عدد الأعمدة المراد إرجاعها.
- [start]: (اختياري) القيمة الابتدائية.
- [step]: (اختياري) قيمة الزيادة.
SEQUENCE(10) تولد الأرقام من 1 إلى 10، مما يسمح لـ INDEX باختيار أفضل 10 نتائج مرتبة.
بجمع هذين، =INDEX(SORT(A2:B20,2,-1),SEQUENCE(10),{1,2}) يؤتيك قائمة ديناميكية ذات عمودين لأفضل 10.
الصيغة لإنشاء قائمة ديناميكية لأفضل 10 بشروط
إذا كنت بحاجة إلى استخراج أفضل 10 لمجموعة معينة، مثل "الصف الأول"، يمكن لهذه الوظائف المتقدمة في Office 365 إنشاء قائمة بأعلى N بينما تشمل فقط تلك الصفوف التي تلبي شروطك. ضع الصيغة أدناه في الموقع المطلوب وقم بتعديل النطاقات وخلية المعايير حسب الحاجة:
بعد إدخال الصيغة، ما عليك سوى الضغط على مفتاح Enter. تعرض قائمة أفضل 10 التي تم تصفيتها وترتيبها وفقًا للمعيار المحدد فوراً، وتُحدث كلما قمت بتعديل بياناتك أو المعيار.
وظيفة FILTER:
=FILTER(array, include, [if_empty])
- array: النطاق الخلوي المراد تصفيته.
- include: الشرط (مثل يساوي فصلًا معينًا) للإدراج.
- [if_empty]: (اختياري) ما يجب عرضه إذا لم تكن هناك نتائج تلبي المعايير.
=FILTER(A2:C25,B2:B25=F2) تعيد فقط تلك الصفوف حيث يتطابق العمود B مع القيمة في F2.
إنشاء قائمة ديناميكية لأفضل 10 باستخدام الجدول المحوري
الجدول المحوري: عرض تلقائي للنتائج N الأعلى بطريقة تفاعلية
طريقة بديلة لإنشاء قائمة ديناميكية بأعلى N هي استخدام ميزة الجدول المحوري في Excel. هذه الطريقة مناسبة بشكل خاص لمجموعات البيانات الكبيرة، التحليل التفاعلي (مثل تغيير عدد العناصر الأعلى بسرعة أو تطبيق المرشحات)، أو عندما تريد تجنب الصيغ المعقدة. الجداول المحورية سهلة الاستخدام وتُحدث تلقائيًا عند تغير البيانات، مما يجعلها رائعة للوحات المعلومات أو التقارير التي يتم مشاركتها مع الآخرين.
لإنشاء قائمة ديناميكية بأعلى N باستخدام الجدول المحوري:
- انقر في أي مكان داخل جدول بياناتك، ثم انتقل إلى إدراج > PivotTable.
- في مربع حوار الجدول المحوري، اختر مكان وضع الجدول المحوري وانقر موافق.
- اسحب حقل "الاسم" (أو معرّف مشابه) إلى منطقة الصفوف.
- اسحب حقل "الدرجة" (أو عمود القيمة) إلى منطقة القيم. سيُفترض عادةً أنه "مجموع" أو "عدد" - بالنسبة للقوائم العليا، عادةً ما ترغب في "المجموع" أو "الأقصى". غيّر حساب حقل القيمة إذا لزم الأمر عن طريق النقر بزر الماوس الأيمن واختيار تلخيص القيم بـ.
- رتب عمود "الدرجة" بترتيب تنازلي بالنقر بزر الماوس الأيمن على قيمة واختيار ترتيب > ترتيب الأكبر إلى الأصغر.
- للتقييد بالنتائج N الأعلى، انقر فوق السهم المنسدل على تسميات الصفوف، حدد فلاتر القيم > أعلى 10...، قم بتعيين الرقم (على سبيل المثال، أعلى 10) والحقل الذي سيتم الترشيح بناءً عليه، ثم انقر موافق.
يعرض الجدول المحوري الآن القائمة الديناميكية لأعلى 10 (أو أي N تحددها). لتغيير أعلى N، ما عليك سوى إعادة زيارة إعدادات الفلتر. إذا تغيرت بياناتك، حدث الجدول المحوري لتحديث الترتيب فورًا.
تشمل فوائد هذا النهج إعداد سريع، وفرز سهل، وضبط تفاعلي. ومع ذلك، لا يمكن للجداول المحورية إضافة صفوف مقابلة من أعمدة أخرى تلقائيًا إلا إذا كانت مضمنة في منطقة الصفوف أو القيم. يمكن للمستخدمين المتقدمين تخصيص التقارير بشكل أكبر عن طريق التجميع، أو إنشاء شرائح، أو دمج فلتر أفضل N في لوحات المعلومات.
إنشاء قائمة ديناميكية لأفضل 10 باستخدام VBA
ماكرو VBA: توليد وتحديث تلقائي لقائمة أعلى N
استخدام ماكرو VBA مناسب للمستخدمين الذين يتعاملون مع بيانات واسعة أو تتغير بشكل متكرر حيث يلزم أتمتة استخراج وتحديث قائمة ديناميكية لأعلى N. ماكرو VBA مثالي لتقليل المهام المتكررة وضمان التناسق. يمكنك إنشاء روتين يقوم بفرز بياناتك ونسخ أعلى N صفوف فقط إلى موقع محدد في كل مرة يتم تشغيله.
لاستخدام ماكرو VBA لإنشاء قائمة ديناميكية لأعلى N، اتبع الخطوات التالية:
- انقر على مطور > Visual Basic لفتح محرر VBA. (إذا لم ترى علامة تبويب مطور، انتقل إلى ملف > خيارات > تخصيص الشريط وفعّل "مطور".)
- في نافذة VBA، انقر على إدراج > وحدة لإضافة وحدة جديدة.
- الصق رمز VBA التالي في الوحدة:
Sub ExtractTopNList()
'Updated by Extendoffice 2025/7/24
Dim DataRange As Range
Dim OutputRange As Range
Dim N As Integer
Dim ws As Worksheet, tempWS As Worksheet
Dim xTitleId As String
Dim LastCol As Long
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set ws = ActiveSheet
Set DataRange = Application.InputBox("Select the full data range to analyze (including headers)", xTitleId, ws.UsedRange.Address, Type:=8)
Set OutputRange = Application.InputBox("Select the top-left cell of the output area", xTitleId, "", Type:=8)
N = Application.InputBox("How many top items to extract? (Enter a positive integer)", xTitleId, 10, Type:=1)
If DataRange Is Nothing Or OutputRange Is Nothing Or N < 1 Then Exit Sub
' Create a temporary worksheet to avoid sorting original data
Set tempWS = Worksheets.Add(After:=Worksheets(Worksheets.Count))
DataRange.Copy tempWS.Range("A1")
' Determine last column for sorting key
LastCol = DataRange.Columns.Count
' Sort in temporary sheet
tempWS.UsedRange.Sort Key1:=tempWS.Cells(1, LastCol), Order1:=xlDescending, Header:=xlYes
' Copy headers and top N rows to output
tempWS.Rows(1).Copy Destination:=OutputRange
tempWS.Range("A2").Resize(N, LastCol).Copy Destination:=OutputRange.Offset(1, 0)
' Optional: Delete temporary sheet
Application.DisplayAlerts = False
tempWS.Delete
Application.DisplayAlerts = True
Application.CutCopyMode = False
End Sub
4. لتنفيذ الماكرو، تأكد من أن بياناتك مُرتبة بشكل صحيح في جدول مع رؤوس. اضغط F5 أو انقر على الزر في محرر VBA. ستتم مطالبتك بـ:
- تحديد نطاق بياناتك (بما في ذلك الرؤوس للفرز الصحيح).
- تحديد الخلية التي سيتم لصق النتائج فيها.
- أدخل الرقم N (على سبيل المثال، 10 لأعلى 10).
سيقوم الماكرو بنسخ أعلى N إدخالات (بما في ذلك الرؤوس) إلى الموقع الذي حددته.
من المستحسن استخدام هذا في نسخة احتياطية أو نسخة من مصنفك عند الاختبار لأول مرة. إذا حدثت أخطاء (مثل تحديد نطاق غير صحيح)، أعد التشغيل وتأكد من أن النطاقات وإعدادات البيانات صحيحة.
هذا الحل مثالي لأتمتة مهام التقارير المتكررة، إنشاء لوحات المعلومات، أو تحديث تقارير أعلى N بسرعة دون استخدام صيغ أو فرز يدوي. يمكنك تخصيص برنامج VBA بشكل أكبر لمنطق تصنيف أكثر تعقيدًا، مثل الفرز حسب عمود معين أو تصدير النتائج إلى مصنف آخر.
استكشاف الأخطاء وإصلاحها: إذا لم يعمل الماكرو كما هو متوقع، تحقق من أن جدول بياناتك يتضمن رؤوسًا صحيحة، صحح أنواع البيانات لتجنب مشكلات الفرز، وتأكد من اختيار مراجع الخلايا بدقة في كل موجه. دائمًا احفظ عملك قبل تشغيل الماكرو لمنع التغييرات غير المقصودة في البيانات.
باختصار، يدعم Excel العديد من الطرق لتوليد الحفاظ على قائمة ديناميكية لأعلى N - من الصيغ التقليدية إلى وظائف Office 365 القوية، الجداول المحورية للتحليل التفاعلي، وماكرو VBA لأتمتة متقدمة. اختر الطريقة التي تناسب سير عملك وحجم بياناتك. استخدام الصيغ فعال لمعظم التحليلات اليدوية، وظائف Office 365 توفر أكبر قدر من البساطة والقوة، الجداول المحورية ممتازة للملخصات السريعة والمرونة، وVBA مفيد بشكل خاص لأتمتة المهام الكبيرة والمتكررة. دائمًا تحقق من سلامة صيغك أو كودك، وقم بتعديل مراجع الخلايا لتتناسب مع أي تغييرات في هيكل بياناتك مع تطور مشروعك.
أفضل أدوات الإنتاجية لمكتب العمل
عزز مهاراتك في 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 وPowerPoint + Office Tab Pro
- مثبّت واحد، ترخيص واحد — إعداد في دقائق (جاهز لـ MSI)
- الأداء الأفضل معًا — إنتاجية مُبسطة عبر تطبيقات Office
- تجربة كاملة لمدة30 يومًا — بدون تسجيل، بدون بطاقة ائتمان
- قيمة رائعة — وفر مقارنة بشراء الإضافات بشكل منفرد