הפונקציה IIf

חשוב: מאמר זה תורגם בתרגום מכונה, ראה כתב ויתור. תוכל למצוא את הגרסה באנגלית של המאמר כאן לעיונך.

הפונקציה מחזירה אחד משני חלקים, בהתאם להערכה של ביטוי.

באפשרותך להשתמש ב- IIf בכל מקום שבו ניתן להשתמש בביטויים. הפונקציה IIf משמשת כדי לקבוע אם ביטוי מסוים הוא True או False. אם הביטוי הוא true‏, IIf מחזירה ערך אחד; אם הוא false‏, IIf מחזירה ערך אחר. אתה מציין את הערכים שהפונקציה IIf מחזירה.

לקבלת דוגמאות

תחביר

IIf ( expr , truepart , falsepart )

תחביר הפונקציה IIf כולל את הארגומנטים הבאים:

ארגומנט

תיאור

expr

נדרש. הביטוי שברצונך להעריך.

truepart

נדרש. הערך או הביטוי המוחזרים אם expr הוא True.

falsepart

נדרש. הערך או הביטוי המוחזרים אם expr הוא False.


הערות

IIf תמיד מבצעת הערכה של ה- truepart ושל ה- falsepart, למרות שהפונקציה מחזירה רק אחד מהם. מסיבה זו, עליך להיזהר מפני תוצאות לוואי בלתי רצויות. לדוגמה, אם התוצאה של הערכת ה- falsepart היא שגיאה של חלוקה באפס, השגיאה מתרחשת גם אם expr הוא True.

דוגמאות

שימוש ב- IIf בטופס או בדוח    נניח שיש לך טבלת לקוחות המכילה שדה בשם CountryRegion. בטופס, ברצונך לציין אם איטלקית היא השפה הראשונה של איש הקשר. באפשרותך להוסיף פקד ולהשתמש ב- IIf במאפיין מקור פקד שלו, כך:

‎=IIf([CountryRegion]="Italy", "Italian", "Some other language")‎

בעת פתיחת טופס בתצוגת 'טופס', הפקד מציג "Italian" בכל פעם שהערך עבור CountryRegion הוא Italy ו- "Some other language" כאשר CountryRegion הוא כל ערך אחר.

שימוש ב- IIf בביטויים מורכבים    באפשרותך להשתמש בכל ביטוי כחלק כלשהו ממשפט IIf . אתה יכול גם "לקנן" ביטויי IIf , המאפשרים לך להעריך סדרה של ביטויים תלויים. כדי להמשיך עם הדוגמה הקודמת, כדאי לך לבדוק כמה ערכי CountryRegion אחר ולאחר מכן הצג בשפה המתאימה לפי סוגי ערך קיים:

‎‎=IIf([CountryRegion]="Italy", "Italian", IIf([CountryRegion]="France", "French", IIf([CountryRegion]="Germany", "German", "Some other language")))‎

הטקסט "Some other language" הוא הארגומנט falsepart של פונקציית IIf הפנימית ביותר. מאחר שכל פונקצית IIf מקוננת היא ארגומנט ה- falsepart של פונקציית IIf המכילה אותה, הטקסט "Some other language" מוחזר רק אם כל הארגומנטים מסוג expr של כל פונקציות ה- IIf מוערכים כ- False.

דוגמה נוספת: נניח שאתה עובד בספריה. מסד הנתונים של הספריה כולל טבלה בשם 'השאלות' המכילה שדה בשם Due Date, אשר מכיל את התאריך שבו יש להחזיר ספר מסוים. באפשרותך ליצור טופס המציין את המצב של פריט שהושאל בפקד באמצעות הפונקציה IIf במאפיין מקור פקד של אותו פקד, באופן הבא:

‎=IIf([Due Date]<Date(),"OVERDUE",IIf([Due Date]=Date(),"Due today","Not Yet Due"))‎

בעת פתיחת הטופס בתצוגת 'טופס', הפקד מציג "OVERDUE" אם הערך של Due Date קטן יותר מהתאריך הנוכחי, "Due today" אם הוא שווה לתאריך הנוכחי ו- "Not Yet Due" בכל מקרה אחר.

הערה: כדי להשתמש באופרטורים לוגיים כגון "And" או "או" בארגומנט expr של הפונקציה IIf , עליך לתחום את הביטוי הלוגי ב הפונקציה Eval . עיין בטבלת בדוגמה הבאה.

שימוש ב- IIf בשאילתה   

