تبديل تاريخ ميلادي به شمسي در اكسل
از اكسل ميتوان براي زمانبندي و ايجاد تقويم كاري استفاده كرد. ولي در اكثر مواقع، ايجاد و به كارگيري تقويم شمسي و تبديل تاريخ ميلادي به شمسي در اكسل كار سختي محسوب شده و بسياري از محاسبات دچار مشكل ميشوند. در اين متن از مجله فرادرس قصد داريم با استفاده از چند روش، تبديل تاريخ ميلادي را به تاريخ شمسي اجرا كنيم. البته بايد توجه داشت كه اين تبديل بايد توانايي انجام محاسبات روي تاريخ را داشته باشد و اكسل با آن به عنوان يك عدد محاسباتي برخورد كند. در غير اينصورت مقداري كه به صورت تاريخ شمسي در سلولهاي اكسل نوشته شده باشد، به صورت متن در نظر گرفته شده و توانايي انجام عمليات رياضي روي آنها مقدور نيست.
تبديل تاريخ ميلادي به شمسي در اكسل
اغلب كاربران حرفهاي اكسل را براي برنامهريزي و ثبت تاريخهاي كاري مورد استفاده قرار ميدهند. براي مثال اگر بخواهيم از روي تاريخهاي حضور يك فرد در شركت، تعداد روزهاي كاري را محاسبه كنيم، يا براي برنامهريزي يك پروژه، احتياج به تعداد ماههاي اجراي پروژه داشته باشيم، تعداد روزها يا ماهها براساس تاريخ بايد قابل محاسبه باشد.
البته محاسبه روي تاريخهايي كه به صورت ميلادي در سلولهاي كاربرگ ثبت شدهاند، مشكلي ندارد ولي زماني كه بخواهيم اين تاريخها را به صورت شمسي وارد كنيم، در نظر گرفتن نكاتي، باعث ميشود كه عمليات رياضي به درستي صورت گرفته و از بروز خطا جلوگيري شود. در اين متن تبديل تاريخ ميلادي به شمسي در اكسل را مرور كرده و به بعضي از محاسبات و توابع موجود در اكسل كه براي تاريخها قابل اجرا هستند، اشاره خواهيم كرد.
روشهاي تبديل تاريخ ميلادي به شمسي در اكسل
چندين روش مختلف براي تبديل تاريخ ميلادي به شمسي در اكسل وجود دارد. از گزينه مربوط به قالببندي سلول تا برنامهنويسي با VBA، گزينههاي مختلف براي اين كار محسوب ميشوند. هر چند انجام تبديل با زبان برنامهنويسي VBA و به كارگيري توابعي از پيش ساخته شده، امري مشكل است ولي ما سعي ميكنيم در اين متن، به جنبههاي مختلف و همچنين توابعي كه به شكل سادهتر اين كار را انجام ميدهند، اشاره كنيم.
تبديل تاريخ ميلادي به شمسي در اكسل به كمك قالببندي سلول
شايد سادهترين كار براي تغيير تاريخ ميلادي در اكسل و تبديل به تاريخ شمسي، استفاده از قالب بندي سلول باشد. البته به ياد داشته باشيد كه اين كار در نسخههاي جديد اكسل (۲۰۱۶ يا ۲۰۱۹) قابل اجرا است. در نسخههاي قديمي، اين امكان به طور پيشفرض بدون استفاده از ابزارهاي برنامهنويسي شده، وجود ندارد. البته اغلب به كمك نوشتن تاريخ شمسي به صورت يك عبارت متن (مثلا ۱/۴/۱۳۹۹) سعي ميكنند كه تاريخ شمسي را درون سلول ثبت كنند ولي بايد توجه داشت كه اين شكل از ثبت تاريخ، باعث ميشود كه محاسبات رياضي (مثلا بدست آوردن تعداد روزها بين دو تاريخ) امكانپذير نباشد. از طرفي اگر تاريخ شمسي را به صورت ۱/۴/۹۹ بنويسيم، اكسل آن را مربوط به سال ۱۹۹۹ ميلادي در نظر گرفته و مشخص است كه باز هم محاسبات (مثلا بدست آوردن تاريخ ۱۰ روز آينده) به درستي انجام نخواهد شد و ممكن است با توجه به اختلاف روزها در ماههاي شمسي و ميلادي، به تاريخ درستي دسترسي پيدا نكنيد.
كاربرگ زير را در اكسل در نظر بگيريد. ستون A شامل مقاديري است كه به صورت تاريخ ميلادي ثبت شدهاند. ميخواهيم معادل شمسي هر يك از اين تاريخها را در ستون ديگري مانند B نمايش دهيم.
كاربرگ تبديل تاريخ ميلادي به شمسي
نكته: به ياد داشته باشيد كه اكسل براي نمايش تاريخ از قالبي كه در پيكربندي ويندوز تعيين شده، استفاده ميكند. همانطور كه در تصوير بالا ميبينيد، اولين ارقام از سمت چپ، ماه و رقمهاي مياني، روز و در سمت راست تاريخ ميلادي، سال مشخص شده است.
ابتدا همه ناحيه ستون B را كه قرار است براي نمايش تاريخ شمسي به كار بريم، انتخاب ميكنيم و طبق تصوير زير، قالببندي را براي اين ناحيه، به صورت شمسي درميآوريم.
پنجره قالب بندي براي تبديل تاريخ ميلادي به شمسي
حال كافي است به كمك فرمول B1: = A1 مقدار سلولهاي ستون A را در ستون B كپي كنيم. از آنجايي ميخواهيم قالببندي ستون B تغيير نكند، از فرمولنويسي كمك گرفتهايم. البته به جاي فرمولنويسي براي ايجاد ستون B، ميتوانستيم ابتدا همه مقادير تاريخ را كپي كرده، سپس قالببندي را تغيير دهيم.
به اين ترتيب تمامي تاريخهاي نوشته شده در ستون A به صورت تاريخ شمسي در ستون B ظاهر ميشوند. جالب است كه انجام هر گونه محاسبه يا به كارگيري توابع تاريخي روي ستون B، امكانپذير است و كاملا با جنبه محتويات تقويمي ميلادي مطابقت دارد.
برچسب: ،
ادامه مطلب