فرمول تبدیل تاریخ میلادی به شمسی در MS Project

امروزه در کشورمان نرم افزارهای فارسی ساز MS Project در بازار فروش نرم افزار وجود دارد. این نرم افزارها تقریبا در همه جای MSP فیلدهای از نوع تاریخ در جداول، TimeScale در بالای گانت چارت، تقویم های پروژه جهت تعیین ساعات کاری، Date Picker های انتخاب یک تاریخ خاص و ... را به شمسی تبدیل می کنند و از این لحاظ بسیار کامل هستند. هرچند به عنوان یک فرد باتجربه خرید این فارسی ساز ها را توصیه می کنم چون هم کامل هستند و هم سایر نرم افزارهای Office را فارسی می کنند ولی اگر بخواهیم در سطح آماتوری از طریق یک فرمول ساده فقط تاریخها را در Tabeهای MSP به هجری شمسی تبدیل کنیم روش زیر کاربرد دارد. روش کلی کار نیز استفاده از یک فیلد از نوع Text مثلا Text1 در MSP است که فرمول زیر در بخش Formula درج گردیده است: (دقت کنید موقع Copy و Paste تمام متن را به درستی انتخاب کنید)

(Int((Int([Start]-DateValue("21/3/1997 00:00:00"))-Int(Int([Start]-DateValue("21/3/1997 00:00:00"))/1461))/365)+76) & "/" & (IIf(((((Int([Start]-DateValue("21/3/1997 00:00:00")))-Int((Int([Start]-DateValue("21/3/1997 00:00:00")))/1461)) Mod 365))<=186,Int(((((Int([Start]-DateValue("21/3/1997 00:00:00")))-Int((Int([Start]-DateValue("21/3/1997 00:00:00")))/1461)) Mod 365))/31)+1,Int((((((Int([Start]-DateValue("21/3/1997 00:00:00")))-Int((Int([Start]-DateValue("21/3/1997 00:00:00")))/1461)) Mod 365))-186)/30)+7)) & "/" & (IIf(((((Int([Start]-DateValue("21/3/1997 00:00:00")))-Int((Int([Start]-DateValue("21/3/1997 00:00:00")))/1461)) Mod 365))<=186,Int(((((Int([Start]-DateValue("21/3/1997 00:00:00")))-Int((Int([Start]-DateValue("21/3/1997 00:00:00")))/1461)) Mod 365)) Mod 31)+1,Int((((((Int([Start]-DateValue("21/3/1997 00:00:00")))-Int((Int([Start]-DateValue("21/3/1997 00:00:00")))/1461)) Mod 365))-186) Mod 30)+1+(IIf((Int([Start]-DateValue("21/3/1997 00:00:00"))) Mod 1461=0,1,0))))

در زیر بشکل گرافیکی کارکرد این فرمول نمایش و توضیح داده شده است:

همچنین برای فرمول نویسی در فیلدهای Text نظیر Text1 مطابق روش زیر برای ردیفهای Summary هم باید از گزینه Use Formula استفاده نمود:

همچنین فرمول فوق الذکر فقط برای تبدیل فیلد Start به معادل هجری شمسی آن بکار می رود. اگر بخواهیم برای سایر فیلدهای از نوع تاریخ نظیر Finish و  BaselineStart و BaselineFinish و ... هم استفاده شود، مشابه شکل زیر فرمول را در نرم افزارهایی نظیر NotePad وارد نموده و از طریق Find و Replace در فرمول مربوطه همه جا به جای عبارت Start عبارت Finish را درج می کنیم تا فرمول مربوطه اصلاح گردد:

روش ماکرونویسی در MSP هم هست که جهت فارسی سازی تا سطح کاملتری قابل اجراء است که در این مقاله قابل توضیح نمی باشد.

/ 13 نظر / 5588 بازدید
نمایش نظرات قبلی
علی

دستتون درد نکنه مدل ماکرو اونو داشتم اما بنظر من که این سریع تر و کاربردی تر بودش موفق باشید

بهداد

دمت گرم

عباسی

خیلی ممنون.واقعا عالی بود.

مرسیییییییییییییییی

شهریار

عالی بود متشکرم

رسولی

سلام خسته نباشید ممنون از مطلب و فرموا مفیدتون [لبخند]

esi

عال بود مهندس

زهرا

بسیااااااااااااار سپاس گزارم

arash

ممنون عالیییییییییییییییییییی

علی

با تشکر فراوان از شما آقای مهندس اردکانی راهنماییتان خیلی عالی و کار ساز بود