الرئيسية / الدوال والمعادلات / الدوال المنطقية / المزيد من التفصيل عن دالة IF الشرطية وآلية عملها
دالة IF الشرطية
نافذة ادخال دالة IF الشرطية

المزيد من التفصيل عن دالة IF الشرطية وآلية عملها

السلام عليكم, تحدثنا سابقاً عن دالة IF الشرطية وكيفية استخدامها, لكنني احببت توسعة الكلام قليلاً عن هذه الدالة لاهميتها لكل مستخدمي برنامج اكسل Excel. إن فهم آلية عمل دالة IF الشرطية سيزيد من درجة فعالية استخدامنا لها ويقلل من احتمالية ارتكابنا لاي خطأ في طريقة بناء حدودها. اتكلم هنا عن المرات التي استخدمنا فيها دالة IF الشرطية لتعود لنا بنتيجة غير التي نتوقعها. هل كان من الممكن كتابة الدالة من أول مرة بدون اخطاء؟ المفتاح لهذا الأمر برأيي يتمثل في فهم آلية عملها كدالة وكيفية تطبيقها من قبل اكسل Excel.

 

كيف تعمل دالة IF الشرطية:

تخيل معي أنك واثناء قيادتك لسيارتك في طريق ما تجد نفسك امام نهاية الطريق والذي يتضح انه من النوع T أي أنك لن تستطيع الإستمرار بالقيادة للأمام وانما يمكنك فقط التوجه يميناً أو يساراً. في هذه اللحظة, ستطرح على نفسك السؤال التالي “هل اتجه يميناً؟” لو كانت اجابتك نعم, اذاً ستتجه يميناً أما لو كانت لا, فأنت ستتجه بطبيعة الحال يساراً (على افتراض ان الوقوف او التراجع ليسا متاحين كخيارين في هذا الموقف).

الطريق كتشبيه لدالة If الشرطية
الطريق T كتشبيه لدالة If الشرطية

 

هذا هو تماماً آلية عمل دالة IF الشرطية. سؤال منطقي يتبعه أمرين لاكسل Excel الأول لارجاع قيمة ما في حال الجواب الايجابي والثاني لارجاع قيمة أخرى في حال الجواب السلبي. بالكلام عن السؤال أو الشرط المنطقي يجب أن يكون جوابه هو نعم True أو لا / خطأ False. مثلاً هل لون هذه التفاحة هو الأحمر؟ هل علامة الطالب اكبر من 50؟ هل راتب هذا الموظف أقل من 10000؟….) يمكن كذلك طرح اسئلة مركبة (عن طريق استخدام دالّات مساعدة) مثل (هل لون هذه التفاحة هو الأحمر ووزنها أكبر من 200 غرام؟, هل علامة هذا الطالب في مادة الرياضيات أو مادة العلوم أقل من 50؟).

 

آلية عمل دالة IF الشرطية المتداخلة – مثال 1:

حسناً, لنفترض أنه وعند اكمالنا لنزهتنا السابقة مع افتراض اننا توجهنا يساراً (الاتجاه الأحمر في لصورة ادناه),

نهاية أول شارع في رحلة دالة IF الشرطية
نهاية أول شارع في رحلة دالة IF الشرطية

 

سنكتشف لاحقاً نهاية مشابهة (من حيث المبدأ) لما مرّ معنا منذ قليل تتمثل بنهاية طريق من النوع T مع امكانية الذهاب يميناً أو يساراً,

نهاية ثاني شارع في رحلة دالة IF الشرطية
نهاية ثاني شارع في رحلة دالة IF الشرطية

 

نختار الاتجاه الأحمر مجدداً, لنجد نهاية طريق من النوع T مجدداً وهكذا مراراً وتكراراً,

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

 

يُمثل هذا المثال تماماً آلية عمل دالة IF الشرطية المتداخلة Nested If Statement حيث أن اكسل ومع كل أو بعض الإلتفافات, سيجد اسئلة منطقية جديدة تحدد هل سيستمر في نزهته خلال دالة IF المتداخلة أو سينهيها. طبعاً في مثالنا السابق, ستنتهي الرحلة مباشرةً في حال تم اتباع الطريق ذو اللون الأخضر والذي يمثل الجواب الايجابي لأي من الشروط المنطقية المستخدمة في هذه النزهة. لنأخذ مثالاً تطبيقياً ونرى هل اصبح فهمنا لهذه الدالة اكثر صفاءاً!

