=IFS(B2>=90,"A",B2>=80,"B",B2>=70,"C",TRUE,"F") בודקת את התנאים מהראשון לאחרון ומחזירה את הערך שמשויך לראשון שהוא TRUE. היא עושה מה ש-IF מקונן עושה, בלי לשים IF אחת בתוך אחרת. IFS דורשת Excel 2019 ואילך, או Microsoft 365.
| 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: ארבעה זוגות של בדיקה ותוצאה וסוגר סוגר אחד. שנו את הציון של Chloe ב-B4 ל-69 והציון שלה יורד ל-F.
התחביר של IFS
=IFS(logical_test1, value_if_true1, [logical_test2, value_if_true2], ...)
- הארגומנטים באים בזוגות: בדיקה שנותנת TRUE או FALSE, ואחריה הערך שיוחזר כשהיא TRUE.
- אקסל בודק את הבדיקות לפי הסדר ומחזיר את הערך של הראשונה שהיא TRUE. בדיקות מאוחרות יותר לא נבדקות, ולכן עם בדיקות
>=, שימו את הסף הגבוה ביותר ראשון. - יכולים להיות עד 127 זוגות.
- אין ארגומנט "אחרת" נפרד. זוג אחרון עם
TRUEכבדיקה עושה את העבודה הזו.
בדיקה בלי הערך שלה (מספר אי־זוגי של ארגומנטים) גורמת לאקסל לדחות את הנוסחה עם ההודעה "You've entered too few arguments for this function" (הזנתם מעט מדי ארגומנטים לפונקציה זו).
TRUE כערך ברירת מחדל, ו-#N/A כששום דבר לא מתאים
אם אף בדיקה אינה TRUE, IFS מחזירה #N/A. לעמודה C למטה אין ברירת מחדל והיא נכשלת בשני הציונים הנמוכים; עמודה D מסתיימת ב-TRUE,"F" ותופסת אותם:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Student | Score | No default | TRUE default |
| 2 | Ana | 94 | A | A |
| 3 | Ben | 81 | B | B |
| 4 | Dan | 65 | #N/A | F |
| 5 | Eve | 88 | B | B |
| 6 | Gus | 52 | #N/A | F |
#N/A הערך שחיפשתם לא נמצא בטווח החיפוש.TRUE היא בדיקה שתמיד מתקיימת, ולכן מגיעים אליה רק כשכל הבדיקות שלפניה היו FALSE, והיא חייבת להיות הזוג האחרון: כל מה שאחריה לא נבדק אף פעם. ברירת המחדל יכולה להיות כל ערך: TRUE,"" לתא ריק, TRUE,"Check" כדי לסמן את השורה. אם אתם רוצים להסתיר את ה-#N/A בלי ברירת מחדל, גם =IFNA(IFS(...),"No grade") עובדת; העמוד של IFERROR מסביר את IFNA.
IFS עם טקסט ועם AND או OR
הבדיקות הן ביטויים לוגיים רגילים, ולכן הן יכולות להשוות טקסט ולהשתמש ב-AND וב-OR. כאן אפשרות המשלוח תלויה באזור ובסכום ההזמנה:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Order | Region | Total | Delivery |
| 2 | 1001 | North | $120 | Free |
| 3 | 1002 | North | $60 | Standard |
| 4 | 1003 | South | $150 | Express |
| 5 | 1004 | East | $40 | Post |
| 6 | 1005 | north | $300 | Free |
הזמנה 1001 היא North ומעל 100, ולכן היא מקבלת Free. הזמנה 1002 היא North אבל מתחת ל-100, ולכן הבדיקה הראשונה נכשלת והשנייה, B2="North", נותנת Standard. השוואות טקסט מתעלמות מגודל האותיות, ולכן גם 1005, שכתוב בה north, מקבלת Free.
כשכל בדיקה משווה את אותו תא לערך קבוע (B2="N", B2="S", B2="E"), SWITCH מפרטת כל ערך פעם אחת והיא קצרה יותר: =SWITCH(B2,"N","North","S","South","Other").
תרגול: מהירות משלוח
| A | B | C | |
|---|---|---|---|
| 1 | Order | Days | Speed |
| 2 | 1001 | 3 | |
| 3 | 1002 | 1 | |
| 4 | 1003 | 7 | |
| 5 | 1004 | 2 | |
| 6 | 1005 | 5 |
תורכם: ב-C2, החזירו "Express" כשמספר הימים ב-B2 הוא 1 או פחות, "Standard" כשהוא 3 או פחות, ו-"Slow" אחרת. השתמשו ב-IFS. הנוסחה מועתקת למטה עד C6.
IFS מול IF מקונן
שתי הנוסחאות למטה מחזירות את אותו ציון לכל מספר נקודות:
=IF(B2>=90,"A",IF(B2>=80,"B",IF(B2>=70,"C","F")))
=IFS(B2>=90,"A",B2>=80,"B",B2>=70,"C",TRUE,"F")
| IFS | IF מקונן | |
|---|---|---|
| סוגריים | זוג אחד | זוג לכל IF |
| ערך ברירת מחדל | זוג TRUE אחרון | ה-value_if_false של ה-IF האחרונה |
| אף בדיקה לא מתאימה | #N/A אלא אם מוסיפים TRUE | ה-value_if_false של ה-IF האחרונה (FALSE אם השמטתם אותו) |
| מגבלה | 127 זוגות | 64 פונקציות IF מקוננות |
| Excel 2016 ומטה | #NAME? | עובד |
בחרו ב-IFS כשלכל מי שפותח את הקובץ יש Excel 2019 ואילך, וב-IF מקונן כשהקובץ הולך למישהו עם אקסל ישן יותר. עם שתי תוצאות בלבד, IF רגילה פשוטה יותר משתיהן. להרבה רמות מספריות (מדרגות מס, משקלי משלוח), אף אחת מהן אינה הכלי הטוב ביותר: טבלת חיפוש עם התאמה משוערת שומרת את הספים בתאים, כמו שמוצג בעמוד של IF מקונן.
שאלות נפוצות
איך מוסיפים ערך 'אחרת' ל-IFS?
הפכו את הבדיקה האחרונה ל-TRUE, שתמיד מתקיימת: =IFS(B2>=90,"A",B2>=80,"B",TRUE,"F"). כל ערך שלא התאים לאף אחת מהבדיקות הקודמות מקבל F.
למה IFS מחזירה #N/A?
אף אחת מהבדיקות לא הייתה TRUE ואין זוג TRUE בסוף. =IFS(B2>=90,"A",B2>=80,"B") מחזירה #N/A לציון 75. הוסיפו TRUE,"F" בסוף, או עטפו את הנוסחה ב-IFNA.
באילו גרסאות של אקסל יש IFS?
Excel 2019, Excel 2021, Excel 2024 ו-Microsoft 365, וגם Excel לאינטרנט. ב-Excel 2016 ומטה נוסחה עם IFS מציגה #NAME?, אז השתמשו שם ב-IF מקונן. גם ב-Google Sheets יש IFS.
האם IFS עדיפה על IF מקונן?
קל יותר לקרוא אותה ויש לה רק סוגר סוגר אחד, אבל היא עובדת באותה דרך: הבדיקה הראשונה שהיא TRUE מנצחת. IF מקונן עדיין הבחירה כשהקובץ צריך להיפתח ב-Excel 2016 או מוקדם יותר.