تعيد =AND(B2>=50,C2>=50) القيمة TRUE فقط عندما يكون الشرطان كلاهما صحيحين. وتعيد =OR(B2>=50,C2>=50) القيمة TRUE عندما يكون أحدهما على الأقل صحيحًا. وداخل IF تحوّلان شرطين إلى اختبار واحد: =IF(AND(B2>=50,C2>=50),"Pass","Fail").
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Student | Exam | Project | Both 50+ | Either 50+ |
| 2 | Ana | 72 | 64 | Pass | Pass |
| 3 | Ben | 45 | 80 | Fail | Pass |
| 4 | Chloe | 58 | 51 | Pass | Pass |
| 5 | Dan | 38 | 42 | Fail | Fail |
| 6 | Eve | 91 | 47 | Fail | Pass |
ينجح Ben وEve في جزء ويرسبان في الآخر، لذا يرسبان في العمود D (AND) وينجحان في العمود E (OR). ويرسب Dan في الجزأين فيرسب في العمودين. غيّر درجة امتحان Ben في B3 إلى 55 فينجح في D أيضًا.
دالة AND
=AND(logical1, [logical2], ...)
تأخذ AND ما يصل إلى 255 شرطًا وتعيد TRUE فقط إذا كان كل واحد منها TRUE. يكفي شرط FALSE واحد لتكون النتيجة FALSE. وحدها، تعرض AND القيمة TRUE أو FALSE في الخلية؛ وداخل IF تقرر النتيجة التي تعيدها IF.
التحقق من أن رقمًا يقع بين قيمتين
لا توجد في الاكسل دالة BETWEEN. استخدم AND مع حد أدنى وحد أعلى:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Sample | Temp | Between 10 and 20 | Status |
| 2 | S1 | 14 | TRUE | OK |
| 3 | S2 | 22 | FALSE | Check |
| 4 | S3 | 10 | TRUE | OK |
| 5 | S4 | 7 | FALSE | Check |
| 6 | S5 | 20 | TRUE | OK |
تقع S3 وS5 على الحدين تمامًا وتُعدّان ضمن النطاق، لأن الاختبارات تستخدم >= و<=. لاستبعاد الحدين، استخدم > و<. والاحتفاظ بالحدين في خلايا، =AND(B2>=$F$1,B2<=$F$2)، يتيح لك تغيير النطاق دون تحرير الصيغة. اختبار مثل 10<=B2<=20 لا يعمل في الاكسل: فهو يقارن 10<=B2 (TRUE أو FALSE) بالرقم 20، والاكسل يرتب TRUE وFALSE فوق كل رقم، لذا تكون النتيجة دائمًا FALSE.
دالة OR
=OR(logical1, [logical2], ...)
تعيد OR القيمة TRUE إذا كان شرط واحد على الأقل TRUE، وFALSE فقط عندما تكون كلها FALSE. وهي الطريقة المعتادة لقبول عدة قيم نصية:
| A | B | C | |
|---|---|---|---|
| 1 | Order | Region | Zone |
| 2 | 1001 | North | Zone 1 |
| 3 | 1002 | East | Zone 2 |
| 4 | 1003 | South | Zone 1 |
| 5 | 1004 | West | Zone 2 |
| 6 | 1005 | south | Zone 1 |
مقارنات النصوص تتجاهل حالة الأحرف، لذا تقع south بالأحرف الصغيرة أيضًا في Zone 1. ولقائمة طويلة من القيم المقبولة، تقارن =OR(B2={"North","South","Central"}) الخلية B2 بكل عنصر في ثابت المصفوفة دفعة واحدة.
NOT وXOR
تعكس NOT القيمة المنطقية: =NOT(TRUE) تساوي FALSE. وتكون مقروءة عندما يكون الشرط الذي لديك عكس الشرط الذي تريده: =IF(NOT(C2="Done"),"Follow up","") هي نفسها =IF(C2<>"Done","Follow up","").
وXOR، المتوفرة منذ Excel 2013، هي "أو" الحصرية: مع شرطين تكون TRUE عندما يكون أحدهما بالضبط TRUE، وFALSE عندما يكونان كلاهما TRUE أو كلاهما FALSE. ومع شروط أكثر، تكون TRUE عندما يكون عدد فردي منها TRUE.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Task | Owner | Status | Open | One check only |
| 2 | Report | Ana | Done | FALSE | FALSE |
| 3 | Budget | Ben | Open | TRUE | FALSE |
| 4 | Slides | Ana | Open | TRUE | TRUE |
| 5 | Survey | Ben | Done | FALSE | TRUE |
| 6 | Plan | Ana | Done | FALSE | FALSE |
العمود E قيمته TRUE للمهمة Slides (Ana لكن ليست Done) وSurvey (Done لكن ليست Ana)، وFALSE حيث يتحقق الشرطان معًا أو لا يتحقق أي منهما.
AND وOR معًا
يمكن وضع الشروط داخل بعضها: AND داخل OR أو OR داخل AND. يحصل المندوب على مكافأة عندما يكون في منطقة North ويكون قد باع أكثر من 1,000 أو وقّع مع عميل جديد:
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Rep | Region | Sales | New client | Bonus |
| 2 | Ana | North | 1200 | No | Bonus |
| 3 | Ben | North | 700 | Yes | Bonus |
| 4 | Chloe | South | 1500 | Yes | |
| 5 | Dan | North | 900 | No | |
| 6 | Eve | North | 1100 | Yes | Bonus |
يحصل على المكافأة كل من Ana (المبيعات) وBen (العميل الجديد) وEve (الاثنان). تحقق Chloe جزء OR لكنها في South، وDan في North لكنه لا يحقق أيًا من شرطي OR.
تمرين: شحن مجاني
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Order | Total | Member | Shipping |
| 2 | 1001 | 35 | Yes |
دورك: في D2، اعرض "Free" عندما يكون مجموع الطلب في B2 على الأقل 50 أو يكون العميل عضوًا (C2 هي "Yes")، وإلا فاعرض "Paid".
AND وOR في صيغ المصفوفات: استخدم * و+
تختزل AND وOR كل ما يُعطى لهما إلى قيمة TRUE أو FALSE واحدة. وهذا ما تريده في صف واحد، لكن ليس عندما تعمل الصيغة على عمود كامل دفعة واحدة: تعيد =AND(B2:B6="North",C2:C6>100) قيمة واحدة للصفوف الخمسة معًا. في صيغ المصفوفات (FILTER، SUMPRODUCT، SUM على شرط) اكتب الشروط بين أقواس واضربها بدل AND، واجمعها بدل OR. تُحسب TRUE واحدًا وFALSE صفرًا، لذا يكون حاصل الضرب 1 فقط عندما يكون الشرطان صحيحين، ويكون المجموع 1 على الأقل عندما يصح أحدهما.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Rep | Region | Sales | Count | ||
| 2 | Ana | North | 1200 | North and over 1,000 | 2 | |
| 3 | Ben | South | 700 | North or over 1,000 | 4 | |
| 4 | Chloe | North | 900 | |||
| 5 | Dan | South | 1500 | |||
| 6 | Eve | North | 1100 |
تعدّ F2 صفين (Ana وEve)، وتعدّ F3 أربعة (الجميع عدا Ben). في F3 تهم >0: الصف الذي يحقق الشرطين يعطي مجموعًا قدره 2، والمقارنة تحوّل أي مجموع فوق 0 إلى TRUE واحدة. والنمط نفسه يصفّي الصفوف، =FILTER(A2:C6,(B2:B6="North")*(C2:C6>1000))؛ أما للعد العادي بمنطق AND، فتفعله COUNTIFS دون مصفوفات: =COUNTIFS(B2:B6,"North",C2:C6,">1000")، راجع صفحة COUNTIFS.
الأسئلة الشائعة
كيف أستخدم IF مع AND في الاكسل؟
ضع AND في اختبار IF: =IF(AND(B2>=50,C2>=50),"Pass","Fail"). تكون النتيجة Pass فقط عندما تكون B2 وC2 كلتاهما 50 أو أكثر.
كيف أتحقق من أن رقمًا يقع بين قيمتين في الاكسل؟
استخدم AND مع مقارنتين: تعيد =AND(B2>=10,B2<=20) القيمة TRUE لأي قيمة من 10 إلى 20، شاملة الطرفين. وداخل IF: =IF(AND(B2>=10,B2<=20),"In range","Out of range").
ما الفرق بين AND وOR في الاكسل؟
تعيد AND القيمة TRUE فقط عندما يكون كل شرط TRUE. وتعيد OR القيمة TRUE عندما يكون شرط واحد على الأقل TRUE. =AND(TRUE,FALSE) تساوي FALSE و=OR(TRUE,FALSE) تساوي TRUE.
لماذا لا تعمل AND في صيغة FILTER أو SUMPRODUCT لدي؟
لأن AND وOR تختزلان نطاقًا كاملًا إلى قيمة TRUE أو FALSE واحدة بدلًا من قيمة لكل صف. في صيغ المصفوفات اضرب الشروط بدل AND، (B2:B6="North")*(C2:C6>100)، واجمعها بدل OR.
هل يمكنني استخدام AND وOR في الصيغة نفسها؟
نعم، ضع إحداهما داخل الأخرى: تشترط =IF(AND(B2="North",OR(C2>1000,D2="Yes")),"Bonus","") المنطقة North مع أحد أمرين: مبيعات فوق 1000 أو Yes في D2.