كيف يمكنك حذف أقل درجة ثم حساب المتوسط أو المجموع في Excel؟
عند العمل مع قائمة من الدرجات أو النقاط في Excel، قد تحتاج إلى حساب الدرجة النهائية للطالب بعد استبعاد أقل درجة له — أو حتى أقل *n* درجات — قبل احتساب متوسط أو مجموع القيم المتبقية. يُعد هذا مطلبًا شائعًا في البيئات التعليمية، حيث يُسمح للطلاب أحيانًا بعدم احتساب أدائهم الأسوأ لمراعاة الظروف الاستثنائية أو لضمان العدالة. قد يكون تنفيذ هذه العملية يدويًّا أمرًا مرهقًا، خاصةً مع مجموعات البيانات الكبيرة أو عند الحاجة إلى تعديلات حسابية متكررة. لحسن الحظ، يوفّر Excel عدة طرق مرنة لتحقيق ذلك، بدءًا من الصيغ البسيطة وصولًا إلى الأتمتة باستخدام VBA للعمليات الدفعية.
حذف أقل درجة وحساب المتوسط أو المجموع باستخدام الصيغ
كود VBA - حذف أقل درجة أو أقل n درجات وحساب المجموع أو المتوسط تلقائيًّا
حذف أقل درجة وحساب المتوسط أو المجموع باستخدام الصيغ
إذا كنت ترغب في استبعاد أقل قيمة أو أقل *n* قيم من صف بيانات أو قائمة، ثم إجراء عمليات حسابية—مثل حساب المتوسط أو المجموع للأرقام المتبقية—فإن صيغ Excel المضمنة توفّر حلاً عمليًّا وفعالًا. وتكون هذه الحلول القائمة على الصيغ مفيدةً بشكل خاص إذا كان لديك عددٌ معتدل من الصفوف للمعالجة، أو إذا كنت تفضّل هذا النهج لشفافيته وسهولة تعديله.
فيما يلي شرحٌ منفصل لكلا الطريقتين—الجمع والحساب المتوسط—مع تعليماتٍ مفصلة ونصائحَ عملية لتطبيقٍ مرن.
اجمع الأرقام ولكن استبعد أقل قيمة أو أقل N قيم:
لحساب المجموع لكل صف أو قائمة مع حذف أقل قيمة، استخدم الطريقة التالية:
1. حدد الخلية الفارغة التي تريد أن تظهر فيها نتيجة مجموع الصف الأول (على سبيل المثال، الخلية I2 إذا كانت بياناتك في B2:H2)، ثم أدخل الصيغة التالية:
=SUM(B2:H2)-SMALL(B2:H2,1) 2. اضغط علىEnter للتأكيد، ثم اسحب مقبض التعبئة لأسفل لتطبيق هذه الصيغة على الصفوف الأخرى حسب الحاجة. وسيقوم ذلك بجمع جميع الأرقام في كل صف باستثناء أقل قيمة.
فيما يلي لقطة شاشة للرجوع إليها:

ملاحظات ونصائح:
- لإقصاء أقل قيمتين أو ثلاث قيم أو أكثر، يمكنك توسيع الصيغة بطرح نتائج إضافية من دالةSMALL. على سبيل المثال:
=SUM(B2:H2)-SMALL(B2:H2,1)-SMALL(B2:H2,2) =SUM(B2:H2)-SMALL(B2:H2,1)-SMALL(B2:H2,2)-SMALL(B2:H2,3) =SUM(B2:H2)-SMALL(B2:H2,1)-SMALL(B2:H2,2)-SMALL(B2:H2,3)-...-SMALL(B2:H2,n) - في هذه الصيغة، يُشيرB2:H2 إلى النطاق الذي تريد جمعه، بينما تُحدّد الأرقام 1 و2 و3 وما إلى ذلك القيم n لأصغر الأرقام التي سيتم استبعادها. قم بتعديل قيمةn وفقًا لعدد أقل الدرجات التي ترغب في حذفها.
- احرص ألا تعيّن قيمةn لتكون أكبر من أو تساوي إجمالي عدد القيم؛ وإلا فستواجه أخطاءً أو نتائج غير مرغوبة.
- تعمل هذه الصيغ بشكل مستقل لكل صف. إذا كانت بياناتك تمتد عبر الأعمدة بدلًا من الصفوف، فعدّل النطاقات وفقًا لذلك.
- إذا احتوت مجموعة البيانات على قيم مكررة لأصغر رقم، فإن الدالةSMALL(B2:H2,1) تستبعد حدوثًا واحدًا فقط في كل مرة. ولحذف تكرارات متعددة، كرّر دالةSMALL مع زيادة قيمة k كما هو موضح أعلاه.
احسب المتوسط ولكن استبعد أقل قيمة أو أقل N قيم:
لحساب المتوسط مع تجاهل أقل قيمة أو أقل n قيم، يمكنك استخدام الصيغ التالية. يُعدّ هذا الأسلوب مفيدًا بشكل خاص في أنظمة التقدير التي لا تأخذ الأداء المنخفض الشاذ بعين الاعتبار عند احتساب المتوسط.
1. حدد خلية لعرض متوسط الدرجات (مثلاً، J2 إذا كانت درجاتك في النطاق B2:H2)، ثم أدخل الصيغة التالية:
=(SUM(B2:H2)-SMALL(B2:H2,1))/(COUNT(B2:H2)-1) 2. بعد الضغط على Enter، اسحب الصيغة لأسفل حسب الحاجة لحساب المتوسط للصفوف الإضافية، مع استبعاد أقل درجة في نطاق كل صف على حدة.

