আপনি যদি আগে থেকে পরিকল্পনা করতে পছন্দ করেন এবং ব্যস্ত শিডিউল রাখেন, তবে একটি এক্সেল (Excel) ক্যালেন্ডার আপনার জন্য খুব উপকারী হতে পারে। এই কথা মনে রেখে, এই আর্টিকেলে আমরা এক্সেলে বার্ষিক ক্যালেন্ডার কীভাবে তৈরি করবেন সেটি ধাপে ধাপে ব্যাখ্যা সহ আলোচনা করব। মজার কথা হলো, এই ক্যালেন্ডার ডাইনামিক এবং ইন্টারেক্টিভ (interactive)। অর্থাৎ, আপনি যখন বছরের মান পরিবর্তন করবেন, তখন ক্যালেন্ডার নিজে আপডেট হয়ে যাবে। এর পাশাপাশি, আমরা এক্সেল VBA ব্যবহার করে মাসিক ক্যালেন্ডার তৈরিও আলোচনা করব।
আপনি নিচের লিংক থেকে প্র্যাকটিস ওয়ার্কবুক ডাউনলোড করতে পারেন।
এক্সেলে বার্ষিক ক্যালেন্ডার তৈরির ৪টি ধাপ
এখন, এই টিউটোরিয়ালে গভীরে যাওয়ার আগে, আমি আপনাকে দেখিয়ে দিচ্ছি চূড়ান্ত আউটপুটটি কেমন দেখাবে। এখানে, আমাদের একটি বার্ষিক ক্যালেন্ডার রয়েছে, যেখানে শনিবার (Saturdays) এবং রবিবার (Sundays) (সপ্তাহান্ত) হালকা কমলা রঙে দেখানো হয়েছে যখন ছুটি দিন (Holidays) চমকদার কমলা রঙে প্রদর্শিত হচ্ছে।


এখানে, আমরা Microsoft Excel 365 সংস্করণ ব্যবহার করেছি, আপনি আপনার সুবিধা অনুযায়ী অন্য কোনো সংস্করণও ব্যবহার করতে পারেন।
📌 ধাপ ০১: প্রাইমারি আউটলাইন তৈরি করা
- প্রথম ধাপে, আমরা মাস (Months)-কে ৩টি কলাম এবং ৪টি সারি দিয়ে ভাগ করে ক্যালেন্ডারের একটি আউটলাইন তৈরি করব।
- পরবর্তী, একটি সপ্তাহ (Week)-এ ৭টি দিন লিখবেন এবং সপ্তাহান্ত (Weekends)-কে হাইলাইট করবেন, এই ক্ষেত্রে শনিবার (Saturdays) এবং রবিবার (Sundays)।

আরও পড়ুন: এক্সেলে সাপ্তাহিক ক্যালেন্ডার তৈরির পদ্ধতি (৩টি উপযোগী উপায়)
📌 ধাপ ০২: মাসের নাম প্রবেশ করানো:
- দूसরে, B4 সেলে যান >> নম্বর 1 টাইপ করুন >> আপনার কীবোর্ডের CTRL + 1 কী চাপুন।

এখন, এটি Format Cells ডায়ালগ বক্স খুলবে।
- শুরুতে, Number ট্যাবে যান >> Custom অপশনটি বেছে নিন >> Type ফিল্ডে “January” লিখুন (ইনভার্টেড কমার্সের ভিতরে) >> শেষে, Font ট্যাবে যান।

- পরবর্তী, Bold-Italic Font style বেছে নিন >> একটি Color নির্বাচন করুন, এখানে আমরা বেগুনি রঙ বেছে নিয়েছি >> OK বাটনে ক্লিক করুন।

- পরে, B4:H4 সেল রেঞ্জটি নির্বাচন করুন >> CTRL + 1 কী চাপুন Format Cells উইন্ডোতে যেতে।
- এরপর, Alignment ট্যাবে যান >> Horizontal সেকশনে Center Across Selection অপশনটি বেছে নিন >> OK বাটনে ক্লিক করুন।

