اذهب الي المحتوي
أوفيسنا

نقل البيانات بشرط


منسق

الردود الموصى بها

السلام عليكم ورحمة الله وبركاته

عندي مشروع فيه بيعض البيانات مثلاً أسماء طلاب ونتائجهم وعدد الطلاب كبير جداً

أريد برنامج الإكسل أن يفرز الطلاب الراسبين فقط أي الحاصلين على مجموع أقل من 50% في ورقة منفصلة (أسماء الطلاب ونتائجهم)

كيف يمكنني عمل ذلك ولكم الشكر

تحياتي ،، منسق

رابط هذا التعليق
شارك

  • 2 months later...

السلام عليكم ...

الأسلوب السابق يعتمد على الأعمدة F ، G ، H المخفية وسوف أشرح إن شاء الله الصيغ الموجودة في هذه الأعمدة بصورة متسلسلة وذلك حتى نصل للحل ، وسوف أعتمد على شرح الصيغ الموجودة في ورقة الراسبين بصورة تمكنك من فهم الصيغ الموجودة في ورقة الناجحين (لأن الاختلاف بين الطريقتين بسيط جداً).

لنبدأ بسم الله :

الخلية F2 في ورقة الراسبين تحتوي على الصيغة التالية:

=IF(OR('بيانات الطلاب'!B2>=D$3;'بيانات الطلاب'!B2="");"";'بيانات الطلاب'!A2)
الصيغة السابقة تقوم بفرز الطلاب الراسبين لنقوم بالتعامل معهم لاحقاً ، و الصيغة تعتمد على الدالة IF و المعامل المنطقي OR و تفسير الصيغة هو كالتالي: إذا كانت الخلية B2 من الورقة "بيانات الطلاب" (الخلية المقابلة للخلية F2 في العامود B الموجود في الورقة "بيانات الطلاب") تحتوي على قيمة أكبر أو تساوي درجة النجاح D$3 (طالب ناجح) أو لا تحتوي على أية بيانات فأبقي على هذه الخلية F2 فارغة (تجاهل هذا الطالب) و إلا فأدرج قيمة الخلية A2 الموجود في ورقة "بيانات الطلاب" في هذه الخلية F2 (أدرج اسم الطالب الراسب). لاحظ أن المراجع الموجودة في الصيغة كلها مراجع نسبية ما عدا المرجع D$3 فهو مرجع مطلق وذلك لأن موضعه ثابت ولا نريد تغيير موضعه عند تعبئة الخلايا. ونلاحظ أيضاً أنه عند الإشارة للمراجع الموجودة في ورقة العمل الحالية"الطلاب الراسبين" فإننا لا نحتاج لكتابة اسم هذه الورقة قبل نطاق الخلايا ، ولكننا نكون مضطرين لكتابة اسم ورقة العمل عندما نريد الإشارة لنطاق موجود في ورقة أخرى. وبنظرة بسيطة نلاحظ أن الصيغة التالية :
=IF(OR('بيانات الطلاب'!B2<D$3;'بيانات الطلاب'!B2="");"";'بيانات الطلاب'!A2)
و الموجودة في الورقة "الطلاب الناجحين" تختلف عن الصيغة الموجودة في ورقة "الطلاب الراسبين" بشرط الفرز فقط. الخلية G2 في ورقة الراسبين تحتوي على الصيغة التالية:
=IF(OR('بيانات الطلاب'!B2>=D$3;'بيانات الطلاب'!B2="");"";'بيانات الطلاب'!B2)
نلاحظ أن هذه الصيغة تشبه إلى حد كبير الصيغة الموجودة في الخلية F2 مع فرق بسيط هو أن هذه الصيغة تقوم بإرجاع علامة الطالب بدلاً من اسمه. الخلية H2 في ورقة الراسبين تحتوي على الصيغة التالية:
=IF(G2="";"";COUNT(G$2:G2))
الصيغة السابقة كما نلاحظ بسيطة وتعمل على احتساب ترتيب الطالب الناجح (عدد الطلاب الراسبين الموجودين قبل هذا الطالب بما فيهم هذا الطالب). الخلية A2 في ورقة الراسبين تحتوي على الصيغة التالية:
=IF(ROW()-1>MAX(H$2:H$50);"";LOOKUP(ROW()-1;H$2:H$50;F$2:F$50))

هنا نحن استفدنا من رقم السطر الحالي في وضع ترتيب للطلاب ، وبما أننا نبدأ من الخلية A2 فنقوم بطرح الرقم 1 من رقم السطر وذلك حتى نستطيع بدء الترتيب من 1 , 2 ,3 , 000 , الخ.

الصيغة السابقة تقوم بمقارنة أكبر قيمة من المجال H$2:H$50 مع الترتيب الحالي فإذا كان الترتيب الحالي أكبر من أكبر قيمة موجودة في هذا المجال فهذا يعني أن الطلاب الراسبين قد انتهوا وبذلك تقوم الصيغة بالإبقاء على هذه الخلية فارغة وإلا (أي مازال هناك طلاب راسبون) فتقوم هذه الصيغة بإرجاع اسم الطالب من المجال F$2:F$50 و المقابل لترتيب الطالب الحالي و المأخوذ من المجال H$2:H$50.

الخلية B2 في ورقة الراسبين تحتوي على الصيغة التالية:

نلاحظ أن هذه الصيغة تشبه إلى حد كبير الصيغة الموجودة في الخلية A2 مع فرق بسيط هو أن هذه الصيغة تقوم بإرجاع علامة الطالب بدلاً من اسمه.

والآن نقوم بتعبئة الصيغ الثلاث السابقة على جميع الخلايا الموجودة في نفس الأعمدة وذلك حتى السطر 50 (آخر سطر في جدول الطلاب).

أرجو أن أكون قد وفقت في الشرح .

بالتوفيق :fff:

رابط هذا التعليق
شارك

زائر
هذا الموضوع مغلق.
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information