הפונקציה IF מאפשרת לך לבצע השוואה לוגית בין ערך לבין מה שאתה מצפה על-ידי בדיקת תנאי והחזרת תוצאה אם הערך הוא True או False.
-
=IF([אם]משהו הוא True, בצע פעולה כלשהי. אם לא, בצע פעולה אחרת)
כך שמשפט IF יכול לקבל שתי תוצאות. התוצאה הראשונה מתקבלת אם ההשוואה שלך היא True, והתוצאה השניה מתקבלת אם ההשוואה שלך היא False.
משפטי IF הנם עוצמתיים במיוחד ומהווים את הבסיס לדגמים רבים של גליונות אלקטרוניים, אך הם גם הסיבה העיקרית לבעיות רבות בגליונות אלקטרוניים. באופן אידיאלי, משפט IF אמור לחול על תנאים מינימליים, כגון זכר/נקבה, כן/לא/אולי - ואלה רק חלק מהם, אך לפעמים ייתכן שתצטרך להעריך תרחישים מורכבים יותר הדורשים קינון* של יותר מ- 3 פונקציות IF יחד.
* "קינון" מתייחס לתרגול של צירוף פונקציות מרובות יחד בנוסחה אחת.
השתמש בפונקציה IF, אחת מהפונקציות הלוגיות, כדי להחזיר ערך אחד אם תנאי הוא True וערך אחר אם הוא False.
תחביר
IF(logical_test, value_if_true, [value_if_false])
לדוגמה:
-
=IF(A2>B2,"Over Budget","OK")
-
=IF(A2=B2,B4-A4,"")
שם ארגומנט |
תיאור |
logical_test (נדרש) |
התנאי שברצונך לבדוק. |
value_if_true (נדרש) |
הערך שברצונך שיוחזר אם התוצאה של logical_test היא TRUE. |
value_if_false (אופציונלי) |
הערך שברצונך שיוחזר אם התוצאה של logical_test היא FALSE. |
הערות
למרות ש- Excel יאפשר לך לקנן עד 64 פונקציות IF שונות, לא מומלץ לעשות זאת כלל. מדוע?
-
כדי ליצור משפטי IF מרובים נדרשת מחשבה רבה בבניה נכונה של המשפטים ובבדיקה שהלוגיקה שלהם מבצעת חישוב נכון של כל תנאי, עד לסוף הנוסחה. אם לא תקן את הנוסחה שלך ב- 100% באופן מדויק, היא עשויה לפעול ב- 75% מהשעה, אך להחזיר תוצאות בלתי צפויות ב- 25% מהשעה. למרבה הצער, קיים סיכוי קלוש שתבחין ב- 25% של התוצאות הבלתי צפויות.
-
קשה מאוד לתחזק משפטי IF מרובים, בפרט כשאתה חוזר לנוסחה לאחר זמן מה ומנסה להבין מה אתה, או גרוע יותר - משתמש אחר, ניסיתם לעשות.
אם אתה מוצא את עצמך עם משפט IF שנראה כאילו הוא ממשיך לגדול ללא סוף, הגיע הזמן לרדת מהעכבר ונסה לחשוב מחדש על האסטרטגיה שלך.
בוא נראה כיצד ליצור כראוי משפט IF מקונן מורכב באמצעות קבצי IFs מרובים, ומתי לזהות שזה הזמן להשתמש בכלי אחר בארסנל Excel שלך.
דוגמאות
להלן דוגמה של משפט IF בעל קינון רגיל באופן יחסי, שנועד להמיר ציוני מבחנים של תלמידים לציון מקביל המיוצג על-ידי אות.
-
=IF(D2>89,"A",IF(D2>79,"B",IF(D2>69,"C",IF(D2>59,"D","F"))))
משפט IF מקונן מורכב זה פועל לפי לוגיקה פשוטה:
-
אם הציון במבחן (בתא D2) גדול מ- 89, התלמיד מקבל ציון A
-
אם הציון במבחן גדול מ- 79, התלמיד מקבל ציון B
-
אם הציון במבחן גדול מ- 69, התלמיד מקבל ציון C
-
אם הציון במבחן גדול מ- 59, התלמיד מקבל ציון D
-
אחרת, התלמיד מקבל ציון F
דוגמה מסוימת זו בטוחה יחסית מכיוון שאין זה משנה את המתאם בין הציונים לציונים באותיות, ולכן היא לא תדרוש תחזוקה רבה. אבל הנה מחשבה – מה אם עליך לחלק את הציונים בין A+, A ל- A- (וכן הלאה)? כעת עליך לכתוב מחדש את משפט ה- IF הכולל ארבעה תנאים למשפט בן 12 תנאים! כך תיראו הנוסחה שלך כעת:
-
=IF(B2>97,"A+",IF(B2>93,"A",IF(B2>89,"A-",IF(B2>87,"B+",IF(B2>83,"B",IF(B2>79,"B-", IF(B2>77,"C+",IF(B2>73,"C",IF(B2>69,"C-",IF(B2>57,"D+",IF(B2>53,"D",IF(B2>49,"D-","F"))))))))))))
היא עדיין מדויקת מבחינה פונקציונלית והיא תפעל כצפוי, אך כתיבתה נמשכת זמן רב ובדיקה ארוכה יותר כדי לוודא שהיא מבצעת את הפריטים הרצויים. בעיה בולטת נוספת היא שהיה עליך להזין את הציונים ואת הציונים המקבילים של אותיות ביד. מה הסיכויים שלא תהיה שגיאת הקלדה בטעות? כעת נניח שאתה מנסה לעשות זאת 64 פעמים עם תנאים מורכבים יותר! בטח, זה אפשרי, אבל האם אתה באמת רוצה להיתחייב למאמץ מסוג זה ולשגיאות סבירות שקשה מאוד לזהות?
עצה: כל הפונקציות ב- Excel דורשות תו סוגריים פותח ותו סוגריים סוגר (). Excel ינסה לעזור לך להבין מה הולך לאן על-ידי צביעת חלקים שונים של הנוסחה בעת עריכתה. לדוגמה, אם תערוך את הנוסחה לעיל, בעת הזזת הסמן מעל כל אחד מהסוגים הסוגריים המסתיימים ")", תו הסוגריים הפוחתים המתאים שלו יהפוך את אותו צבע. הדבר יכול להיות שימושי במיוחד בנוסחאות מקוננות מורכבות כאשר אתה מנסה לברר אם יש לך מספיק סוגריים תואמים.
דוגמאות נוספות
להלן דוגמה נפוצה מאוד לחישוב עמלת מכירות המבוססת על רמות ההכנסה שהושגו.
-
=IF(C9>15000,20%,IF(C9>12500,17.5%,IF(C9>10000,15%,IF(C9>7500,12.5%,IF(C9>5000,10%,0)))))
נוסחה זו מציינת ש- IF([אם]C9 גדול מ- 15,000 החזר 20%, IF([אם]C9 גדול מ- 12,500 החזר 17.5%, וכן הלאה...
למרות שהנוסחה דומה מאוד לדוגמה של הציונים הקודמת, נוסחה זו היא דוגמה מצוינת לק קשה לשמירה על משפטי IF גדולים – מה עליך לעשות אם הארגון שלך החליט להוסיף רמות פיצוי חדשות ואולי אף לשנות את ערכי הדולר או האחוזים הקיימים? היו לך הרבה עבודה על הידיים!
עצה: באפשרותך להוסיף מעברי שורה בשורת הנוסחאות כדי להקל על הקריאה של נוסחאות ארוכות. פשוט הקש ALT+ENTER לפני הטקסט שברצונך שיגלוש לשורה חדשה.
להלן דוגמה לתרחיש העמלה עם לוגיקה לא תקינה:
האם אתה יכול לראות מה לא בסדר? השווה את הסדר של השוואות ההכנסות לדוגמה הקודמת. מה הכיוון כאן? זה נכון, זה הולך מלמטה למעלה ($5,000 עד $15,000), לא להיפך. אולם מדוע זה בעייתי? זה עניין גדול מכיוון שהנוסחה לא יכולה לעבור את ההערכה הראשונה עבור ערך כלשהו מעל $5,000. נניח שיש לך הכנסה של $12,500 – משפט IF יחזיר 10% מכיוון שהוא גדול מ- $5,000 והוא יעצור שם. מצב זה עשוי להיות בעייתי מאוד מכיוון שבעיות רבות של שגיאות מסוגים אלה לא ינוהו עד שיש להם השפעה שלילית. אם כך, בידיעה שמשפטי IF מקוננים מורכבים טומנים בחובם כמה מכשולים חמורים, מה ניתן לעשות? ברוב המקרים, ניתן להשתמש בפונקציה VLOOKUP במקום לבנות נוסחה מורכבת עם הפונקציה IF. עם הפונקציה VLOOKUP, תחילה עליך ליצור טבלת הפניה:
-
=VLOOKUP(C2,C5:D17,2,TRUE)
נוסחה זו מציינת שיש לחפש את הערך בתא C2 בטווח C5:C17. אם הערך נמצא, החזר את הערך התואם מאותה שורה בעמודה D.
-
=VLOOKUP(B9,B2:C6,2,TRUE)
באופן דומה, נוסחה זו מחפשת את הערך בתא B9 בטווח B2:B22. אם הערך נמצא, החזר את הערך התואם מאותה שורה בעמודה C.
הערה: שתי פונקציות VLOOKUP אלה משתמשות בארגומנט TRUE בסוף הנוסחאות, כלומר שאנו רוצים שהן יחפשו התאמה בקירוב. במילים אחרות, היא תתאים לערכים המדויקים בטבלת בדיקת המידע, וכן לערכים המופיעים ביניהם. במקרה זה יש למיין את טבלאות בדיקת המידע בסדר עולה, מהקטן ביותר לגדול ביותר.
הפונקציה VLOOKUP מכוסה בפירוט רב יותר כאן, אך היא הרבה יותר פשוטה ממש משפט IF מקונן מורכב בן 12 רמות! היא גם טומנת בחובה יתרונות נוספים, בולטים פחות:
-
טבלאות הפניה של VLOOKUP גלויות וקל לראות אותן.
-
תוכל לעדכן בקלות את ערכי הטבלה, ולעולם לא תצטרך לגעת בנוסחה אם התנאים שלך משתנים.
-
אם אינך מעוניין שאנשים יראו את טבלת העיון שלך או יפריעו לה, פשוט מקם אותה בגליון עבודה אחר.
הידעת?
כעת קיימת פונקציה IFS שיכולה להחליף משפטי IF מרובים, מקוננים בפונקציה יחידה. לכן, במקום הדוגמה הראשונית שלנו של ציוני המבחנים, אשר כוללת 4 פונקציות IF מקוננות:
-
=IF(D2>89,"A",IF(D2>79,"B",IF(D2>69,"C",IF(D2>59,"D","F"))))
ניתן להפוך אותה לפשוטה הרבה יותר עם פונקציית IFS יחידה:
-
=IFS(D2>89,"A",D2>79,"B",D2>69,"C",D2>59,"D",TRUE,"F")
הפונקציה IFS נהדרת מכיוון שאין צורך לדאוג לכל משפטי ה- IF והסותיים הללו.
הערה: תכונה זו זמינה רק אם יש לך מינוי של Microsoft 365. אם אתה Microsoft 365מנוי, ודא שיש לך את הגירסה העדכנית ביותר של Office.קנה או נסה את Microsoft 365
זקוק לעזרה נוספת?
תוכל תמיד לשאול מומחה ב- Excel Tech Community או לקבל תמיכה בקהילת Answers.
נושאים קשורים
IFS (Microsoft 365, Excel 2016 ואילך) הפונקציה COUNTIF תספור ערכים בהתבסס על קריטריונים יחידיםהפונקציה COUNTIFS תספור ערכים בהתבסס על קריטריונים מרובים הפונקציהSUMIF תסכום ערכים בהתבסס על קריטריונים יחידיםSUMIFS הפונקציהתסכום ערכים בהתבסס על קריטריונים מרובים הפונקציה ANDהפונקציה ORהפונקציה VLOOKUP מבט כולל על נוסחאות ב-Excel כיצד להימנע מנוסחאות שגויות זהה שגיאות בנוסחאות פונקציות לוגיותפונקציות של Excel (בסדר אלפביתי) פונקציות של Excel (לפי קטגוריה)