فهرست
اگه شما هم مثل من با دیتاستهای فارسی توی Power BI کار کرده باشید، حتماً با این چالش برخورد کردید که چطور تاریخهای میلادی رو به شمسی تبدیل کنید و میدونید که چقدر انجام دادن این کار برای تهیه گزارش حیاتیه؛ من هم اینو گوگل کردم: تبدیل تاریخ میلادی به شمسی در Power BI اما راهنمای ساده و سرراستی پیدا نکردم که به دردم بخوره، برای همین تصمیم گرفتم درباره تبدیل تاریخ میلادی به شمسی در Power BI بنویسم تا شاید لازم نباشه بقیه اندازه من برای پیدا کردن بهترین راه حل وقت بذارن.
نرم افزار Power BI به صورت پیشفرض فقط از تاریخ میلادی پشتیبانی میکنه؛ راههای مختلفی برای فارسی کردن تاریخ و حل این مشکل وجود داره. توی این مطلب درباره دو تا از روشهای سادهای که خودم همیشه برای تبدیل تاریخها ازشون استفاده میکنم مینویسم:
روش اول: نمایش تاریخ به صورت محلی (Using Locale)
Using Locale در Power BI یه قابلیتیه که به کارشناس داده اجازه میده فرمت اطلاعاتی مثل تاریخ و واحد پول رو بر اساس تنظیمات زبانی و فرهنگی مختلف تغییر بده. مثلاً توی ایالات متحده امریکا تاریخ معمولاً به شکل ماه / روز / سال یعنی YYYY/DD/MM نمایش داده میشه، اما توی کشورهای اروپایی تاریخ رسمی به شکل روز / ماه / سال یعنی YYYY/MM/DD استفاده میشه؛ از این قابلیت Power BI میشه برای تبدیل تاریخ میلادی به تاریخ شمسی هم استفاده کرد.
کافیه وقتی که در حال دریافت اطلاعات توی محیط Power Query Editor هستید، روی عنوان ستونی که قراره تاریخش شمسی بشه، راست کلیک کنید و از Change Type، گزینه آخر یعنی Using Locale رو انتخاب کنید.
توی پنجرهی باز شده، فیلد Locale را به Persian تغییر بدید و OK رو بزنید تا به همین راحتی ستون انتخاب شده فارسی بشه.
واقعاً ساده نبود؟ حالا یه روش دیگه که به همین اندازه ساده نیست ولی ممکنه یه جاهایی به دردتون بخوره:
روش ساختن ستون جدید با استفاده از زبان M
اگه بخوام خیلی ساده توضیح بدم، زبان M زبانی برای کار کردن با اطلاعاته؛ این زبان برای انجام تغییرات در دادههاییه که از منابع مختلف دریافت میکنید و به غیر از Power BI توی نرم افزارهای دیگهای مثل اکسل هم کاربرد داره؛ توی این روش در Power Query Editor با استفاده از زبان M، یه ستون جدید میسازیم و داخلش، تاریخ میلادی رو به شمسی تبدیل میکنیم.
برای تبدیل تاریخ میلادی به شمسی با استفاده از زبان M باید:
- وارد محیط Power Query Editor بشید
- از منوی سمت چپ روی کوئری مورد نظر کلیک راست کنید
- روی Advanced Editor کلیک کنید تا پنجره ویرایش کوئری باز بشه
- این دو خط کوئری را به انتهای متن موجود و درست قبل از in اضافه کنید
#"Converted to Date" = Table.TransformColumns(#"Removed Columns", {{"Date", Date.From}}),
#"Converted to Jalali" = Table.AddColumn(#"Converted to Date", "Jalali Date", each Date.ToText([Date], "yyyy/MM/dd", "fa-IR"))
دقت کنید که توی این کوئری، توی خط اول به جای "Date"
و توی خط دوم به جای [Date]
، اسم ستون تاریخ میلادی خودتونو وارد کنید؛ توی خط آخر کوئری و پس از in
هم، همیشه باید اسم آخرین مرحله از کوئری که این جا Converted to Jalali
هست رو وارد کنید. در نهایت دکمه Done رو بزنید:
میبینید که یه ستون جدید به نام Jalali Date به انتهای اطلاعات شما اضافه شده که شامل تاریخ شمسی تبدیل شدهس:
با استفاده از این دو روش، به راحتی میتونید توی گزارشاتون تاریخ شمسی داشته باشید.
امیدوارم این مطلب به دردتون خورده باشه. یادتون نره اگه سؤال یا نظری داشتید پایین همین صفحه میتونید برام کامنت بذارید و اگر نیاز بود که باهام تماس بگیرید میتونید از لینکهای آخر صفحه استفاده کنید.
در روش اول چرا از راست به چپ تبدیل میشه مثل 24/03/1403
من می خوام درست تبدیل بشه این طوری 1403/03/24
دلیلش نمیدونم چیه ولی اگه تاریخ داره درست تبدیل میشه میتونید نتیجه به دست اومده رو اسپلیت کنید و تبدیلش کنید به سه ستون روز و ماه و سال و بعد هر طور که خواستید فرمتش کنید و توی یه ستون جدید اضافهش کنید.