=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 נחשב 1 ו-FALSE נחשב 0, ולכן מכפלה היא 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 סופר 2 שורות (Ana ו-Eve), F3 סופר 4 (כולם חוץ מ-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.