শেষে, এটি নিচের ছবির মত January মাসের নাম প্রদর্শন করবে।

- একই প্রক্রিয়া অন্যান্য মাসগুলো জন্যও दुহরান এবং আপনার আউটপুট নিচের ছবির মত হওয়া উচিত।


আরও পড়ুন: টেমপ্লেট ছাড়া এক্সেলে ক্যালেন্ডার তৈরির পদ্ধতি (২টি উদাহরণ)
📌 ধাপ ০৩: ডাইনামিক ক্যালেন্ডার তৈরিতে এক্সেল ফাংশন ব্যবহার করা
- তৃতীয়, B6 সেলে যান এবং নিচের ফর্মুলাটি প্রবেশ করান।
=IF(MONTH(DATE($B$2,$B$4,1)+SEQUENCE(6,7)-WEEKDAY(DATE($B$2,$B$4,1),2))=$B$4,DATE($B$2,$B$4,1)+SEQUENCE(6,7)-WEEKDAY(DATE($B$2,$B$4,1),2),"")
এখানে, B2 এবং B4 সেলগুলো যথাক্রমে বছর ২০২২ এবং জানুয়ারি (January) মাসকে নির্দেশ করে।
📃 দ্রষ্টব্য: SEQUENCE ফাংশন এক্সেল ৩৬৫, এক্সেল ২০২১, এবং এক্সেল ফর দ্য ওয়েবে উপলব্ধ, তাই অনুগ্রহ করে কম্প্যাটিবল ভার্সন আছে কিনা নিশ্চিত করুন।

- এখন, ENTER কী চাপুন এবং ফর্মুলাটি জানুয়ারি (January) মাসের সকল দিন পপুলেট করবে।
📃 দ্রষ্টব্য: অনুগ্রহ করে নিশ্চিত করুন Date ফরম্যাটকে শুধু dd-এ পরিবর্তন করেছেন Format Cells উইন্ডোতে CTRL + 1 কী চাপে।

চূড়ান্তভাবে, ফলাফলটি নিচের ছবির মত দেখাবে।


📌 ধাপ ০৪: ক্যালেন্ডারে ছুটি দিন নির্দেশ করা:
- চতুর্থ এবং চূড়ান্ত ধাপে, নিচের মত একটি নতুন শীতে ছুটির তালিকা (List of the Holidays) তৈরি করুন।

- তারপর, B6:H11 সেলগুলো নির্বাচন করুন >> Conditional Formatting ড্রপ-ডাউন >> New Rule অপশন বেছে নিন।

