پروفایل برنامه‌ریزی و کنترل پروژه
نادر خرمی راد

تعداد ارقام اعشار در پراجکت

چطوری می‌شه درصد پیشرفت رو با دو رقم اعشار نشون داد؟

این سوال و سوال‌های شبیه اون زیاد مطرح می‌شه. جواب همه اون‌ها مشابهه و چیزیه که می‌خوام توضیح بدم. البته من توضیحات رو درباره Complete % می‌دم، ولی مطمئنم که خودتون می‌تونین اون رو به بقیه هم ربط بدین؛ به خصوص به Work Complete %.

اعشاری که لازم دارین وجود داره، ولی Complete % نشونش نمی‌ده. این فیلد رو طوری طراحی کردن که مقادیر رو گرد شده نشون بده تا خوانایی بیشتر باشه. فکر درستی هم هست، ولی خوب من هم قبول دارم که بعضی‌ها نیازهایی دارن که باعث می‌شه نیاز به اعشار هم داشته باشن.

این برنامه مثالمون:

DP

الان اگه به t1 پیشرفت 15٪ بدیم، s1 باید چه مقداری داشته باشه؟

می‌دونین که Complete % پیشرفت فعالیت‌ها رو با وزن Duration ترکیب می‌کنه و به وزن خلاصه فعالیت‌ها می‌رسه. تو این مثال t1 نصف وزن رو داره و در نتیجه پیشرفت 15٪ اون باعث 7.5٪ پیشرفت خلاصه فعالیت مادرش می‌شه:

DP

ولی Complete % اون رو گرد کرده و شده 8٪. حالا می‌خوایم همین مقدار رو با دو رقم اعشار به دست بیاریم. راه اینه که یه فیلد اختصاصی بسازیم که مقدار پیشرفت زمانی رو با همون روشی که پراجکت حساب می‌کنه حساب کنه و اون رو با قالب‌بندی ما نشون بده.

پیشرفت زمانی حاصل تقسیم Actual Duration بر Duration هست. پس فیلدی، مثلا از نوع Number برای این کار می‌سازیم:

DP

مقدار رو در 100 هم ضرب کردم که جالب‌تر دیده بشه.

این فرمول برای تعیین مقدار فیلد تو فعالیت‌ها به کار می‌ره. باید تو کادر محاوره Custom Fields تعیین کنین که مقدار خلاصه فعالیت‌ها هم با همین فرمول محاسبه بشه؛ یعنی گزینه Use Formula.

DP

و این می‌شه محصول کار:

DP

به نظر خوب میاد. حالا بیاین کارکردش رو کمی امتحان کنیم. بهش یه عدد دیگه‌ای، مثلا 6 بدیم. چطوره؟

DP

به نظر شما چرا اینطوری شد؟ 6 رو خودم با دستای خودم تو Complete % وارد کردم و حالا فیلد اختصاصی داره 6.04 رو نشون می‌ده.

ماجرا اینه که زمان تو پراجکت با دقیقه ذخیره می‌شه (معمولا) و در نتیجه Duration نمی‌تونه کسری از دقیقه داشته باشه. برای این‌که این واحد رو بشه عملیاتی کرد، برای Actual Duration و بعضی فیلدهای دیگه پارتی بازی شده و می‌تونن تا دهم دقیقه رو هم ذخیره کنن. این مسئله درصدهایی که می‌تونه به وجود بیاد رو محدود می‌کنه. مثلا اگه فعالیت یک دقیقه باشه، پیشرفت‌هایی به جز صفر، 10٪، 20٪ و … نمی‌تونه داشته باشه.

وقتی پیشرفت رو وارد می‌کنیم، Actual Duration مقدار می‌گیره و الان هم مقداری گرفته که پیشرفت متناظر با اون بیشتر از همه نزدیک باشه به مقداری که وارد کرده بودیم، یعنی 6.

یه دلیل برای این‌که فیلد پیشرفت طوری طراحی شده که ارقام اعشار نشون نده همینه؛ چون خیلی وقتا مقدارهای بدون اعشاری که وارد می‌کنین به ناچار با کمی اعشار ثبت می‌شن و اگه همونطوری هم دیده بشن احتمالا گیج می‌شین. در عین حال مقدار اعشارها همیشه کمه و اگه گرد بشه همون عددی می‌شه که دستی وارد کرده بودین (مگر این‌که مدت زمان فعالیت خیلی کم باشه).

حالا چیکار کنیم؟ به نظر من بهترین کار اینه که فرمولمون رو تغییر بدیم، طوری که پیشرفت فعالیت‌ها رو گرد شده نشون بده و پیشرفت خلاصه فعالیت‌ها رو با اعشار:

DP

اینجا گفتم که پیشرفت خلاصه فعالیت‌ها هم به دو رقم اعشار گرد بشه که یه دفعه‌ای پیشرفتی مثل 12.666666667% نبینیم.

راستی، دقت کردین که تو پراجکت به جای IF می‌نویسیم IIF؟

این هم می‌شه محصولش:

DP

که همونیه که می‌خواستیم.

خوب، نکته دیگه‌ای به نظرتون نمیاد؟

به نظر من یه کمبود داره. کنار عدد علامت درصد نداره. حلش هم ساده‌س، می‌تونیم همین فرمول رو به جای Number1 تو Text1 بنویسیم و تهش یه علامت درصد بذاریم:

DP

و این محصولش:

DP

قبل از این‌که مطلب رو تموم کنم یه مسئله‌ای رو یادآوری می‌کنم. فیلد Complete% که الان صحبتش بود، فیلد جالبی برای گزارش دادن پیشرفت نیست، مگر این‌که ضریب وزنی فیزیکی کار، زمان باشه، که بعیده اینطور باشه. بهتره مبنایی برای وزن فعالیت‌ها در نظر بگیرین (هزینه، یا هر چیز دیگه) و پیشرفت‌ها رو بر اون اساس محاسبه کنین و به این فیلد هم هیچ کاری نداشته باشین.