تعريف الدالة
دالة IF هي دالة شرطية تسئل عن شرط محدد قد يتحقق الشرط وقد لا يتحقق ، في حالة تحقق الشرط يتم تنفيذ اجراء معين (True) وفي حالة عدم تحقق الشرط يتم تنفيذ اجراء آخر (False)
=IF(Logical Test ; Value if True ; Value if False)
Logical Test = الشرط
Value if True = القيمة في حالة تحقق الشرط
Value if False = القيمة في حالة عدم تحقق الشرط
الفاصل بين كل متغير والاخر تبعاً لإعدادات اللغة على الويندوز
هنلاحظ ان التعريف يصف صيغة الدالة او تركيبها ولو كانت صيغة الدالة حاضرة في ذهنك وعارف معنى كل متغير في المتغيرات المكونة للدالة صدقني هتقدر تعمل بالدالة دي حاجات كتير جدا وتطوعها زي ما انت عايز
- القيمة في حالة تحقق الشرط والقيمة في حالة عدم تحقق الشرط تأخذ اكثر من شكل فقد تكون
Numbers - Text - Formula - Function - Nested If
امثلة على الدالة
1 - الحالة الاولي : القيمة في حالة تحقق / عدم تحقق الشرط Number
اذا كان لدينا مندوبي مبيعات وارادت ادارة الشركة مكافأة كل مندوب مبيعات تزيد مبيعاته عن 5 الاف جنيه او تساويها بمكافأة قدرها 100 جنيه ومن تقل مبيعاته عن ذلك مكافأة لا تتعدي 25 جنيه فقط
في المثال السابق قلنا لو كان محتوى الخلية C2 وهي خلية المبيعات اكبر من او يساوي 5 الاف جنيه يتم صرف 100 جنيه في حالة تحقق الشرط او 25 جنيه في حالة عدم تحقق الشرط لتصبح الدالة بالشكل التالي
=IF(C2>=5000;100;25)
2 - الحالة الثانية : القيمة في حالة تحقق / عدم تحقق الشرط Text
في المثال الثاني ارادت الشركة وضع الكلمة يتم تجديد العقد كحافز لمن كانت مبيعاته اكبر من او تساوي الخمسة الاف جنيه ومن تقل مبيعاته عن ذلك يتم وضع الكلمة لا يتم تجديد العقد هنا يتم استخدام الدالة بنفس الشكل السابق ولكن مع تغيير طفيف وهو وضع القيمة في حالة تحقق / عدم تحقق الشرط بين علامتي تنصيص " "
=IF(C12>=5000;"لا يتم تجديد العقد ";"يتم تجديد العقد")
3 - الحالة الثالثة: القيمة في حالة تحقق / عدم تحقق الشرط Formula
في هذه الحالة قامت الشركة بتغيير سياستها في منح مندوبي المبيعات حوافز فبدلا من استخدام رقم ثابت للحافز رأت انه من الافضل ان يتم احتساب الحافز بناءً على نسبة من المبيعات بحيث تكون القيم في حالة تحقق / عدم تحقق الشرط عبارة عن عملية حسابية كما بالمثال التالي :
على نفس الجدول السابق قم باحتساب الحافز بواقع 25% من قيمة المبيعات اذا كانت المبيعات اكثر من او تساوي 5000 واذا لم يتحقق الشرط " مبيعات اقل من 5000 " يتم احتسابه بواقع 5% من المبيعات فقط
احنا عارفين اننا عشان نحسب الحافز كنسبة من المبيعات هنقول الحافز عبارة عن ضرب المبيعات في النسبة فتطلعلنا النسبة
الحافز = المبيعات * 25% في حالة تحقق الشرط
الحافز = المبيعات في 5% في حالة عدم تحقق الشرط
اللي احنا عملناه ده بالظبط هو اللي احنا هنعمله مع الدالة يعني هنشيل العملية الحسابية دي زي ما هيا ونحطها مكان القيمة في حالة تحقق الشرط وهكذا بالنسبة للقيمة في حالة عدم تحقق الشرط
=IF(C22>=5000;C22*25%;C22*5%)
تنويه هاااااااام
- يمكن اجراء اي عملية حسابية بسيطة او معقدة من اجل الحصول على القيمة في حالة تحقق الشرط او عدم تحققه
- 25% يمكن استبدالها بشكل اخر 0.25
4 - الحالة الرابعة : القيمة في حالة تحقق / عدم تحقق الشرط Function
الشركة وجدت ان الموضوع جاي عليها بالخسارة وكل مندوبي المبيعات تقريبا بياخدو حوافز فقالت لاء بقا احنا نخلي الحوافز بناء على مبيعات الشهور الثلاثة " ربع سنوي يعني " كما بالشكل التالي :
طبعا في الحالة دي اما اني اعمل عمود للاجمالي وبناء علية احسب نسبة المبيعات كما بالحالة السابقة بدون اي اختلاف او اني اشتغل على الوضع الحالى للجدول كما هو عليه
طب ازاااي
اقولك حضرتك كنت هتسخدم اي دالة عشان تجيب اجمالي مبيعات الشهور الثلاثة ؟
الاجابة : طبعاً هنستخدم دالة الجمع Sum
باااااس هو ده اللي انا هعمله بالظبط هاخد دالة الجمع دي زي ما هي كده واحطها مكان القيمة في حالة تحقق الشرط او القيمة في حالة عدم تحقق الشرط
زي ما حضراتكم شايفين كده انا قلتله لو جمع الثلاث شهور اكبر من او يساوي 15 الف اديني 10% من جمع الثلاث شهور يعني اجمعهم والناتج اضربه في 10% وفي حالة ان المبيعات اقل من ال 15 الف سبلي خانة الحافز فارغة يعني مش هياخد حاجة عشان كده حطينا علامتي التنصيص "" عشان نقول للاكسيل سيبها فاضية
=IF(SUM(C31:E31)>=15000;SUM(C31:E31)*10%;"")
تنوية هاااام
في حالة الرغبة في ترك القيمة في حالة تحقق / عدم تحقق الشرط فارغة يتم وضع علامتي تنصيص فقط بينهم مسافة او بدون ""
5 - الحالة الخامسة : Nested IF اف المتداخلة
في الحالة دي احنا هنتكلم عن Nested IF او اف المتداخلة ومن اشهر الامثلة عليها جدول تقديرات الطلبة اللي هو زي ده 👇
حضرتك لو بصيت في الجدول ده هتلاقي درجات الطلاب وتقديراتهم ومنعا لإهدار الوقت والوقوع في الخطاء لاني ممكن بالخطاء اكتب تقدير احمد في الخانة بتاعة محمود والعكس
المهم اني عشان اخلي الاكسيل يحددلي تقدير الطالب بناءً على الدرجة الحاصل عليها هنستخدم دالة IF عادي جدا زي ما شرحنا قبل كده لكن احنا عارفين ان دالة IF بتسئل عن شرط ممكن يتحقق وممكن لاء فلو اتحقق هنفذ اجراء معين ولو لاء هنذ اجراء اخر وفي مثالنا هنقيس تحقق الشرط على الدرجة الحاصل عليها الطالب فلو الطالب جايب درجة اكبرمن او تساوي 85 هنديله تقدير امتياز ولو اقل يبقى جديد جدا وده اللي احنا فاهمينة من الدالة لكن فيه مشكلة هتقابلني هيا ان الدرجات الاقل من ال 85 دي تبدء من 84.99 لحاااااااااااااااااد 0 يعني الطالب اللي هيجيب 30 زي اللي هيجيب 84 زي اللي هيجيب 79 وتعالي نجرب ونشوف
انا بقول هنا لو الدرجة اللي هيا محتوى الخلية C2 اكبر من او تساوي 85 يبقى اديني امتياز ، طب لو ما اتحققش الشرط يعني ايه القيمة اللي يديهاني في حالة عدم تحقق الشرط هنقول اديني جيد جدا
الكلام ده مش مظبوط لانه زي ما وضحنا 84 اقل و 30 اقل و 79 اقل وبالتالي كلهم هياخدو نفس النتيجة
طيب والحل ايه ؟
هنيجي مكان القيمة في حالة عدم تحقق الشرط Value _if_false وهندخل IF تاني عشان نزود التقسيم وهو ده سبب التسمية ب Nested IF مقصود بيها تعشيش دالة من جوا دالة بمعني اني كل مره يتحقق الشرط اسئل طب لو ما اتحققش خلاص كده راسب لو كانت اجابتك اه يبقى نحط القيمة في حالة عدم تحقق الشرط راسب وخلاص ولو كانت الاجابة لاء لسه في تقديرات تانيه نزود IF جديدة ونمشي معاها بنفس المبدء
=IF(C2>=85;"امتياز";IF(C2>=75;"جيد جدا";IF(C2>=65;"جيد";IF(C2>=50;"راسب";"مقبول"))))
نلاحظ ايه من التركيبة دي ؟
ان كلامي اللي كنت بقوله بالانشا كده طبقتة بالظبط زي ما خرج على لساني باستخدام الدالة ليس الا ، تعالوا نشوف
مجرد الضغط بالموافقة على الرسالة يتم وضع اقواس الغلق الناقصة
برجاء كتابة الدالة باليد لضمان الاستيعاب الجيد والتعود على كتابة الدوال باليد بصفة عامة ومننساش النصوص بين علامتي تنصيييص
هااااااااام للغاية يمكن استخدام العمليات الحسابية والدوال داخل Nested IF
مثال للتدريب
شركات المحمول او شركات الكهرباء بتقسم استهلاك العملاء لشرائح " اتكلم اكتر تدفع اقل "
على سبيل المثال يتم احتساب دقيقة المحمول ب 9 قروش اذا كان الاستهلاك اعلى من او يساوي 200 دقيقة في الشهر و15 قرش للدقيقة لو كان الاستهلاك اكبر من او يساوي 150 دقيقة و 20 قرش لو كان الاستهلاك اكبر من او يساوي 100 و 25 قرش اذا كان الاستهلاك اقل من ذلك
ليست هناك تعليقات:
إرسال تعليق