چطور در اکسل تاریخ شمسی را به میلادی تبدیل کنیم؟


در این مقاله، به بررسی نحوه تبدیل تاریخ شمسی به میلادی در اکسل خواهیم پرداخت. این تبدیل ممکن است برای کسانی که در ایران فعالیت میکنند و نیاز به انجام محاسبات تاریخشناسی با استفاده از تاریخ میلادی دارند، ضروری باشد. به صورت ساده و جز به جز، تبدیل تاریخ میلادی به شمسی و شمسی به میلادی را به صورت ویدیویی و متنی به شما آموزش میدهیم.
جهت دیدن آموزش جامع اکسل در لایت کالج روی دکمه زیر کلیک کنید.
روند تبدیل تاریخ شمسی به میلادی در اکسل
در اکسل، برای تبدیل تاریخهای شمسی به میلادی، نیازی به نرمافزارهای پیچیده ندارید. شما میتوانید از توابع موجود در اکسل برای انجام این کار استفاده کنید. برای شروع، میتوان از توابع TEXT و DATE برای تبدیل تاریخها استفاده کرد. در اینجا یک مثال ساده آورده شده است:
مثال:
فرض کنید تاریخ شمسی شما 1403/01/01 است و میخواهید آن را به میلادی تبدیل کنید. در این صورت میتوانید از فرمولهای زیر استفاده کنید:
=TEXT(DATE(1403, 1, 1), “yyyy-mm-dd”)
این فرمول تاریخ شمسی را به میلادی تبدیل کرده و در قالب yyyy-mm-dd نمایش میدهد.
کد تبدیل تاریخ شمسی به میلادی در اکسل
برای تبدیل تاریخ شمسی به میلادی در اکسل، به طور مستقیم تابعی وجود ندارد، اما میتوان از کدهای VBA برای انجام این کار استفاده کرد. در اینجا یک کد VBA برای تبدیل تاریخ شمسی به میلادی آورده شده است:
۱. وارد کردن کد VBA:
- در اکسل، به تب `Developer` بروید (اگر فعال نیست، از تنظیمات اکسل فعالش کنید).
- روی `Visual Basic` کلیک کنید.
- از منوی باز شده، روی `Insert` کلیک کرده و `Module` را انتخاب کنید.
- کد زیر را در ماژول باز شده وارد کنید:
اگر تاریخ شمسی در سه سلول جداگانه باشد (به عنوان مثال، سال، ماه، و روز هرکدام در یک سلول جدا باشند) و بخواهید آن را به میلادی تبدیل کنید، میتوانید ابتدا این سه بخش را با هم ترکیب کرده و سپس با استفاده از کد VBA تاریخ شمسی را به میلادی تبدیل کنید.
مراحل تبدیل تاریخ شمسی (در سه سلول) به میلادی:
فرض کنید:
– **سال** در سلول `A1`
– **ماه** در سلول `B1`
– **روز** در سلول `C1`
۱. استفاده از VBA برای تبدیل تاریخ شمسی به میلادی
1. به تب `Developer` در اکسل بروید و روی `Visual Basic` کلیک کنید.
2. در پنجرهی باز شده، از منوی `Insert`، گزینهی `Module` را انتخاب کنید.
3. کد زیر را در پنجره ماژول کپی کنید:
کد تبدیل تاریخ میلادی به شمسی در اکسل
“`vba
Function ShamsiToMiladi2(jy As Integer, jm As Integer, jd As Integer) As Date
Dim gy As Integer, gm As Integer, gd As Integer
Dim g_day_no As Long, j_day_no As Long
Dim gy2 As Integer, days As Integer
Dim v As Integer
If jy > 979 Then
gy = jy – 979
Else
gy = jy – 621
End If
j_day_no = 365 * gy + ((gy + 3) \ 4) – ((gy + 99) \ 100) + ((gy + 399) \ 400)
If jm < 7 Then
j_day_no = j_day_no + (jm – 1) * 31
Else
j_day_no = j_day_no + ((jm – 7) * 30) + 186
End If
j_day_no = j_day_no + jd – 1
g_day_no = j_day_no + 79
gy2 = 1600 + 400 * (g_day_no \ 146097)
g_day_no = g_day_no Mod 146097
v = (g_day_no – 1) \ 36524
If v <> 4 Then g_day_no = g_day_no – 36524 * v Else v = 3
gy2 = gy2 + 100 * v
v = (g_day_no – 1) \ 1461
If v <> 4 Then g_day_no = g_day_no – 1461 * v Else v = 3
gy2 = gy2 + 4 * v
v = (g_day_no – 1) \ 365
If v <> 4 Then g_day_no = g_day_no – 365 * v Else v = 3
gy2 = gy2 + v
gm = 0
If g_day_no < 186 Then
gm = 1 + g_day_no \ 31
gd = 1 + g_day_no Mod 31
Else
gm = 7 + (g_day_no – 186) \ 30
gd = 1 + (g_day_no – 186) Mod 30
End If
ShamsiToMiladi2 = DateSerial(gy2, gm, gd)
End Function
“`
استفاده از تابع برای ترکیب تاریخ و تبدیل آن
بعد از اضافه کردن کد بالا، از این تابع استفاده کنید تا تاریخ شمسی (که در سه سلول جداگانه دارید) به میلادی تبدیل شود.
فرض کنید سال، ماه و روز به ترتیب در سلولهای `A1`، `B1` و `C1` قرار دارند:
“`excel
=ShamsiToMiladi2(A1, B1, C1)
“`
این تابع تاریخهای شمسی را که در سه سلول جداگانه هستند به میلادی تبدیل میکند.
نتیجه:
این راهکار به شما اجازه میدهد تا تاریخ شمسی را که در سه سلول (سال، ماه و روز) قرار دارد به میلادی تبدیل کرده و نتیجه را در یک سلول نمایش دهید.
خطاهای متداول در تبدیل تاریخ در اکسل
در هنگام تبدیل تاریخها در اکسل، ممکن است با چندین مشکل روبرو شوید. برخی از این مشکلات عبارتند از:
- خطا در فرمت تاریخ: اگر تاریخ شمسی وارد شده بهدرستی فرمتبندی نشده باشد، اکسل قادر به تشخیص آن نخواهد بود.
- عدم همخوانی با تنظیمات منطقهای اکسل: اگر تنظیمات منطقهای اکسل بر روی فارسی یا ایران نباشد، ممکن است تاریخها به درستی نمایش داده نشوند.
برای حل این مشکلات، باید از فرمتهای استاندارد تاریخ استفاده کرده و تنظیمات منطقهای اکسل را به درستی تنظیم کنید.
دیدگاهتان را بنویسید