دالة IF المتداخلة هي IF داخل IF أخرى، وتُستخدم عندما تكون هناك أكثر من نتيجتين ممكنتين. تعطي =IF(B2>=90,"A",IF(B2>=80,"B",IF(B2>=70,"C","F"))) التقدير A لـ 90 فأكثر، وB من 80 إلى 89، وC من 70 إلى 79، وF لما دون 70.
| A | B | C | |
|---|---|---|---|
| 1 | Student | Score | Grade |
| 2 | Ana | 94 | A |
| 3 | Ben | 81 | B |
| 4 | Chloe | 70 | C |
| 5 | Dan | 65 | F |
| 6 | Eve | 88 | B |
| 7 | Finn | 90 | A |
انقر C2 وانظر إلى شريط الصيغة: ثلاث دوال IF، وثلاثة أقواس ختامية في النهاية. غيّر درجة Dan في B5 إلى 75 فيتحول تقديره من F إلى C.
كيف تُقرأ IF المتداخلة
يقرأ الاكسل الصيغة من بدايتها ويتوقف عند أول اختبار يكون TRUE:
=IF(B2>=90, "A",
IF(B2>=80, "B",
IF(B2>=70, "C",
"F")))
- هل الدرجة 90 أو أكثر؟ إذن A، ولا يُتحقق من أي شيء آخر.
- وإلا، هل هي 80 أو أكثر؟ إذن B. لا يحتاج هذا الاختبار إلى قول "وأقل من 90"، لأن الدرجة 90 فأكثر لا تصل إليه أبدًا.
- وإلا، هل هي 70 أو أكثر؟ إذن C.
- وإلا F، أي value_if_false لآخر IF.
تقع كل IF داخلية في خانة value_if_false للدالة التي قبلها. يسمح الاكسل بما يصل إلى 64 مستوى، لكن الصيغة التي فيها أكثر من أربعة أو خمسة يصعب التحقق منها بالعين. ويقبل الاكسل فواصل الأسطر داخل الصيغة، لذا يمكنك ترتيب صيغة طويلة بهذا الشكل في شريط الصيغة: اضغط Alt+Enter (Windows) أو Control+Option+Return (Mac) قبل كل IF.
لماذا يهم ترتيب الشروط
لأن الاكسل يتوقف عند أول اختبار TRUE، يجب أن تتدرج الحدود من الأعلى إلى الأدنى عند استخدام >=. في العمود D الاختبارات الثلاثة نفسها بالترتيب المعاكس:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Student | Score | Right order | Wrong order |
| 2 | Ana | 94 | A | C |
| 3 | Ben | 81 | B | C |
| 4 | Chloe | 70 | C | C |
| 5 | Dan | 65 | F | F |
| 6 | Eve | 88 | B | C |
في العمود D يحصل كل من لديه 70 فأكثر على C: الدرجة 94 تنجح في الاختبار الأول، B2>=70، ولا يُوصل أبدًا إلى اختباري B وA. وإذا كنت تفضل البدء بأدنى فئة، فاعكس العوامل: تعطي =IF(B2<70,"F",IF(B2<80,"C",IF(B2<90,"B","A"))) التقديرات نفسها التي في العمود C.
IF المتداخلة مع النص
يمكن أن تقارن الاختبارات النصوص أيضًا. هنا تعتمد رسوم التوصيل على المنطقة، وكل منطقة غير مذكورة تحصل على القيمة الأخيرة:
| A | B | C | |
|---|---|---|---|
| 1 | Order | Region | Fee |
| 2 | 1001 | North | $5.00 |
| 3 | 1002 | South | $7.00 |
| 4 | 1003 | West | $9.00 |
| 5 | 1004 | East | $6.00 |
| 6 | 1005 | Islands | $9.00 |
لا تطابق West وIslands أيًا من الاختبارات الثلاثة فتحصلان على القيمة الأخيرة، $9.00. وعندما يقارن كل اختبار الخلية نفسها بقيمة ثابتة، كما هنا، تكتب SWITCH القاعدة نفسها مع ذكر كل منطقة مرة واحدة: =SWITCH(B2,"North",5,"South",7,"East",6,9). راجع صفحة SWITCH.
IF المتداخلة مع AND
يمكن أن تجمع IF المتداخلة مستوياتها مع AND أو OR عندما تعتمد فئة واحدة على خليتين. المندوب الذي مبيعاته 2,000 أو أكثر وخبرته 3 سنوات على الأقل يحصل على 10%، وأي شخص آخر فوق 2,000 يحصل على 5%، والبقية لا يحصلون على شيء:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Rep | Sales | Years | Rate |
| 2 | Ana | 2400 | 4 | 10% |
| 3 | Ben | 2100 | 1 | 5% |
| 4 | Chloe | 1500 | 6 | 0% |
| 5 | Dan | 3000 | 3 | 10% |
| 6 | Eve | 900 | 2 | 0% |
تستحق Ana وDan نسبة 10%، ولدى Ben المبيعات دون السنوات فيحصل على 5%، وتحصل Chloe وEve على 0%. الترتيب مهم هنا أيضًا: الاختبار الأشد يأتي أولًا.
IFS: الشيء نفسه دون تداخل
في Excel 2019 وExcel 2021 وMicrosoft 365، تأخذ IFS الاختبارات والنتائج كأزواج، دون IF داخلية ومع قوس ختامي واحد. وTRUE كاختبار أخير يعمل بمعنى "كل ما عدا ذلك":
=IFS(B2>=90,"A",B2>=80,"B",B2>=70,"C",TRUE,"F")
تقرأ الشروط بالترتيب نفسه وتتوقف عند أول شرط TRUE، لذا تبقى قاعدة الترتيب أعلاه سارية. تتناولها صفحة IFS، بما في ذلك الخطأ #N/A الذي تعيده عندما لا يتطابق أي اختبار. في Excel 2016 وما قبله لا تتوفر IFS، والملف الذي يستخدمها يعرض #NAME? هناك.
تمرين: عمولة بثلاث فئات
| A | B | C | |
|---|---|---|---|
| 1 | Rep | Sales | Commission |
| 2 | Ana | $6,200 | |
| 3 | Ben | $2,400 | |
| 4 | Chloe | $600 |
دورك: في C2، ادفع 10% من المبيعات في B2 عندما تكون 5000 أو أكثر، و5% عندما تكون 1000 أو أكثر، و0 في غير ذلك. تُنسخ الصيغة إلى الأسفل حتى C4.
جدول بحث بدلًا من دوال IF كثيرة
عندما تكون الفئات أرقامًا وعددها أكثر من ثلاث أو أربع، احتفظ بالحدود في جدول صغير وابحث فيه. الجدول مرتب من أدنى حد صعودًا، والمطابقة التقريبية (TRUE كوسيط أخير) تعيد صف أكبر حد لا يتجاوز الدرجة:
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Student | Score | Grade | Min score | Grade | |
| 2 | Ana | 94 | A | 0 | F | |
| 3 | Ben | 81 | B | 70 | C | |
| 4 | Chloe | 70 | C | 80 | B | |
| 5 | Dan | 65 | F | 90 | A | |
| 6 | Eve | 88 | B |
النتائج تطابق IF المتداخلة في أعلى الصفحة. لنقل فئة B إلى 85، غيّر E4 إلى 85: لا تتغير أي صيغة، وتتحدث كل التقديرات. ومع XLOOKUP يكون البحث نفسه =XLOOKUP(B2,$E$2:$E$5,$F$2:$F$5,,-1)، حيث تعني -1 "مطابقة تامة أو القيمة الأصغر التالية"؛ ولا يلزم عندها ترتيب الجدول.
جرّبها: جدول الفئات جاهز، اكتب صيغة البحث.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Student | Score | Grade | Min score | Grade | |
| 2 | Ana | 86 | 0 | F | ||
| 3 | 70 | C | ||||
| 4 | 80 | B | ||||
| 5 | 90 | A |
دورك: في C2، أعد تقدير الدرجة الموجودة في B2 من جدول الفئات في E2:F5.
الأسئلة الشائعة
كيف أكتب عدة شروط IF في الاكسل؟
ضع دالة IF التالية في الوسيط value_if_false للدالة السابقة: =IF(B2>=90,"A",IF(B2>=80,"B",IF(B2>=70,"C","F"))). يختبر الاكسل الشروط من الأول إلى الأخير ويتوقف عند أول شرط يكون TRUE.
كم دالة IF يمكن وضعها داخل بعضها في الاكسل؟
حتى 64 مستوى في Excel 2007 وما بعده. وقبل هذا الحد بكثير تصبح الصيغة صعبة القراءة والتحقق؛ فمع أكثر من ثلاث أو أربع فئات، يكون جدول بحث مع VLOOKUP التقريبية أو XLOOKUP أسهل في الصيانة.
لماذا تعيد IF المتداخلة نتيجة خاطئة؟
غالبًا لأن الشروط بترتيب خاطئ. مع اختبارات >=، ابدأ بأعلى حد: إذا جاء B2>=70 أولًا، فستتوقف الدرجة 95 عنده وتحصل على نتيجة فئة 70.
ماذا أستخدم بدلًا من IF المتداخلة في الاكسل؟
IFS في Excel 2019 وما بعده (=IFS(B2>=90,"A",B2>=80,"B",TRUE,"F"))، وSWITCH عندما تقارن قيمة واحدة بقيم ثابتة، وجدول بحث مع =VLOOKUP(B2,$E$2:$F$5,2,TRUE) للفئات الرقمية.