ملاحظات وتوجيهات مهمة:
- لحساب المتوسط مع استبعاد أكثر من أقل درجة واحدة، قم بتوسيع الصيغة عبر طرح حدود إضافية من دالةSMALLوخفض القاسم وفقًا لذلك:
=(SUM(B2:H2)-SMALL(B2:H2,1)-SMALL(B2:H2,2))/(COUNT(B2:H2)-2) =(SUM(B2:H2)-SMALL(B2:H2,1)-SMALL(B2:H2,2)-SMALL(B2:H2,3))/(COUNT(B2:H2)-3) =(SUM(B2:H2)-SMALL(B2:H2,1)-SMALL(B2:H2,2)-SMALL(B2:H2,3)-...-SMALL(B2:H2,n))/(COUNT(B2:H2)-n) - مرة أخرى،B2:H2 هو النطاق الذي سيتم حساب متوسطه، وn يمثل عدد أقل القيم التي لن تُضمَّن في الحساب.
- إذا حاولت طرح عدد من القيم يفوق العدد الموجود في النطاق، فستُعيد الصيغة خطأً من نوع#NUM!، مما يشير إلى أن القيم غير كافية لحساب المتوسط. تأكد دائمًا من أن قيمةn أقل من عدد القيم المتاحة.
- يُنصح بالتحقق مرتين من أن القيم الدنيا ليست ضرورية أو مطلوبة لحسابك قبل استبعادها، إذ قد يؤثر ذلك على النتائج النهائية.
- عند التعامل مع مجموعات بيانات ضخمة جدًّا أو عند الحاجة إلى استبعاد أقل n قيم ديناميكيًّا، يُوصى باستخدام حل آلي أو صيغة صفيفية (Array).

