مدونة متخصصة في الاوفيس وتحليل البيانات والمعلومات والمهارات الشخصية والتنمية البشرية

آخر المواضيع

شرح دالة IF الشرطية

تعريف الدالة 

دالة 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  قرش اذا كان الاستهلاك اقل من ذلك



ليست هناك تعليقات:

إرسال تعليق

عن المدونة

مدونة تكنوليبريان : مدونة حديثة في مجاالات تكنولوجيا المعلومات والحاسب الالي والمكتبات نطمح في النهاية الى ان تنال اعجابكم / احمد وجيه
المزيد →

البحث داخل المدونة

نموذج الاتصال

الاسم

بريد إلكتروني *

رسالة *