لديك قيمة مبيعات مدراء المبيعات في شركتك وتريد أن تحسب لهم قيمة عمولتهم والتي تُحسب كنسبة مئوية تصاعدية بمقدار 1% لكل 10000 من المبيعات. أي:
• 1% من قيمة المبيعات لمن كانت مبيعاته أقل او تساوي 10000
• 2% —————————————- أقل او تساوي 20000
• 3% —————————————- أقل أو تساوي 30000
• …
• 6% —————————————- أقل أو تساوي 60000
• 7% من قيمة المبيعات لمن كانت مبيعاته أكبر من 60000

في حال قمت بكتابة المعادلة بشكل صحيح, فإن اكسل Excel سيترجمها كالتالي,
• هل قيمة المبيعات أقل أو تساوي 10000, ارجع القيمة 1% في حال الايجاب وإلا فانتقل الى السؤال التالي,
• هل قيمة المبيعات أقل أو تساوي 20000, ارجع القيمة 2% في حال الايجاب وإلا فانتقل الى السؤال التالي, (لاحظ أننا لم نسأل هل قيمة المبيعات هي أكبر من 10000 و أقل أو تساوي 20000 والسبب أننا وبسبب فهمنا لآلية عمل دالة IF الشرطية فإن اكسل Excel لن يصل لهذه النقطة من رحلته لو لم تكن قيمة المبيعات أكبر من 10000 وإلا فانه كان سينفّذ جواب الشرط الايجابي لأول سؤال. طالما انه تجاوز أول سؤال, اذاً لاداعي لتذكير اكسل Excel بوجوده. لقد تجاوزته مركبتنا منذ زمن)
• هل قيمة المبيعات أقل أو تساوي 30000, ارجع القيمة 3% في حال الايجاب وإلا فانتقل الى السؤال التالي,
• …
• هل قيمة المبيعات أقل أو تساوي 60000, ارجع القيمة 6% في حال الايجاب وإلا فانتقل الى السؤال التالي,
• اذا كانت قيمة المبيعات لا تنطبق على أي من الشروط السابقة, اذاً ارجع القيمة 7% والنهاية.

عند قولي انتقل للسؤال التالي, فأنا اقصد هنا IF شرطية جديدة ولتي تم اضافتها كجواب للنفي بعد كل سؤال وذلك لربط جميع الاحتمالات في معادلة IF رئيسية واحدة تحوي أكثر من مستوى من مستويات IF المتداخلة

فكّر مرة أخرى بمثال السيارة, ألا يشبه مسارنا بالسيارة في المثال اعلاه بما فعلناه منذ قليل؟. حسناً, يوجد فرق بسيط جداً يتمثل بخط النهاية وهو غير الزامي ولكنني انصح به وبشدة وفكرته كالتالي, يمثّل السطر الأخير شرطاً مفتوحاً وهو اذا كانت القيمة لاتنطبق على ماسبق من شروط ارجع القيمة 7%. هذا يعني انه لو اننا وبالخطأ كتبنا القيمة التالي 3025.2.3 مكان قيمة المبيعات, اكسل Excel سيسأل نفسه عن كل الشروط السابقة حتى يصل الى الشرط الأخير والذي يقول في حال كانت القيمة لا تنطبق على ماسبق, ارجع 7% وهو ماسيرجعه اكسل وطبعاً النتيجة خاطئة لكن اكسل Excel لايتحمل هكذا خطأ كونه قام بتنفيذ ماطلب منه بدقة. مثال آخر, لو كنت تريد عزل قائمة الطلاب الناجيح بعلامة 50 واكثر عن الطلاب الراسبين لكنك بالخطأ كتبت الشرط أكبر من 50 (وليس أكبر أو يساوي) إذاً الطالب ذو العلامة 50 سيعتبر راسباً حسب المعادلة لكن هذا خطأ.

برأيي اكثر الاخطاء المرتكبة عند كتابة دالة IF الشرطية تتمثل باختيار شروط خاطئة لا تمثل الاحتمالات المطلوبة لذا يجب التنبه لهذه النقطة والعمل على طرح الشروط على شكل سلسلة من الاسئلة المنطقية المتعاقبة مع التأكد من تغطيتها لكل الاحتمالات المطلوبة.