افتح سحر إكسل مع KUTOOLS AI
- التنفيذ الذكي: نفِّذ عمليات الخلايا، وحلِّل البيانات، وأنشئ المخططات البيانية — كل ذلك بأوامر بسيطة!
- الصيغ المخصصة: أنشئ صيغًا مخصصة لتبسيط سير عملك.
- برمجة VBA: اكتب وأَنفِذ أكواد VBA بسلاسة تامة.
- تفسير الصيغ: افهم الصيغ المعقدة بسهولة!
- ترجمة النصوص: اكسر الحواجز اللغوية في جداولك الإلكترونية!
كود VBA - حذف أقل درجة أو أقل n درجات وحساب المجموع أو المتوسط تلقائيًّا
في الحالات التي تتضمن مجموعات بيانات كبيرة أو تتغير باستمرار، أو عندما تحتاج إلى أتمتة عملية حذف أقل *n* درجات وحساب المجاميع أو المتوسطات عبر العديد من الصفوف، يمكن لاستخدام VBA أن يبسّط المهام المتكررة بشكل كبير. فباستخدام ماكرو VBA، يمكنك تحديد نطاق البيانات وعدد أقل الدرجات المراد استبعادها، ليقوم الكود بعد ذلك بمعالجة جميع الصفوف المحددة بكفاءة في خطوة واحدة.
يُعد هذا النهج التلقائي مثاليًا خصوصًا للمعلمين الذين يديرون أوراق عمل لعدة فصول، أو لأي شخص يسعى إلى تقليل إدخال الصيغ يدويًّا والحد من الأخطاء المحتملة. ويتيح لك الحل أدناه تعديل كلٍّ من عدد القيم المراد استبعادها ووظيفة الهدف (المجموع أو المتوسط) بسهولة تامة.
قبل البدء، يُرجى حفظ ملف العمل الخاص بك، إذ لا يمكن التراجع مباشرةً عن تشغيل الماكرو.
1. انقر علىDeveloper > Visual Basic. في نافذةMicrosoft Visual Basic for Applications، انقر علىInsert > Module، ثم أدخل الكود التالي:
Sub DropLowestNandCalculate()
Dim WorkRng As Range
Dim OutputRng As Range
Dim n As Integer
Dim FuncType As String
Dim i As Integer, j As Integer, k As Integer
Dim Arr() As Variant, TempArr() As Double
Dim RowSum As Double
Dim RowCount As Integer
Dim MinIdx() As Integer
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Select the score range (rows to process):", xTitleId, WorkRng.Address, Type:=8)
Set OutputRng = Application.InputBox("Select output cells (top-left for results):", xTitleId, WorkRng.Offset(0, WorkRng.Columns.Count).Cells(1, 1).Address, Type:=8)
n = Application.InputBox("Number of lowest grades to drop (n):", xTitleId, "1", Type:=1)
FuncType = Application.InputBox("Type 'SUM' to calculate total or 'AVG' to calculate average (not case sensitive):", xTitleId, "AVG", Type:=2)
For i = 1 To WorkRng.Rows.Count
Arr = Application.WorksheetFunction.Transpose(Application.WorksheetFunction.Transpose(WorkRng.Rows(i).Value))
RowCount = UBound(Arr)
ReDim TempArr(1 To RowCount)
For j = 1 To RowCount
TempArr(j) = Arr(j)
Next j
' Mark n lowest values as used by setting to very high number
For k = 1 To n
Dim MinVal As Double, MinPos As Integer
MinVal = Application.WorksheetFunction.Min(TempArr)
For j = 1 To RowCount
If TempArr(j) = MinVal Then
TempArr(j) = 1E+308
Exit For
End If
Next j
Next k
RowSum = 0
Dim ValidCount As Integer
ValidCount = 0
For j = 1 To RowCount
If TempArr(j) <> 1E+308 Then
RowSum = RowSum + Arr(j)
ValidCount = ValidCount + 1
End If
Next j
If UCase(FuncType) = "AVG" Then
If ValidCount = 0 Then
OutputRng.Cells(i, 1).Value = "N/A"
Else
OutputRng.Cells(i, 1).Value = RowSum / ValidCount
End If
Else
OutputRng.Cells(i, 1).Value = RowSum
End If
Next i
End Sub 2. بعد إضافة الكود، انقر على زر
أو اضغط علىF5 للتنفيذ.
3. اتبع المطالبات التي تظهر على الشاشة:
- حدد نطاق الدرجات الذي ترغب في معالجته، مع التأكد من أن درجات كل طالب موجودة في صف واحد.
- اختر الخلية العلوية اليسرى في منطقة قائمة التخطيط (سيتم ملء النتائج عموديًّا لأسفل وفقًا لعدد الصفوف).
- أدخل أقل عدد من الدرجات التي تريد حذفها (على سبيل المثال،)1 لاستبعاد أقل درجة واحدة فقط في كل صف).
- اكتبSUM للحصول على المجموع (باستثناء الدرجات المحذوفة)، أوAVG للحصول على المتوسط المعاد حسابه (باستثناء الدرجات المحذوفة).
يقوم الماكرو بمعالجة كل صف ضمن منطقة الدرجات المحددة، ويضع إما المجموع أو المتوسط (حسب اختيارك) في منطقة القائمة الخاصة بك. وإذا تم حذف جميع الدرجات في صفٍ ما، تُشار النتيجة بـN/A لتجنب الأخطاء.
- تأكد من أن نطاق الإدخال يتوافق مع هيكل بياناتك، بحيث تحتوي كل صف على درجات طالب واحد.
- سيتم تجاهل الخلايا غير الرقمية (مثل الخلايا الفارغة أو التي تحتوي على نصوص) تلقائيًّا.
- يُسرّع هذا الكود المكتوب بلغة VBA عمليات حساب الدرجات المتكررة للفصول بأكملها بشكل كبير، ويتيح تعديلًا مرنًا لعدد الدرجات المراد حذفها.
- إذا كنت تُجري هذه العمليات بشكل متكرر، فقد ترغب في ربط هذا الماكرو بزر في ورقة العمل الخاصة بك للوصول إليه بسرعة أكبر.
إذا واجهت مشكلات مثل نتائج غير صحيحة أو أخطاء، فتأكد من أن النطاقات مُحدَّدة بدقة، وأن قيمة «n» ليست أكبر من أو تساوي إجمالي عدد الدرجات المتاحة لكل صف.
للمتطلبات المشابهة لأتمتة مثل حذف أعلى وأدنى الدرجات معًا أو التعامل مع الأعمدة بدلًا من الصفوف، يمكن إدخال تعديلات بسيطة على منطق كود 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 يومًا بكامل الميزات— بدون تسجيل، بدون بطاقة ائتمان
- أفضل قيمة— وفِّر مقارنةً بشراء الإضافات بشكل منفصل