הפונקציות If ו- Switch
חל על: אפליקציות קנבס Dataverse עמודות נוסחאות זרימות שולחן העבודה אפליקציות מונחות מודל Power Pages Power Platform CLI
קובעת אם תנאי כלשהו בערכה הוא אמת (If) או שתוצאת נוסחה מתאימה לערך כלשהו בערכה (Switch) ולאחר מכן מחזירה תוצאה או מבצעת פעולה.
תיאור
הפונקציה If בודקת תנאי אחד או יותר עד שנמצאת תוצאת true. אם נמצאת תוצאה כזאת, מוחזר ערך תואם. אם לא נמצאת תוצאה כזאת, מוחזר ערך ברירת מחדל. בשני המקרים, הערך שמוחזר עשוי להיות מחרוזת להצגה, נוסחה להערכה או צורה אחרת של תוצאה.
הפונקציה Switch מעריכה נוסחה וקובעת אם התוצאה מתאימה לערך כלשהו ברצף שאתה מציין. אם נמצאת התאמה כזאת, מוחזר ערך תואם. אם לא נמצאת התאמה כזאת, מוחזר ערך ברירת מחדל. בשני המקרים, הערך שמוחזר עשוי להיות מחרוזת להצגה, נוסחה להערכה או צורה אחרת של תוצאה.
אם ו Switch דומים מאוד, אך עליך להשתמש בפונקציה הטובה ביותר עבור המצב שלך:
- השתמש ב- If כדי להעריך תנאי יחיד. התחביר הנפוץ ביותר עבור פונקציה זו הוא If( Condition, ThenResult, DefaultResult ), אשר מספק את תבנית “אם … אז ... אז …" הנפוצה שרואים בכלי תיכנות אחרים.
- השתמש ב- If כדי להעריך תנאים לא קשורים מרובים. ב- Power Apps (בניגוד ל- Microsoft Excel), באפשרותך לציין תנאים מרובים מבלי שעליך לקנן נוסחאות If.
- השתמש ב- Switch כדי להעריך תנאי יחיד אל מול התאמות אפשריות מרובות. באפשרותך גם להשתמש ב- If במקרה זה, אבל יהיה עליך לחזור על הנוסחה עבור כל התאמה אפשרית.
באפשרותך להשתמש בשתי הפונקציות בנוסחאות של אופן פעולה כדי להסתעף בין שתי פעולות או יותר. רק הסתעפות אחת תגרום פעולה. התנאים וההתאמות מוערכים לפי הסדר, והם מפסיקים אם תנאי הוא true או אם נמצאת התאמה.
ריק מוחזר אם אין תנאים נכונים, לא נמצאו התאמות ואינך מציין תוצאת ברירת מחדל.
תחביר
If( מצב, ThenResult [, תוצאה ברירת מחדל ] )
If( מצב1, ThenResult1 [, מצב2 , ThenResult2, ... [, תוצאה ברירת מחדל ] ] )
- תנאים - חובה. נוסחאות לבדיקה עבור תנאי שהוא true. נוסחאות כאלה מכילות בדרך כלל אופרטורים של השוואה (כגון <, >, ו- =) ופונקציות בדיקה כגון IsBlank ו- IsEmpty.
- ThenResults - חובה. הערך המתאים להחזרה עבור תנאי שמוערך כ- true.
- DefaultResult - אופציונלי. הערך שיש להחזיר אם שום תנאי אינו מוערך כ- true. אם לא תציין ארגומנט זה, יוחזר ריק.
Switch( נוסחה, התאמה1, תוצאה1 [, Match2, Result2, ... [, תוצאה ברירת מחדל ] ] )
- נוסחה - חובה. נוסחה שיש להעריך עבור התאמות. נוסחה זו מוערכת פעם אחת בלבד.
- התאמות - חובה. ערכים להשוואה עם התוצאה מנוסחה. אם נמצאת התאמה מדויקת, מוחזרת תוצאה המתאימה.
- תוצאות - חובה. הערך המתאים להחזרה כאשר נמצאת התאמה מדויקת.
- DefaultResult - אופציונלי. אם לא נמצאת התאמה מדויקת, ערך זה מוחזר. אם לא תציין ארגומנט זה, יוחזר ריק.
דוגמאות
ערכים בנוסחאות
בדוגמאות הבאות, פקד Slider (נקרא Slider1) הוא בעל ערך של 25.
נוסחה | תיאור | תוצאה |
---|---|---|
If( Slider1.Value = 25, "Result1") | התנאי הוא true, והתוצאה התואמת מוחזרת. | "Result1" |
If( Slider1.Value = 25, "Result1", "Result2" ) | התנאי הוא true, והתוצאה התואמת מוחזרת. | "Result1" |
If( Slider1.Value > 1000, "Result1") | התנאי הוא false, ולא סופק DefaultResult. | רֵיק |
If( Slider1.Value > 1000, "Result1", "Result2") | התנאי הוא false, סופק DefaultResult והוא מוחזר. | "Result2" |
If( Slider1.Value = 25, "Result1", Slider1.Value > 0, "Result2" ) | התנאי הראשון הוא true, והתוצאה התואמת מוחזרת. התנאי השני גם הוא true, אבל הוא אינו מוערך משום שהוא מופיע מאוחר יותר ברשימת הארגומנטים לעומת תנאי המוערך ל- true. | "Result1" |
If( IsBlank( Slider1.Value), "Result1", IsNumeric( Slider1.Value), "Result2" ) | התנאי הראשון הוא false משום שהמחוון אינו ריק. התנאי השני הוא true משום שערך המחוון הוא מספר, והתוצאה התואמת מוחזרת. | "Result2" |
If( Slider1.Value > 1000, "Result1", Slider1.Value > 50, "Result2", "Result3") | הן התנאי הראשון והן התנאי השני הם false, סופק DefaultResult והוא מוחזר. | "Result3" |
Switch( Slider1.Value, 25, "Result1") | ערך המחוון תואם לערך הראשון שיש לבדוק והתוצאה המתאימה מוחזרת. | "Result1" |
Switch( Slider1.Value, 20, "Result1", 25, "Result2", 30, "Result3") | ערך המחוון תואם לערך השני שיש לבדוק והתוצאה המתאימה מוחזרת. | "Result2" |
Switch( Slider1.Value, 20, "Result1", 10, "Result2", 0, "Result3", "DefaultResult" ) | ערך המחוון אינו תואם לערך כלשהו שיש לבדוק. סופק DefaultResult ולכן הוא מוחזר. | "DefaultResult" |
הסתעפות בנוסחאות של אופן פעולה
בדוגמאות אלה, פקד Text input בשם שם פרטי הוא בעל הערך "דוד" המוקלד בתוכו.
נוסחה | תיאור | תוצאה |
---|---|---|
If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) ) | התנאי הוא true, ולכן הפונקציה Navigate פועלת. באפשרותך להשתמש בפונקציה IsBlank כדי לבדוק אם שדה טופס נדרש התמלא. אם הערך שם פרטי היה ריק, לנוסחה זו לא הייתה השפעה. | נָכוֹן התצוגה משתנה ל- Screen1. |
If( IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ), Back() ) | ללא האופרטור !,התנאי הוא false, ולכן הפונקציה Navigate אינה פועלת. הפונקציה Back סופקה כ- DefaultResult, ולכן היא פועלת. | נָכוֹן התצוגה חוזרת למסך שהוצג בעבר. |
Switch( FirstName.Text, "Carlos", Navigate( Screen1, ScreenTransition.None), "Kirstin", Navigate( Screen2, ScreenTransition.None), "John", Navigate( Screen3, ScreenTransition.None) ) | הערך של FirstName.Text מושווה ל"ינון", "דורית" ו"דוד", בסדר הזה. נמצאת התאמה ל"דוד", ולכן היישום מנווט אל Screen3. | נָכוֹן התצוגה משתנה ל- Screen3. |
שלב אחר שלב
הוסף פקד Text input וקרא לו Text1 אם הוא לא נקרא כך כברירת מחדל.
ב- Text1, הקלד 30.
הוסף פקד Label והגדר את מאפיין Text שלו לנוסחה זו:
If( Value(Text1.Text) < 20, "Order MANY more!", Value(Text1.Text) < 40, "Order more!", Text1.Text )הפקד של התווית מציג הזמינו עוד! מכיוון שהערך של Text1 גדול מ- 20 אך קטן מ- 40.
ב- Text1, הקלד 15.
הפקד של התווית מציג הזמינו עוד הרבה! מכיוון שהערך של Text1 קטן מ- 20.
ב- Text1, הקלד 50.
הפקד Label מציג את הערך שהקלדת משום שהוא גדול מ- 40.