اذاً الفكرة أنه قد يكون من الآمن اكثر ان تكتب كل الشروط منفصلة وتترك آخر احتمال للخطأ (أكثر من خمسين, ناجح أما أقل من خمسين فراسب وإلا ارجع “خطأ”), هذا الاجراء و حتى وان كان غير إلزامي لكنه أكثر اماناً و قد يحميك احياناً من اخطاءٍ كارثية. بناءاً عليه فإن الحل الأمثل في مثالنا السابق سيكون باستبدال آخر شرط فيما سبق بالشرطين التاليين,
• هل قيمة المبيعات أكبر من 60000, ارجع القيمة 7% في حال الايجاب وإلا فانتقل الى السؤال التالي,
• اذا كانت قيمة المبيعات لا تنطبق على أي من الشروط السابقة, اذاً ارجع القيمة “خطأ” والنهاية. (طبعاً يمكنك استبدال الكلمة خطأ بأي عبارة تناسب احتياجاتك).

 

آلية عمل دالة IF الشرطية المتداخلة – مثال 2:

الآن, هل من الممكن حل المثال السابق لكن ابتداءاً من الشريحة العليا باتجاه الأسفل؟ يمكن ذلك عن طريق تغيير طريقة بناء معادلة IF كالتالي (مع الأخذ بعين الاعتبار ابقاء آخر حد لاحتمال الخطأ),
• هل قيمة المبيعات أقل أو تساوي 60000, انتقل للسؤال التالي في حالة الايجاب وإلا فارجع القيمة 7%
• هل قيمة المبيعات أقل أو تساوي 50000, انتقل للسؤال التالي في حالة الايجاب وإلا فارجع القيمة 6%
• …
• هل قيمة المبيعات أقل أو تساوي 10000, انتقل للسؤال التالي في حالة الايجاب وإلا فارجع القيمة 2%
• هل قيمة المبيعات أكبر من الصفر, ارجع القيمة 1% في حالة الايجاب وإلا فارجع القيمة “خطأ” والنهاية.

أو يمكننا تصور حركة الاسئلة كحركة السيارة في الطريق التالي,

تطبيق على استخدام دالة IF الشرطية
تطبيق على استخدام دالة IF الشرطية

 

الفرق هنا ان الشروط المتعاقبة كانت في حالة الجواب الايجابي وليس جواب النفي كما في المثال الأول. الفكرة تبقى كما هي دون تغيير. هذا يوصلنا الى فكرتنا الختامية لهذه المقالة وهي اننا ممكن أن نتشعب في طرح اسئلتنا المنطقية واحداً تلو الآخر وذلك باضافة مستويات جديدة من IF الشرطية من جهتي جواب الايجاب وكذلك جواب النفي. مثل بسيط عن هذا التشعب, هل معدل الطالب التراكمي أكبر من 70%:

• اذا كان الجواب ايجابي, إذاً اطرح السؤال التالي (الذي يمثل بدوره مستوى جديد من دالة IF الشرطية), هل معدله في المواد العلمية أكبر من 60%؟ ارجع القيمة “ناجح للقسم العلمي” في حال كان الجواب ايجابي وإلا ارجع القيمة “ناجح للقيم الأدبي.

• اذا كان الجواب سلبي, إذاً اطرح السؤال التالي (الذي يمثل بدوره مستوى جديد آخر من دالة IF الشرطية), هل معدله أكبر من 40% إذاً ارجع القيمة “راسب – للدورة التكميلية” وإلا ارجع القيمة “راسب – للاعادة”.

دالة IF شرطية معقدة من الطرفين
دالة IF شرطية معقدة من الطرفين

 

ملاحظات أخيرة على عمل دالة IF الشرطية:

الاحظ وجود عدم وضوح احياناً لدى بعض المستخدمين لطبيعة عمل دالة IF الشرطية لذى احببت التنويه الى أن عملها ينحصر بارجاع قيم ضمن الخلية التي تحوي المعادلة فقط مما يعني أن دالة IF الشرطية لا يمتد تأثيرها على اي خلية اخرى (هذا مجال عمل لغة البرمجة VBA). كذلك يجب التنبه الى أن دالة IF الشرطية لا تحدث اي تأثير في التنسيقات حتى على الخلية التي تحوي المعادلة (يمكن تنفيذ ذلك من خلال استخدام دالة IF الشرطية من خلال خاصيّة التنسيق الشرطي).

 

عن Hussein.B

مؤسس ومدير موقع viaexcel.com, اعمل في مجال الإئتمان, مهتم بمواضيع التدريب وتطوير الذات بالإضافة لحبي الشديد لبرنامج اكسل.

