שדה מסוג נוסחה

אחד מסוגי השדות שניתן ליצור במערכת הוא שדה מסוג נוסחה המבצע חישובים מתמטיים מורכבים על ערכים במערכת.

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

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

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

 

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

 

הכנסת נוסחה:

הכנסת פונקציות ושדות:

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

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

נוסחה dateaddday

 

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

לבסוף נזין את אינטרוול הזמן בימים, אשר בדוגמא הנוכחית עומד על כשלושה ימים.

שדה נוסחה

 

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

 

שימו לב: בבניית הנוסחה תוכלו להשתמש באופרטורים מהרשימה שנמאת בתחתית כגון: חילוק-/, כפל-*, שווה ל-= וכדומה.

 

הכנסת ערכי בחירה:

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

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

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

עם נמשיך בדוגמא המוצגת, בשלב הראשון נוסיף את הפונקציה AND(logical1, logical2...) לבדיקה האם מדובר גם בלקוח פעיל וגם בלקוח המתגורר בתל אביב. להרחבה בנושא פונקציית AND עברו למאמר הבא.

לאחר מכן נוסיף את ערך הבחירה של "לקוח פעיל" מתוך שדה סטטוס לפרמטר א' בתוך הנוסחה. תוכלו להבחין שהערך שנוסף לנוסחה הוא שם המערכת של שדה סטטוס (statuscode) כאשר הוא שווה למספר של ערך הבחירה "לקוח פעיל" (המספר 1). להרחבה בנושא מספר הערך של כל אפשרות בחירה במערכת עברו למאמר המצורף כאן.

הכנסת ערכי תיבת בחירה לנוסחה

 

בדיוק באותו האופן ניתן להוסיף גם את ערך הבחירה של "תל אביב" מתוך שדה עיר לפרמטר ב' בנוסחה. 

 

לבסוף נקבל את הנוסחה המלאה שתחזיר לנו "0" במידה והלקוח לא עונה על התנאים ולא זכאי להטבה או "1" במידה והוא זכאי.

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

 

סוג שדה לתוצאה:

לאחר בניית הנוסחה יש לקבוע את סוג השדה לתוצאת הנוסחה, סוג השדה יכול להיות כל אחד מסוגי השדות במערכת מלבד שדה סיכומי.

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

סוג שדה לתוצאה

 

בדוגמא השנייה, הוצגה בדיקה לזכאות הטבה כאשר תוצאותיה יכולות להיות הספרה "0" או הספרה "1" ולכן נבחר בשדה מסוג מספר לתוצאה.

 

דיוק בספרות:

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

דיוק בספרות בשדה נוסחה

 

בסיום הבנייה ושמירת השינויים לחצו על כפתור שמור.

 

בדיקת הנוסחה:

על ידי לחיצה על שמור מתבצעת בדיקה לנוסחה, במידה והנוסחה תקינה הנוסחה תישמר ותוכלו לגשת ולראות את התוצאה.

במידה והנוסחה לא תקינה מסיבות כאלה ואחרות, לאחר השמירה הנוסחה תהפוך לאדומה ולא יהיה ניתן להשלים את השמירה. במידה ומתקבלת לכם שגיאה בדקו את הנוסחה על מנת לאתר את השגיאה שנעשתה בתוכה.

שגיאה בנוסחה

 

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

 

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

expression הוא הביטוי הבעייתי שעשוי להכיל את הערך 0. לדוגמא, שדה בשם "סכום" ששווה ל-0. if_result הוא ביטוי ברירת המחדל שלנו למקרים בהם המחלק יהיה שווה ל-0, לרוב נזין את הספרה 0. else_result הוא הנוסחה עצמה. כלומר, אם הביטוי שונה ממה ששמנו ב- expression, נציג את תוצאת הנוסחה ב- else_result.

 

דוגמא לפונקצית IF עם פעולת חילוק והגדרת ערך ברירת מחדל במקרים בהם המחלק שווה ל-0:

חילוק באפס

 

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

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

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

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

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

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

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