بوابة الثانوية العامة المصرية

بوابة الثانوية العامة المصرية (https://www.thanwya.com/vb/index.php)
-   منتدى أعمال الامتحانات (https://www.thanwya.com/vb/forumdisplay.php?f=21)
-   -   شيت ألفا للمدارس الإعدادية - يقدم كل الخدمات بدون أكواد (https://www.thanwya.com/vb/showthread.php?t=205747)

alfa 25-05-2010 07:23 PM

اقتباس:

المشاركة الأصلية كتبت بواسطة mr said1 (المشاركة 2201961)
شيتك مميز حقا ولكن الحل الذي تفضلت به بخصوص المدارس المشتركة نريد فكره تانيه لان المدارس المشتركة كتير

شكرا لك أستاذنا على شهادتك للشيت

مسئول الكنترول الذى كان يستخدم الشيت
لم يفعل أى شىء إلا رصد درجات ملف الإنجاز و درجات مواد الاختبار

و هذا من فضل الله

ahmed12345a 27-05-2010 08:32 AM

اقتباس:

ربما يكون من الأسهل بناء برنامج جديد
جزاك الله خيرا

alfa 27-05-2010 09:02 AM

و جزاك خيرا أستاذ ahmed12345a

degabro 10-06-2010 12:03 PM

أرجو من سيادتكم مشكورا شرح لي كيف يتم عمل الترحيل للراسبين او الناجحين حيث أنني لم استطع تطبيقي ذلك علي الشيت الموجود عندي

alfa 10-06-2010 04:24 PM

مرحبا أخى degabro

هذا يكمن فى شرح معادلة مصممة لهذا الغرض

بداية
لابد أن يكون عندنا حقل فى الشيت الأصلى
يتميز به الناجح عن الراسب

هذا الحقل هو
حقل عدد مواد الرسوب

إذا كان عدد مواد الرسوب = صفرا

فالطالب ناجح

أما إن كان عدد مواد الرسوب أكبر من صفر
فالطالب راسب أو دور ثان

هل هذه النقطة مفهومة ؟

على أساس قيمة هذا العمود
سيتم ترحيل الناجح أو الراسب

هذا الحقل هو العمود
dg فى الورقة المسماة ALL

و هذه هى نقطة البداية
أريد التأكد أنك تتابعنى
لأكمل

degabro 10-06-2010 04:42 PM

lمعك يا استاذي واشكرك علي تقديرك لسؤالي

alfa 10-06-2010 05:42 PM

ممتاز

الآن أبدأ بمعادلة ترحيل الناجح وتجدها فى شيت الناجحين pass الخلية b7
كود:

=IF(ROWS($A$7:A7)<=COUNTIF(mostawa;0);INDEX(names;SMALL(IF(mostawa=0;ROW(mostawa)-ROW($A$7)+1);ROWS($A$7:A7)));"")
الفكرة


سنفصل المعادلة لأجزاء صغيرة

كود:

=COUNTIF(mostawa;0)
هذا الجزء يعد لنا الخلايا فى عمود عدد مواد الرسوب
لكن تلك التى قيمتها صفر فقط
لاحظ هذا العمود اسمه
mostawa

يعنى بعبارة أخرى عدد الناجحين
فعدد الناجحين = عدد الخلايا التى قيمتها صفر فى العمود المسمى " عدد مواد الرسوب "

واضح
إذن حصلنا الآن على عدد الناجحين

فيم سنحتاج عدد الناجحين ؟

نحتاجه كى نجعل المعادلة تعمل لعدد من الصفوف يساوى عدد الناجحين
لأنها بعد ذلك
ستعطى رسالة خطأ لأنها لن تجد ناجحين

مثلا
لو كان عدد الناجحين = 15
سأحتاج 15 صفا فقط بالورقة التى سيرحل إليها الناجحون

و الصف السادس عشر
سيكون رسائل خطأ تشوه منظر الشيت

كيف نجعل المعادلة تعمل لصفوف مساوية لهذا العدد فقط و تتوقف بعدها

نضع هذا الجزء من المعادلة فى شرط

كود:

=IF(ROWS($A$7:A7)
إذكان عدد الصفوف من a7 إلى a7 " هنا طبعا يساوى 1 لاحظ أن a7 الأولى ثابتة و الثانية ستتغير "
مثلا ستكون قيمة ذلك فى الخلية a20 in
كود:

=IF(ROWS($A$7:A20)
وهذا يساوى 14

كود:

<=COUNTIF(mostawa;0)
أقل من عدد الناجحين أو تساويه

هكذا
كود:

=IF(ROWS($A$7:A7)<=COUNTIF(mostawa;0)
نفذ المعادلة التالية

و إلا

اجعل قيمة الخلية = فارغة
كود:

;"")
وهذه فى آخر مكان من المعادلة

ماسبق كله هدفه
أن تعمل المعادلة فقط عدد مرات = عدد الناجحين و بعدها ترجع ""

هل نحن معا إلى هنا ؟ هل هذه الألغاز واضحة
لقد بذلت جهدى لتوضيحها

alfa 10-06-2010 06:12 PM

الآن ندخل فى صميم المعادلة التى تجلب الطالب الناجح
كود:

INDEX(names;SMALL(IF(mostawa=0;ROW(mostawa)-ROW($A$7)+1);ROWS($A$7:A7)))
كى نفهم هذه المعادلة
يجب شرحها من الداخل للخارج

الداخل
كود:

IF(mostawa=0;ROW(mostawa)-ROW($A$7)+1))
ترجمة هذا الجزء
إذا الخلية الأولى فى المدى مستوى " عدد مواد الرسوب " تساوى صفرا " يعنى الطالب ناجح

أرجع رقم الصف الحالى فى المدى المسمى mostawa

بما أن هذا الصف معدود من بداية الشيت يعنى من الصف الأول فى الشيت
فلكى نحصل على رقم الصف فى المدى مستوى
نطرح من رقم الصف الذى حصلنا عليه عدد ستة صفوف
لأن المدى مستوى
يبدأ من الصف السابع

فبطرح7 منها فيصير الناتج صفر
نزيد 1 فيعطى رقم الصف 1

نحصل على الصف رقم 1 فى المدى مستوى

هذا كله لو كانت الخلية قيمتها صفر

لو كانت غير ذلك

ترجع خطأ

سترجع لنا الدالة if
مصفوفة بهذا الشكل

الخلية أكبر من صفر
ستعطى false

,والخلية التى قيمتها صفر
سترجع رقم صفها فى المدى
mostawa

انظر الصورة
http://posterous.com/getfile/files.p...p/image001.jpg

http://kemas.posterous.com/if-wlBlq





عظيم

لاحظ الطالب فى الصف
من 1 : 5 ناجح
ومن 5 : 9 راسب
ثم العاشر نجح
وهكذا

alfa 10-06-2010 06:21 PM

http://posterous.com/getfile/files.p...p/image001.jpg

degabro 10-06-2010 08:04 PM

تمام استاذي الي الان انا معك واحاول التطبيق العملي وبالفعل نجحت في فهم كل ماسبق

alfa 10-06-2010 08:39 PM

ما شاء الله

تمام

نكمل

الآن حصلنا على مصفوفة من الأرقام و false
تمثل الأرقام رقم الصف المشتمل على طالب ناجح يعنى قيمة الخلية = 0 فى المستوى
و false هو طالب راسب قيمة الخلية أكبر من 0 يعنى عنده مواد رسوب

الخطوة التالية
نريد حذف false
و إبقاء الأرقام

دالة small
تتجاهل الخطأ false

و تعطينا أصغر رقم من مجموعة أرقام
فمثلا
الأرقام
4 و 2و9و3و5
تعطينا الأصغر و هو
2

وهذا هو أول الأرقام من حيث الصغر

ويمكن أن تعطينا الرقم الثانى من حيث الصغر
وهو هنا 3

والثالث فى الصغر 4

كود:

SMALL(IF(mostawa=0;ROW(mostawa)-ROW($A$7)+1);ROWS($A$7:A7))
ستحذف دالة small ال false مشكورة

لكن

أى الأرقام الصغيرة نريد
الأول فى الصغر
أم الثانى
أم الثالث

بالطبع
نريدها كلها لكن بالترتيب

ففى الصف الأول
وهو أول طالب ناجح
نريد الأول فى الصغر
وفى الصف الثانى
نريد رقم 2 فى الصغر

و فى الثالث نريد رقم 3 فى الصغر


دالة small
تختاج لمعرفة شيئين

الأول
مجموعة الأرقام التى تريد أصغرها

و هذا كاف لها
لو أنك تريد الأول فى الصغر

لكن لو أردت الثانى
فعليك أن تخبرها بذلك

فتضيف الرقم 2

نريد هنا الأصغر رقم 1
ثم 2
ثم 3

يعنى زيادة بمقدار 1 كل مرة

وهذه نحصل عليها من الدالة
rows
و ليس
row

rows
تعيد عدد الصفوف الموجودة فى مجال معين
الحيلة التالية
تزيد عدد الصفوف المحسوبة بمقدار صف كل مرة

كود:

ROWS($A$7:A7
هذا يعطينا الرقم 1
سيتغير هذا إلى
كود:

ROWS($A$7:A8
ليعطينا الرقم 2
كود:

ROWS($A$7:A9
يعطينا 3

وبهذا غيرنا ترتيب الصغر الذى نريده بزيادة 1 كل مرة


المحصلة
أنه سيتغير رقم الصف كل مرة بزيادة 1

إلى هنا انتهى دور دالة
small

lمع الشكر لها
أصبح لدينا أرقام صفوف الطلاب الناجحين مرتبة و منظمة

ستكون حسب الصورة السابقة كما يلى
هات الصف رقم
1
2
3
4
5
10 " هنا تجاهل false"
11
12
.
.
.
20
26
27

الآن
بعدما حصلنا على رقم الصف للطالب الناجح
ويزيد كل مرة بمقدار ثابت

ماذا سنفعل بهذا الكنز ؟

alfa 10-06-2010 09:33 PM

إذا كنت تعرف رقم الصف الذى تريده
فأنت من أصدقاء دالة
index

دالة index
تبحث عن قيمة فى صف معين و عمود معين

تحتاج لتعمل إلى

العمود الذى فيه القيمة التى نبحث عنها
وهو هنا اسم الطالب

و هو المدى المسمى
name
فى الشيت الأساسي
يعنى عمود " اسم الطالب "

الثانى
رقم الصف
وهو ما جهزناه سابقا

ولا نحتاج لرقم العمود
لأن المصفوفة التى نبحث فيها هى عمود واحد

هكذا وصلنا للنهاية
نطلب من دالة index
ما يلى :

ابحث فى عمود الأسماء عن اسم
رقم صفه هو ما جهزناه سابقا

مبروك
هكذا حصلنا على اسم الطالب الناجح

هذه المعادلة هى معادلة صفيف
بعد وضعها فى أول خلية
تضغط
كنترول + شيفت + مفتاح الإدخال
كى تعمل بشكل سليم

هذه المعادلة فى الترحيل
محكمة و ممتازة
و هى فى الحقيقة كنز كبير
يمكن تطبيقه على أى نوع من ترحيل البيانات بصورة انتقائية

هذا و الحمد لله
و أرجو أن تكون الصورة اتضحت أخى الأستاذ الفاضل
وشكرا

degabro 11-06-2010 12:26 AM

اشكرك أخي وزميلي الفاضل شكرا جزيلا علي هذا الفيض من المعلومات القيمة
وجعله الله في ميزان حسناتك وجزاك به احسن الجزاء
أخوك / محمد جابر
degabro

عميشة 16-06-2010 10:53 PM

مشكور ويعطيك العافية وأعز الله بك الاسلام

alfa 17-06-2010 12:09 AM

شكرا لممرورك و ثنائك الطيب
بارك الله فيك


جميع الأوقات بتوقيت GMT +2. الساعة الآن 07:14 PM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.