הפונקציה IIf משמש לעיתים קרובות כדי ליצור שדות מחושבים בשאילתות. התחביר זהה, בהבדל כי בשאילתה, עליך תקדים הביטוי כינוי שדה ונקודתיים () במקום סימן שוויון (=). כדי להשתמש בדוגמה הקודמת, עליך להקליד הבאים בשורה שדה ברשת עיצוב השאילתה:

‎Language: IIf([CountryRegion]="Italy", "Italian", "Some other language")‎

במקרה זה, "‎Language:‎" הוא כינוי השדה.

לקבלת מידע נוסף אודות יצירת שאילתות ושדות מחושבים, עיין במאמר יצירת שאילתת בחירה פשוטה.

שימוש ב- IIf בקוד VBA   

הערה: הדוגמאות הבאות מדגימות את השימוש של פונקציה זו במודול Visual Basic for Applications‏ (VBA). לקבלת מידע נוסף אודות עבודה עם VBA, בחר הפניית מפתח ברשימה הנפתחת שליד חיפוש והזן מונח אחד או יותר בתיבת החיפוש.

דוגמה זו משתמשת בפונקציה IIf כדי להעריך את הפרמטר TestMe של ההליך CheckIt ומחזירה את המילה "Large" אם הכמות גדולה מ- 1000; אחרת, היא מחזירה את המילה "Small".

Function CheckIt (TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small")
End Function

דוגמאות נוספות

ביטוי

תוצאות

‎=IIf([AirportCode]="ORD","Chicago",IIf([AirportCode]="ATL","Atlanta",IIf([AirportCode]="SEA","Seattle","Other")))‎

אם [airportcode] הוא "ORD", החזר "Chicago". אחרת, אם [AirportCode] הוא "ATL", החזר "Atlanta". אחרת, אם [AirportCode] הוא "SEA", החזר "Seattle". אחרת, החזר "Other".

‎=IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped"))‎

אם [shipdate] קודם לתאריך של היום, החזר "Shipped". אחרת, אם [shipdate] שווה לתאריך של היום, החזר "Shipping today". אחרת, החזר "Unshipped".

‎=IIf([PurchaseDate]<#1/1/2008#,"Old","New")‎

אם [purchasedate] הוא לפני 1/1/2008, החזר "Old". אחרת, החזר "New".

‎=IIf(Eval([Volts] Between 12 And 15 And [Amps] Between 0.25 And 0.3),"OK","Out of calibration")‎

אם [Volts] הוא בין 12 ל- 15 ו- [Amps] הוא בין 0.25 ל- 0.3, החזר "OK". אחרת, החזר "Out of calibration".

‎=IIf(Eval([CountryRegion] In ("Canada","USA","Mexico")),"North America","Other")‎

אם [CountryRegion] הוא "Canada",‏ "USA" או "Mexico", החזר "North America". אחרת, החזר "Other".

‎=IIf([Average]>=90,"A",IIf([Average]>=80,"B",IIf([Average]>=70,"C",IIf([Average]>=60,"D","F"))))‎

אם [Average] הוא 90 או גדול יותר, החזר "A". אחרת, אם [Average] הוא 80 או גדול יותר, החזר ‎"B"‎‎. אחרת, אם [Average] הוא 70 או גדול יותר, החזר ‎"C"‎‎. אחרת, אם [Average] הוא 60 או גדול יותר, החזר ‎"D"‎‎. אחרת, החזר "F".

הערה: אם אתה משתמש בפונקציה IIf כדי ליצור שדה מחושב בשאילתה, החלף את סימן השוויון (=) כינוי שדה ונקודתיים (). לדוגמה, מצב: IIf ([ShipDate] < תאריך (), "Shipped", IIf ([ShipDate] = Date (), "משלוח היום", "Unshipped"))

הערה: כתב ויתור בנוגע לתרגום מכונה: מאמר זה תורגם על-ידי מערכת מחשב, ללא התערבות אדם. Microsoft מציעה את תרגומי המכונה כדי לסייע למשתמשים שאינם דוברי אנגלית ליהנות מתוכן בנושא מוצרים, שירותים וטכנולוגיות של Microsoft. מכיוון שהמאמר תורגם על-ידי מכונה, הוא עלול להכיל שגיאות באוצר המילים, בתחביר או בדקדוק.

הרחב את הכישורים שלך
סייר בהדרכה
קבל תכונות חדשות לפני כולם
הצטרף למשתתפי Office Insider

האם מידע זה היה שימושי?

תודה על המשוב!

תודה על המשוב! נראה שכדאי לקשר אותך לאחד מנציגי התמיכה של Office.

×