تتحقق =IF(B2>=50,"Pass","Fail") مما إذا كانت الدرجة في B2 تساوي 50 أو أكثر. إن كانت كذلك، تعرض الخلية Pass؛ وإن لم تكن، تعرض Fail.
| A | B | C | |
|---|---|---|---|
| 1 | Student | Score | Result |
| 2 | Ana | 72 | Pass |
| 3 | Ben | 45 | Fail |
| 4 | Chloe | 50 | Pass |
| 5 | Dan | 38 | Fail |
| 6 | Eve | 91 | Pass |
انقر C2 لترى الصيغة، ثم غيّر درجة Ben في B3 إلى 60: تتحول نتيجته إلى Pass. حصلت Chloe على 50 بالضبط، و>= تعني "50 أو أكثر"، لذا تنجح. ومع > كانت سترسب.
صيغة دالة IF
=IF(logical_test, value_if_true, value_if_false)
logical_testأي مقارنة أو صيغة تعطي TRUE أو FALSE:B2>=50،C2="Paid"،D2<TODAY().value_if_trueما تعرضه الخلية عندما يكون الاختبار TRUE.value_if_falseما تعرضه في غير ذلك. وهو اختياري: احذفه فتعرض الخلية FALSE عندما يفشل الاختبار. وإذا أبقيت الفاصلة وتركت الوسيط فارغًا،=IF(B2>=50,"Pass",)، فستعرض 0.
يمكن أن تكون كل نتيجة نصًا بين علامتي اقتباس مزدوجتين ("Pass")، أو رقمًا (0)، أو مرجع خلية (C2)، أو صيغة أخرى. النص بلا علامات اقتباس يُقرأ كاسم، لذا تعطي =IF(B2>=50,Pass,Fail) الخطأ #NAME?.
عوامل المقارنة هي = (يساوي)، و<> (لا يساوي)، و>، و<، و>=، و<=. في الاكسل المضبوط على لغة تستخدم الفاصلة العشرية، تُفصل الوسائط بفواصل منقوطة: =IF(B2>=50;"Pass";"Fail"). ويستخدم Google Sheets دالة IF نفسها بالوسائط نفسها.
دالة IF مع النص
يمكن أن يقارن الاختبار خلية بنص. يوضع النص بين علامتي اقتباس مزدوجتين، والمقارنة تتجاهل الأحرف الكبيرة والصغيرة.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Order | Region | Free delivery | Exact case |
| 2 | 1001 | North | Yes | Yes |
| 3 | 1002 | South | No | No |
| 4 | 1003 | north | Yes | No |
| 5 | 1004 | East | No | No |
| 6 | 1005 | NORTH | Yes | No |
يقول العمود C إن الإجابة Yes للقيم North وnorth وNORTH، لأن = لا تهتم بحالة الأحرف. وعندما تهم حالة الأحرف (رموز المنتجات، كلمات المرور)، اختبر بالدالة EXACT بدلًا من ذلك، كما في العمود D: الصف الذي يقرأ North بالضبط وحده يحصل على Yes.
لاختبار أي شيء عدا قيمة ما، استخدم <>: =IF(B2<>"North","Standard","Free"). ولاختبار ما إذا كانت خلية تحتوي على كلمة في مكان ما داخلها، تحتاج IF إلى SEARCH، وهذا مشروح في صفحة دوال IS.
دالة IF مع عملية حسابية
لا يجب أن تكون نتائج IF نصًا. هنا يحصل كل مندوب على مكافأة 5% على المبيعات التي تتجاوز 1,000، ولا شيء دون ذلك:
| A | B | C | |
|---|---|---|---|
| 1 | Rep | Sales | Bonus |
| 2 | Ana | $1,400 | $70 |
| 3 | Ben | $800 | $0 |
| 4 | Chloe | $1,000 | $0 |
| 5 | Dan | $2,600 | $130 |
| 6 | Eve | $1,150 | $58 |
تحصل Ana على $70 (5% من 1,400) ويحصل Ben على $0. باعت Chloe 1,000 بالضبط، والاختبار هو "أكبر من 1,000"، لذا تحصل هي أيضًا على $0. غيّر صيغة C2 إلى =IF(B2>=1000,B2*5%,0) فتصبح مكافأتها $50.
ويمكن أن يقارن الاختبار أيضًا خليتين، =IF(B2>C2,"Over target","Under target")، أو خلية بعملية حسابية، =IF(B2>AVERAGE($B$2:$B$6),"Above average","").
دالة IF للخلية الفارغة
يكون B2="" قيمة TRUE عندما تكون B2 فارغة. استخدمه لتخطي الصفوف التي ليس فيها بيانات بعد، حتى لا يمتلئ عمود الصيغة بالأصفار:
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Item | Qty | Price | Total | Status |
| 2 | Pens | 10 | $1.50 | $15.00 | Ordered |
| 3 | Paper | $4.20 | Not ordered | ||
| 4 | Ink | 2 | $18.00 | $36.00 | Ordered |
| 5 | Tape | $2.80 | Not ordered | ||
| 6 | Clips | 5 | $0.90 | $4.50 | Ordered |
"" (علامتا اقتباس مزدوجتان بلا شيء بينهما) نص فارغ، لذا لا يعرض Paper وTape شيئًا في العمود D. اكتب كمية في B3 فيظهر المجموع. ويختبر العمود E العكس بالصيغة <>""، أي "ليست فارغة".
الخلية التي تحتوي على ="" تبدو فارغة لكنها ليست فارغة بالنسبة إلى ISBLANK. يهم هذا الفرق عندما تقرأ صيغ أخرى العمود، فمثلًا تعدّها COUNTA.
دالة IF بشرطين
تأخذ IF اختبارًا واحدًا. لاشتراط أمرين معًا، ضع AND داخل الاختبار؛ ولقبول أي منهما، استخدم OR:
=IF(AND(B2>=50,C2>=50),"Pass","Fail")
=IF(OR(B2="North",B2="South"),"Zone 1","Zone 2")
كلاهما مشروح بأمثلة حية في صفحة AND وOR. ولثلاث نتائج ممكنة أو أكثر (A، B، C، F)، ضع IF داخل أخرى (IF المتداخلة) أو استخدم IFS.
تمرين: إعادة الطلب أم لا
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Item | Stock | Minimum | Status |
| 2 | Pens | 12 | 20 | |
| 3 | Paper | 30 | 25 | |
| 4 | Tape | 15 | 12 | |
| 5 | Ink | 8 | 10 |
دورك: في D2، اعرض "Reorder" عندما يكون المخزون في B2 أقل من الحد الأدنى في C2، وإلا فاعرض "OK". تُنسخ الصيغة إلى الأسفل حتى D5.
| A | B | C | |
|---|---|---|---|
| 1 | Rep | Sales | Bonus |
| 2 | Ana | $1,250 | |
| 3 | Ben | $600 | |
| 4 | Chloe | $2,300 |
دورك: في C2، أعد مكافأة تساوي 10% من المبيعات في B2 عندما تتجاوز المبيعات 1000، و0 في غير ذلك. تُنسخ الصيغة إلى الأسفل حتى C4.
أخطاء IF الشائعة
علامات اقتباس حول رقم. تقارن =IF(B2>"50","High","Low") الخلية B2 بالنص "50"، لا بالرقم 50. يرتب الاكسل كل رقم تحت كل نص، لذا يكون الاختبار FALSE لأي رقم في B2 وتقول الصيغة دائمًا Low. اكتب الأرقام بلا علامات اقتباس: B2>50.
استخدام ==. اختبار المساواة في الاكسل علامة = واحدة. كتابة =IF(B2=="Paid","Yes","No") تجعل الاكسل يرفض الصيغة برسالة "There's a problem with this formula" (توجد مشكلة في هذه الصيغة).
أرقام مخزنة كنص. إذا احتوت B2 على '12 (نص يبدو كرقم، غالبًا من استيراد)، فإن B2>=50 تقارن نصًا برقم. النص يُعدّ دائمًا أكبر، لذا يكون الاختبار TRUE وتنجح 12. حوّل العمود أولًا؛ توضح صفحة تحويل النص إلى رقم الطريقة.
توقع TRUE كنص. تعيد =IF(B2>=50,"TRUE","FALSE") الكلمتين كنص، ولا تستطيع الصيغ الأخرى استخدامهما كقيم منطقية. إذا كنت تريد TRUE وFALSE، فلا تحتاج إلى IF أصلًا: تعيدهما =B2>=50 مباشرة.
نسيان الأقواس الختامية. كل IF تفتح قوسًا واحدًا وتحتاج إلى ) خاصة بها. أثناء التحرير، يعرض الاكسل كل زوج من الأقواس بلون مختلف، مما يسهّل اكتشاف القوس المفقود.
الأسئلة الشائعة
كيف أكتب صيغة شرط IF في الاكسل؟
اكتب =IF(test, value_if_true, value_if_false). مثلًا تعرض =IF(B2>=50,"Pass","Fail") القيمة Pass عندما تكون B2 تساوي 50 أو أكثر، وFail في غير ذلك. النتائج النصية توضع بين علامتي اقتباس مزدوجتين، أما الأرقام ومراجع الخلايا فلا.
لماذا تعيد صيغة IF القيمة FALSE؟
لأنك حذفت الوسيط الثالث. تعيد =IF(B2>=50,"Pass") القيمة FALSE عندما يفشل الاختبار. أضف قيمة لتلك الحالة، مثل "" لعرض خلية فارغة: =IF(B2>=50,"Pass","").
هل تفرّق دالة IF بين الأحرف الكبيرة والصغيرة؟
لا. تعيد =IF(B2="North","Yes","No") القيمة Yes للقيم North وnorth وNORTH. لمطابقة حالة الأحرف بالضبط، استخدم EXACT كاختبار: =IF(EXACT(B2,"North"),"Yes","No").
كيف أجعل IF تترك الخلية فارغة؟
أعد نصًا فارغًا، أي علامتي اقتباس مزدوجتين: لا تعرض =IF(B2="","",B2*C2) شيئًا عندما تكون B2 فارغة، وتعرض حاصل الضرب في غير ذلك. ما زالت الخلية تحتوي على صيغة، لذا تعيد ISBLANK عليها القيمة FALSE.
هل يمكن أن تتحقق IF من أكثر من شرط؟
نعم. ضع AND أو OR داخل الاختبار، =IF(AND(B2>=50,C2>=50),"Pass","Fail")، أو ضع IF داخل أخرى لأكثر من نتيجتين. في Excel 2019 وما بعده، تتعامل IFS مع عدة نتائج دون تداخل.