بدون نیاز به کدنویسی با ترکیب چند تابع می توانید تقویم شمسی در اکسل بسازید و لذت ببرید ، فقط کافیست این آموزش را دنبال کرده و ویدیو قرار داده شده در ابتدای این آموزش را ببیند که به طور کامل توضیح داده ایم که چگونه مراحل را انجام دهید
فهرست محتوا
توابع و مورد نیاز برای ساخت تقویم شمسی در اکسل
تقویم شمسی در اکسلبرای انجام این آموزش به مواردی که در ادامه نام خواهم برد نیاز دارید تا بتوانید به سادگی و به سرعت به نتیجه برسید و از ترکیب توابع در اکسل لذت ببرید .
- ماژول تاریخ شمسی آفیس باز
- تابع SEQUENSE برای شماره گذاری
- تابع TEXTJOIN برای ترکیب و یکی کردن داده ها
- تابع CHOOSE برای نمایش مقدار متناظر با عدد انتخاب شده
- تابع VSTACK برای ادغام فرمولها
- تابع LET برای استفاده از متغیرها و خلاصه سازی
- تابع LAMBDA برای ساخت تابع اختصاصی
البته که زیاد بودن لیست توایع استفاده شده در این آموزش نباید باعث شود که فکر کنید خیلی مباحث پیچیده ای هستند و شما نمی توانید انجام دهید ؛ اتفاقا کاملا برعکس با آموزشی که ارائه شده اگر تمرین داشته باشید به راحتی می توانید این موضوع را انجام دهید و تقویم شمسی در اکسل خودتان بسازید.
مراحل انجام کار تقویم شمسی در اکسل
مرحله اول این هست که باید فایل اکسل رو باز کنید و ماژولهای شمسی رو بهش اضافه می کنیم و فایل رو با پسوند xlsm ذخیره کنید .
فرض می کنیم که می خواهیم تقویم شمسی در A1 شروع شود پس باید تا G7 را در نظر بگیریم و شماره گذاری انجام دهید که این کار را با تابع SEQUENSE انجام می دهیم .
=SEQUENSE(,7)
فرمول بالا در A1:G1 از یک تا هفت را شماره گذاری می کند و چون می خواهیم که نام ماه در ردیف اول و سلول وسطی باشد باید a1:c1 خالی باشد و D1 نام ماه را نمایش دهد و E1:g1 هم خالی باشد برای این منظور می توانیم از تابع CHOOSE استفاده کنیم .
=CHOOSE(SEQUENCE(,7),"","","",mahh(TEXTJOIN(,TRUE,k1,TEXT(k2,"00"),"01")),"","","")
در فرمول بالا فرض بر این است که مقدار سال و مقدار ماه به ترتیب در K1 , K2 وارد شده اند که در فرمول هم از آنها استفاده کردیم . در واقع در نهایت ما تابع شخصی سازی شده با LAMBDA خواهیم داشت که دو آرگومان سال و ماه را از ما بخواهد که موقتا در این آدرها وارد کرده ایم.
مرحله بعدی نوشتن روزهای هفته ( شنبه تا جمعه ) در ردیف دوم می باشد که آن هم باید با فرمول نویسی و ترکیب توابع انجام شود و اینجا هم تابع CHOOSE به کمک ما خواهد آمد .
=CHOOSE(SEQUENCE(,7),"ش","ی","د","س","چ","پ","ج")
در فرمول بالا هم چون می خواهیم کل ماه را در جدول نشان دهیم ، بهتر است که به جای نام کامل روز هفته از حرف اول آن استفاده کنیم مثلا “ج” به عنوان جمعه و بقیه هم که مشخص است.
اما مرحله بعدی ایجاد شماره های روزها در جدول ماهانه می باشد که به سادگی با تابع SEQUENSE امکان پذیر است و کافیت از آرگوماهنهای اول و دوم این تابع به شکل زیر استفاده کنیم .
=CHOOSE(SEQUENCE(6,7)
این فرمول محدوده را از 1 تا 42 شماره گذاری می کند ولی این شماره گذاری در ابتدا کاربردی ندارد ، چرا که در تقویم شمسی در اکسل باید بدانیم که روز شروع ماه کدام روز است مثلا خرداد ماه سال 1404 از روز پنج شنبه شروع می شود یعنی 1 خرداد 1404 می شود روز پنج شنبه و شماره گذاری باید از پنج شنبه صورت پذیرد.
برای حل این چالش ما نیاز داریم که شماره روز اولیم روز ماه انتخاب شده را داشته باشیم و می دانیم که شماره روز با تابع DAYWEEKNO از توابع تاریخ شمسی قابل استخراج است پس با فرمول زیر می توانیم شماره روز هفته تاریخ اولین روز ماه را به دست آوریم.
=DayWeekNo(TEXTJOIN(,TRUE,k1,TEXT(k2,"00"),"01"))
لازم است یادآوری کنم که در سلول K1 ما مقدار سال را وارد کرده ایم و در سلول K2 مقدار ماه را وارد کرده ایم .