14 تعليقات

  1. محمد عبد الهادى

    السلام عليكم
    فى مخرجات الساب يتم اخراج الصفوف على مستوى الصنف وليس الفاتورة بمعنى ان الفاتورة قد تظهر على اكثر من صف طبقا لعدد الاصناف فى الفاتورة .انا اريد ان اجمع الصفوف بمعلمية رقم الفاتورة ممكن المساعده ؟

  2. شرط اذا تاريخ انتهاء صلاحية المنتج تعدى تاريخ اليوم — تغير لون الخليه

    • الحل عن طريق استخدام خاصية التنسيق الشرطي (التاريخ – تاريخ الصلاحية)>0 لون الخلية باللون الأحمر

  3. د. أحمد صدقي

    السلام عليكم ورحمة الله وبركاته
    لو حابب اعمل معدلة بحيث
    من 19حتى 31.73 تاخدواحد
    من 31.73 حتى 44.46 تاخد2
    من 44.67 حتى 57 تاخد3
    ولكم جزيل الشمر والتقدير

  4. عندي جدول لإدخال قيم وبناء علي قيمة الخلية يوجد دالة IF في خليه اخري لاختبارها وبناء علي النتيجة تكون القيمة في الخليه

    الصيغة هي

    =IF(D11>89,”أداء مميز”,IF(D11>79,”أداء جيد”,IF(D11>69,”أداء متوسط”,IF(D11>59,”أداء قليل”,IF(D11>1,”أداء غير مناسب”,” “)))))

    من ٩٠ فأعلى أداء متميز
    من ٨٠ فأعلى أداء جيد
    من ٧٠ فأعلى أداء متوسط
    من ٦٠ فأعلى أداء قليل
    من ١ فأعلى أداء غيز مناسب

    الصيغة تكون نتيجتها صحيحه للأعداد الصحيحة بدون فاصلة

    مثلاً :

    ٧٤ تعطي أداء متوسط وهذا صحيح

    لصيغة تكون نتيجتها خاطئة للأعداد العشرية التي تحوي فاصلة

    مثلاً :

    ٧٤،٢٥ تعطي أداء متميز وهذا خطأ

    فما هو الحل ؟

    • الصيغة صحيحة وشغالة تمام. المسكلة عندك هي بطريقة كتابة الرقم العشري؟ جربي كتابة رقم عشري بطريقة ثانية او على شكل عملية حسابية رح تطلع النتيجة صحيحة.

  5. عبدالوهاب اسحاق

    عندي جدول لتسديد طلبة مدرسة واريد توزيع السداد على الرسوم الدراسية المحددة مسبقا
    كمثال السداد النقدي 50 ريال
    والرسوم كما يلي
    رسوم التسجيل 5
    رسوم مواصلات 5
    رسوم زي 5
    رسوم نشاط 50
    رسوم دراسة 90

    والمطلوب توزيع المبلغ المسدد بحسب الترتيب اعلاه بحيث يرحل للأول ثم الثاني ثم الثالث ثم الرابع والباقي للخامس
    ثم عند التسديد مرة اخرى يرحل فقط للرسوم المتبقية

    • حل هكذا مشكلة يتطلب كود VBA وهو خارج مقدرتي. ممكن زودك بحل يدوي بدون الاكواد. ممكن تتواصل من خلال صفحة الموقع ع الفيس رجاءاً.

  6. إذا اردتاضافة 3 شروط واذا تحققت هذه الشروك يكون النتاج كذا واذا لم تتحقق تكون نواتج أخرى
    مثلا رواتب الموظفين
    الشروط الثلاثة
    الجنسية
    نوع العمل: إداري ،فين
    الدرجة الوظيفية : من الأولى-الرابة العشر
    كيف يمكن عمل ذلك

    • اهلاً يحيى, يجب ذكر الاحتمالات جميعها مع جواب شطر لكل احتمال ليقوم اكسل بالتنفيذ. الربط بين هذه الشروط “الفرعية الثلاثة” يمكن من خلال الدالة and.

      يمكنك أن تنفذ الشروط الثلاثة سويةً كأن تقول, الجنسية عربي AND نوع العمل: اداري AND الدرجة من واحد لعشرة ….

      أو ان تطرح شروط كل جنسية على حدى, مثلاً لكل العرب: نوع العمل اداري AND الدرجة من واحد لعشرة… ثم نوع العمل فني AND الدرجة من واحد لعشرة …..

  7. اظهار بدل العمل الاضافي (راتب الاساسي+بدل السكن+بدل النقل)/18 بأن يكون الراتب أقل من5000

    اذا كان الراتب الساسي 12543
    وبدل السكن 2325
    و بدل النقل 600

    • اهلاً ليلى. السؤال مو واضح. انتي عندك عمود فيه الراتب الاساسي, عمود لبدل السكن وعمود لبدل النقد. بدك لما بيكون المجموع اقل من 5000, يعطيكي بدل اضافي بقيمة مجموع الراتب تقسيم 18؟

أضف تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *