IntelliManage - הפרויקט מתקצר - ומהר
הפרויקט מתקצר - ומהר 

בלוג > טיפים למשתמשי MS-Project

טיפ 16: השוואה ל-NA


שדה מסוג תאריך יכול להכיל לפעמים את הערך "לא זמין" (או "NA" בגירסה האנגלית).

זה קורה, למשל, כאשר שמרנו גירסת בסיס (baseline) ולאחר מכן נוספו לה משימות חדשות, שעבורן אין ערך ל-baseline start ו-baseline finish.
זה קורה גם כאשר אנחנו משתמשים בשדה מותאם אישית (customized) מסוג תאריך ובו נתנו ערך רק לחלק מן המשימות.

למשל, בדוגמא הבאה אנחנו משתמשים בשדה "תאריך יעד" (Deadline). לחלק מן המשימות הגדרנו תאריך יעד, אבל לרובן לא. במשימות שבהן לא הגדרנו תאריך יעד, ערך השדה יהיה "לא זמין" (NA):


כאשר אנחנו מגדירים מסנן (filter), אפשר פשוט לשאול אם השדה ריק:


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

(לאלו שאינם מכירים את אופן השימוש בשדות מותאמים אישית, מומלץ לעבור על טיפ מספר 8 לפני שממשיכים בקריאה)

נניח שאנחנו רוצים להגדיר שדה מותאם אישית, שיציין את התאריך של 3 ימים לפני תאריך היעד (מעין מרווח בטחון).

נשתמש בפונקציה ProjDateSub( date, duration, calendar ) , המחשבת את התאריך שהוא date פחות duration לפי ה-calendar שציינו (כלומר נספרים רק ימי העבודה לפי אותו calendar).

במקום date נציב את השדה [תאריך יעד] ([Deadline]).
במקום duration נכתוב "3 days".
אם לא נציין calendar, ה-Project ישתמש ב-calendar הבסיסי של הפרויקט.

בסה"כ נקבל את הנוסחה:    , "3 days" ) [תאריך יעד] ProjeDateSub(
נציב אותה בשדה מסוג תאריך ונוסיף לגנט עמודה מתאימה.

התוצאה המתקבלת:


עבור משימה 3 קיבלנו את התאריך 8/11 ב-8:00 בבוקר, שהוא אכן 3 ימי עבודה לפני 12/11 בסוף היום.
עבור משימה 6 קיבלנו את התאריך 14/11 ב-8:00 בבוקר, שהוא אכן 3 ימי עבודה לפני 16/11 בסוף היום.

עבור המשימות שלהן לא הוגדר תאריך יעד קיבלנו "#שגיאה" כתוצאה. לא נעים...

אז מה עושים?

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

כל ערך בשדה מסוג תאריך מיתרגם בסופו של דבר למספר, שלפיו מבצע Project את החישובים שלו.
מסתבר שהערך של "לא זמין" הוא המספר 4,294,967,295.
כדי לדעת אם השדה מכיל את הערך המייצג את "לא זמין", נשאל אם הוא שווה ל- 4,294,967,295.

כדי לעשות זאת נשתמש בפונקציה CDbl([date]), שהופכת את הערך שהיא מקבלת (למשל מסוג תאריך) לערך מספרי באורך כפול (double).

כדי לבדוק אם ערך השדה "תאריך יעד" (deadline) שונה מ"לא זמין" (NA) נשאל:

) = 4294967295, truepart, falsepart ) [תאריך יעד] IIf( CDbl(

אם התשובה תהיה חיובית, נחזיר את תאריך הסיום של הפרויקט;
אחרת - נחזיר את התאריך שחישבנו קודם.

הנוסחה תהיה:

) = 4294967295, [תאריך יעד] IIf( CDbl(
     , [סיום פרוייקט]     
( , "3 days") [תאריך יעד] ProjeDateSub     

(מומלץ לא להקליד את הטקסט כמו שהוא, אלא לבנות את הנוסחה בעזרת המקשים "שדה" ו"פונקציה" שבחלון הנוסחה.
את השדה [סיום פרוייקט] תמצאו ע"י לחיתה על הכפתור "שדה" ובחירת "פרוייקט" ואחר כך "תאריך")


והתוצאה:




נכתב ע"י רונית סנה
IntelliManage


Copyright © 2000-2024 IntelliManage, All rights reserved.