মুহূর্তে, New Formatting Rule উইজার্ড পপ আপ হবে।
- পরবর্তী, Use a formula to determine which cells to format অপশনটি বেছে নিন।
- তারপর, Rule Description-এ নিচের ফর্মুলাটি প্রবেশ করান।
=ISNUMBER(VLOOKUP(B6,Holidays!$C:$C,1,0))
এখানে, B6 সেলটি জানুয়ারি (January) মাসের সোমবার (Monday)-কে নির্দেশ করে যখন Holidays!$C:$C Holidays শীতে তারিখ (Dates)-কে প্রতিনিধিত্ব করে।
ফর্মুলা ব্রেকডাউন:
- VLOOKUP(B6,Holidays!$C:$C,1,0)) → VLOOKUP ফাংশন একটি টেবিলের বাম-most কলামে একটি মান খুঁজে বের করে, এবং তারপর আপনি যেটি নির্দিষ্ট করবেন সেটি অনুযায়ী একই সারির একটি কলাম থেকে মান রিটার্ন করে। এখানে, B6 ( lookup_value আর্গুমেন্ট) Holidays!$C:$C (table_array আর্গুমেন্ট) অ্যারে থেকে ম্যাপ করা হয়েছে। পরবর্তী, 1 (col_index_num আর্গুমেন্ট) লুকআপ ভ্যালুর কলাম নম্বর প্রতিনিধিত্ব করে। শেষে, 0 (range_lookup আর্গুমেন্ট) লুকআপ ভ্যালুর Exact match রেফার করে।
- আউটপুট → #N/A
- ISNUMBER(VLOOKUP(B6,Holidays!$C:$C,1,0)) → হয়ে যায়
- ISNUMBER(#N/A) → ISNUMBER ফাংশন চেক করে কোনো মান সংখ্যা কিনা এবং TRUE বা FALSE রিটার্ন করে। এখানে, #N/A হলো value আর্গুমেন্ট, এবং যেহেতু এটি সংখ্যা নয় তাই ফাংশনটি FALSE রিটার্ন করে।
- আউটপুট → FALSE

এখন, এটি জানুয়ারি ১ তারিখের ছুটি দিনকে চমকদার কমলা রঙে হাইলাইট করবে।

একই শৈলীতে, অন্যান্য মাসগুলো জন্যও একই প্রক্রিয়া दुহরান এবং আপনার আউটপুট নিচের স্ক্রিনশটগুলোর মত হওয়া উচিত।


মাসিক ক্যালেন্ডার কীভাবে তৈরি করবেন
আপনি যদি মাসিক ক্যালেন্ডার তৈরি করতে চান? আমাদের পরবর্তী পদ্ধতিতে আপনি আচ্ছাদিত! এখানে, আমরা কাজটি অটোমেট করার জন্য VBA কোড ব্যবহার করব, তাই চলুন এটিকে কাজে লাগানো দেখি।
📌 ধাপসমূহ:
- সর্বপ্রথম, Developer ট্যাবে নেভিগেট করুন >> Visual Basic বাটনে ক্লিক করুন।

এটি একটি নতুন উইন্ডোতে Visual Basic Editor খুলবে।
- পরবর্তী ধাপে, Insert ট্যাবে যান >> Module বেছে নিন।

আপনার সুবিধার জন্য, আপনি এখান থেকে কোডটি কপি করে নিচের মত উইন্ডোতে পেস্ট করতে পারেন।
Sub CalendarMaker() 'This code was taken from extendoffice.com ActiveSheet.Protect DrawingObjects:=False, Contents:=False, _ Scenarios:=False Application.ScreenUpdating = False On Error GoTo MyErrorTrap Range("a1:g14").Clear MyInput = InputBox("Type in Month and year for Calendar ") If MyInput = "" Then Exit Sub StartDay = DateValue(MyInput) If Day(StartDay) <> 1 Then StartDay = DateValue(Month(StartDay) & "/1/" & _ Year(StartDay)) End If Range("a1").NumberFormat = "mmmm yyyy" With Range("a1:g1") .HorizontalAlignment = xlCenterAcrossSelection .VerticalAlignment = xlCenter .Font.Size = 18 .Font.Bold = True .RowHeight = 35 End With With Range("a2:g2") .ColumnWidth = 11 .VerticalAlignment = xlCenter .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .Orientation = xlHorizontal .Font.Size = 12 .Font.Bold = True .RowHeight = 20 End With Range("a2") = "Sunday" Range("b2") = "Monday" Range("c2") = "Tuesday" Range("d2") = "Wednesday" Range("e2") = "Thursday" Range("f2") = "Friday" Range("g2") = "Saturday" With Range("a3:g8") .HorizontalAlignment = xlRight .VerticalAlignment = xlTop .Font.Size = 18 .Font.Bold = True .RowHeight = 21 End With Range("a1").Value = Application.Text(MyInput, "mmmm yyyy") DayofWeek = Weekday(StartDay) CurYear = Year(StartDay) CurMonth = Month(StartDay) FinalDay = DateSerial(CurYear, CurMonth + 1, 1) Select Case DayofWeek Case 1 Range("a3").Value = 1 Case 2 Range("b3").Value = 1 Case 3 Range("c3").Value = 1 Case 4 Range("d3").Value = 1 Case 5 Range("e3").Value = 1 Case 6 Range("f3").Value = 1 Case 7 Range("g3").Value = 1 End Select For Each cell In Range("a3:g8") RowCell = cell.Row ColCell = cell.Column If cell.Column = 1 And cell.Row = 3 Then ElseIf cell.Column <> 1 Then If cell.Offset(0, -1).Value >= 1 Then cell.Value = cell.Offset(0, -1).Value + 1 If cell.Value > (FinalDay - StartDay) Then cell.Value = "" Exit For End If End If ElseIf cell.Row > 3 And cell.Column = 1 Then cell.Value = cell.Offset(-1, 6).Value + 1 If cell.Value > (FinalDay - StartDay) Then cell.Value = "" Exit For End If End If Next For x = 0 To 5 Range("A4").Offset(x * 2, 0).EntireRow.Insert With Range("A4:G4").Offset(x * 2, 0) .RowHeight = 65 .HorizontalAlignment = xlCenter .VerticalAlignment = xlTop .WrapText = True .Font.Size = 10 .Font.Bold = False .Locked = False End With With Range("A3").Offset(x * 2, 0).Resize(2, _ 7).Borders(xlLeft) .Weight = xlThick .ColorIndex = xlAutomatic End With With Range("A3").Offset(x * 2, 0).Resize(2, _ 7).Borders(xlRight) .Weight = xlThick .ColorIndex = xlAutomatic End With Range("A3").Offset(x * 2, 0).Resize(2, 7).BorderAround _ Weight:=xlThick, ColorIndex:=xlAutomatic Next If Range("A13").Value = "" Then Range("A13").Offset(0, 0) _ .Resize(2, 8).EntireRow.Delete ActiveWindow.DisplayGridlines = False ActiveSheet.Protect DrawingObjects:=True, Contents:=True, _ Scenarios:=True ActiveWindow.WindowState = xlMaximized ActiveWindow.ScrollRow = 1 Application.ScreenUpdating = True Exit Sub MyErrorTrap: MsgBox "You may not have entered your Month and Year correctly." _ & Chr(13) & "Spell the Month correctly" _ & " (or use 3 letter abbreviation)" _ & Chr(13) & "and 4 digits for the Year" MyInput = InputBox("Type in Month and year for Calendar") If MyInput = "" Then Exit Sub Resume End Sub

- পরে, VBA উইন্ডো বন্ধ করুন >> Macros বাটনে ক্লিক করুন।
এটি Macros ডায়ালগ বক্স খুলবে।
- এরপর, CalendarMaker ম্যাক্রো বেছে নিন >> Run বাটনে ক্লিক করুন।

এখন, এটি একটি Input box খুলবে >> নিচের মত মাসের নাম এবং বছর প্রবেশ করান।

পরবর্তী, ফলাফলটি নিচের ছবির মত দেখাবে।

উপসংহার
আশা করি এই আর্টিকেল আপনাকে এক্সেলে বার্ষিক ক্যালেন্ডার তৈরির বিষয়ে বুঝতে সাহায্য করবে। আপনার যেকোনো প্রশ্ন থাকলে, নিচে কমেন্ট করুন। এছাড়া, আপনি যদি এই ধরনের আরও আর্টিকেল পড়তে চান, তবে আপনি আমাদের ওয়েবসাইট ExcelDemy-এ ভিজিট করতে পারেন, একটি वन-স্টপ এক্সেল সমাধান প্রদানকারী।
সম্পর্কিত আর্টিকেল
- এক্সেলে খালি ক্যালেন্ডার তৈরির পদ্ধতি (ফ্রি টেমপ্লেট ডাউনলোড)