دانلود دایمنشن تاریخ شمسی برای Power BI + معرفی اسلایسر تقویم شمسی
دانلود دایمنشن تاریخ شمسی برای Power BI | 123 Jalali Date Dim
اگر با Power BI کار میکنید و گزارشهای فارسی، ایرانمحور یا مبتنی بر تقویم شمسی میسازید، احتمالاً خیلی زود به یک نیاز مهم میرسید: داشتن یک جدول تاریخ شمسی استاندارد و قابل اعتماد.
Power BI بهصورت پیشفرض با تقویم میلادی کار میکند، درحالیکه در بسیاری از گزارشهای سازمانی، مالی، فروش، منابع انسانی، عملیات و مدیریتی در ایران، تحلیلها بر اساس سال، ماه، فصل و روزهای تقویم شمسی انجام میشوند. به همین دلیل، داشتن یک Date Dimension شمسی یکی از پایههای مهم ساخت مدل داده حرفهای در Power BI است.
برای همین نیاز، من یک دایمنشن تاریخ شمسی آماده کردهام با نام:
123 Jalali Date Dim for Power BI
این فایل بهصورت رایگان و متنباز منتشر شده و میتوانید آن را در مدلهای Power BI خودتان استفاده کنید.
دانلود آخرین نسخه 123 Jalali Date Dim for Power BI از GitHub
123 Jalali Date Dim چیست؟
این پروژه یک دایمنشن تاریخ شمسی / جلالی برای Power BI است. یعنی یک جدول تاریخ آماده که میتوانید آن را به مدل داده خود اضافه کنید و با استفاده از آن، دادهها را بر اساس ساختار تقویم شمسی تحلیل کنید.
با این جدول میتوانید تحلیلهایی مثل فروش سال شمسی، فروش ماه شمسی، عملکرد فصلی، گزارش روزهای کاری، تعطیلات، مناسبتها، روزهای هفته و بازههای زمانی شمسی را راحتتر و استانداردتر پیادهسازی کنید.
بازه تاریخی این فایل از ابتدای سال ۱۳۲۰ تا پایان سال ۱۴۵۰ است. بنابراین برای بیشتر سناریوهای تحلیلی، سازمانی، مالی، عملیاتی و مدیریتی کافی خواهد بود.
چرا برای Power BI به جدول تاریخ شمسی نیاز داریم؟
اگر فقط از ستون تاریخ داخل جدولهای تراکنشی یا Fact استفاده کنید، معمولاً مدل داده شما در تحلیلهای زمانی محدود میشود. برای مثال:
- ماههای شمسی بهترتیب درست نمایش داده نمیشوند.
- فصلها ممکن است ترتیب تقویمی نداشته باشند.
- تحلیل سال شمسی، ماه شمسی و هفته شمسی پیچیده میشود.
- ساخت فیلترها و اسلایسرهای زمانی شمسی سختتر میشود.
- مدل داده از نظر تحلیلی تمیز و استاندارد نخواهد بود.
راه حرفهای این است که یک جدول تاریخ مستقل داشته باشید و آن را به جدولهای Fact وصل کنید. این جدول تاریخ باید شامل ستون تاریخ واقعی، کلیدهای تاریخ، سال، فصل، ماه، هفته، روز هفته، ستونهای مرتبسازی و در صورت نیاز، اطلاعات مناسبتها و تعطیلات باشد.
هدف من از ساخت این فایل، آمادهکردن همین زیرساخت برای کاربران فارسیزبان Power BI است.
دو ابزار مکمل برای کار با تاریخ شمسی در Power BI
برای کار حرفهای با تاریخ شمسی در Power BI، معمولاً به دو بخش نیاز داریم:
- جدول تاریخ شمسی در مدل داده برای تحلیل، رابطهها، ستونهای زمانی و محاسبات DAX
- اسلایسر تاریخ شمسی در لایه گزارش برای اینکه کاربر بتواند تاریخ را با تجربه شمسی انتخاب کند
پروژه 123 Jalali Date Dim for Power BI بخش اول را پوشش میدهد؛ یعنی جدول تاریخ شمسی برای مدل داده.
برای بخش دوم، من یک ویژوال اختصاصی دیگر هم توسعه دادهام:
123 Persian Calendar Slicer
این ویژوال یک اسلایسر اختصاصی برای Power BI است که به کاربر اجازه میدهد تاریخها را با رابط کاربری تقویم شمسی / جلالی انتخاب کند و گزارش را فیلتر کند. این ابزار برای داشبوردهای فارسی، گزارشهای ایرانمحور و سناریوهایی که کاربر نهایی با تاریخ شمسی کار میکند، بسیار کاربردی است.
اگر میخواهید علاوه بر داشتن دایمنشن تاریخ شمسی در مدل داده، تجربه انتخاب تاریخ شمسی را هم در صفحه گزارش داشته باشید، پیشنهاد میکنم این اسلایسر را هم ببینید:
معرفی و دانلود 123 Persian Calendar Slicer برای Power BI
تفاوت Date Dimension و Persian Calendar Slicer چیست؟
این دو ابزار جایگزین هم نیستند؛ مکمل هم هستند.
| ابزار | نقش در Power BI | کاربرد اصلی |
|---|---|---|
| 123 Jalali Date Dim | مدل داده | تحلیل سال، ماه، فصل، هفته، روز، تعطیلات و مناسبتهای شمسی |
| 123 Persian Calendar Slicer | لایه گزارش و تعامل کاربر | انتخاب بازه تاریخ با رابط تقویم شمسی و فیلتر کردن گزارش |
به زبان ساده، Date Dimension برای ساخت مدل داده درست است و Persian Calendar Slicer برای تجربه بهتر کاربر در انتخاب تاریخ شمسی.
نسخههای موجود در فایل
این پروژه در دو نسخه آماده شده است:
- نسخه Light: نسخه سبک و ساده، بدون مناسبتها
- نسخه Full: نسخه کامل، همراه با مناسبتها، تعطیلات و جدولهای کمکی
نسخه Light
نسخه Light برای زمانی مناسب است که فقط به یک جدول تاریخ شمسی تمیز، سریع و ساده نیاز دارید. این نسخه برای بسیاری از گزارشهای فروش، عملیات، مالی و مدیریتی کافی است.
در این نسخه، مناسبتها و تعطیلات رسمی تقویمی بهصورت کامل وارد نشدهاند. بنابراین حجم و پیچیدگی کمتری دارد و برای شروع کار انتخاب خوبی است.
نسخه Full
نسخه Full برای زمانی مناسب است که علاوه بر ساختار تاریخ شمسی، به مناسبتها، تعطیلات و تحلیلهای تقویمی هم نیاز دارید.
در این نسخه، علاوه بر جدول اصلی تاریخ، جدول مناسبتها و جدول Bridge هم وجود دارد. همچنین در خود جدول تاریخ کامل، چند ستون خلاصهشده برای نمایش مناسبتها اضافه شده است.
محتوای پکیج دانلودی
پکیج منتشرشده شامل این بخشهاست:
- فایل Excel نسخه Light
- فایل Excel نسخه Full
- خروجی CSV برای استفاده در Power BI، دیتابیس یا ابزارهای دیگر
- جدول یکپارچه مناسبتها
- جدول Bridge بین تاریخ و مناسبتها
- Field Dictionary یا دیکشنری ستونها
- README فارسی
- metadata.json
- فایل License
ساختار پکیج بهگونهای آماده شده که برای استفاده در Power BI، انتشار در GitHub و توسعههای بعدی مناسب باشد.
ستونهای مهم جدول تاریخ
برخی از ستونهای مهم این Date Dimension عبارتاند از:
- Date: تاریخ میلادی واقعی برای استفاده در Power BI
- JalaliDateKey: کلید تاریخ شمسی با فرمت yyyymmdd
- JalaliDate: تاریخ شمسی خوانا
- GregorianDateKey: کلید تاریخ میلادی با فرمت yyyymmdd
- JalaliYear: سال شمسی
- HalfYearName: نیمه اول یا دوم سال
- HalfYearNumber: شماره نیمه سال
- SeasonName: فصل شمسی؛ بهار، تابستان، پاییز، زمستان
- SeasonNumber: شماره فصل
- JalaliMonthName: نام ماه شمسی
- JalaliMonthNumber: شماره ماه شمسی
- WeekOfYear: شماره هفته در سال
- DayOfWeekName: نام روز هفته
- DayOfWeekNumber: شماره روز هفته
- DayOfMonth: شماره روز در ماه
- DayOfYear: شماره روز در سال
- JalaliYearMonthKey: کلید سال-ماه شمسی
- JalaliYearMonthName: نام ترکیبی سال و ماه شمسی
- JalaliYearQuarterKey: کلید سال-فصل شمسی
- JalaliYearQuarterName: نام ترکیبی سال و فصل شمسی
در نسخه Full، ستونهای مربوط به مناسبتها و تعطیلات هم اضافه شدهاند.
ستون Date و Mark as Date Table در Power BI
یکی از نکات مهم در این فایل، وجود ستون Date است. این ستون یک تاریخ واقعی میلادی است و برای Power BI اهمیت زیادی دارد.
بعد از Import کردن فایل در Power BI، پیشنهاد میکنم جدول تاریخ را از مسیر زیر بهعنوان Date Table معرفی کنید:
- وارد Power BI Desktop شوید.
- جدول تاریخ را انتخاب کنید.
- از تب Table tools گزینه Mark as date table را انتخاب کنید.
- ستون Date را بهعنوان ستون تاریخ معرفی کنید.
این کار باعث میشود Power BI جدول تاریخ شما را بهتر بشناسد و مدل داده استانداردتری داشته باشید.
تنظیم Sort by Column برای تاریخ شمسی
در Power BI اگر ستونهای متنی مثل نام ماه یا نام روز هفته را بدون تنظیم Sort استفاده کنید، ممکن است ترتیب نمایش آنها اشتباه شود. برای مثال ماههای شمسی ممکن است بر اساس حروف الفبا مرتب شوند، نه بر اساس ترتیب واقعی تقویم.
برای حل این مشکل، بعد از Import کردن جدول، این تنظیمات را انجام دهید:
- JalaliMonthName را با JalaliMonthNumber مرتب کنید.
- DayOfWeekName را با DayOfWeekNumber مرتب کنید.
- SeasonName را با SeasonNumber مرتب کنید.
- JalaliYearMonthName را با JalaliYearMonthKey مرتب کنید.
- JalaliYearQuarterName را با JalaliYearQuarterKey مرتب کنید.
در Power BI برای این کار، ستون متنی را انتخاب کنید و از گزینه Sort by Column ستون عددی یا کلیدی مناسب را انتخاب کنید.
نحوه اتصال به جدول Fact
اگر جدول Fact شما ستون تاریخ میلادی واقعی دارد، بهترین روش این است که ستون تاریخ جدول Fact را به ستون Date در جدول تاریخ وصل کنید.
اگر در مدل شما تاریخ شمسی بهصورت عدد یا متن با فرمت yyyymmdd ذخیره شده است، میتوانید از ستون JalaliDateKey استفاده کنید.
بهصورت کلی:
- برای مدلهای استاندارد Power BI، استفاده از ستون Date پیشنهاد میشود.
- برای دادههایی که فقط کلید تاریخ شمسی دارند، استفاده از JalaliDateKey مناسب است.
نمونه DAXهای کاربردی
در مثالهای زیر فرض شده جدول فروش شما Sales نام دارد و ستون مبلغ فروش Sales[Amount] است. نام جدول و ستون را باید با مدل خودتان جایگزین کنید.
مجموع فروش
Total Sales =
SUM ( Sales[Amount] )
فروش سال شمسی جاری
Sales Current Jalali Year =
VAR CurrentJalaliYear =
MAX ( Dim_jDate_Full[JalaliYear] )
RETURN
CALCULATE (
[Total Sales],
Dim_jDate_Full[JalaliYear] = CurrentJalaliYear
)
فروش ماه شمسی جاری
Sales Current Jalali Month =
VAR CurrentJalaliYearMonth =
MAX ( Dim_jDate_Full[JalaliYearMonthKey] )
RETURN
CALCULATE (
[Total Sales],
Dim_jDate_Full[JalaliYearMonthKey] = CurrentJalaliYearMonth
)
فروش سال شمسی قبل
Sales Previous Jalali Year =
VAR CurrentJalaliYear =
MAX ( Dim_jDate_Full[JalaliYear] )
RETURN
CALCULATE (
[Total Sales],
Dim_jDate_Full[JalaliYear] = CurrentJalaliYear - 1
)
تعداد روزهای کاری
Working Days =
CALCULATE (
COUNTROWS ( Dim_jDate_Full ),
Dim_jDate_Full[IsHoliday] = FALSE ()
)
تعداد تعطیلات
Holiday Days =
CALCULATE (
COUNTROWS ( Dim_jDate_Full ),
Dim_jDate_Full[IsHoliday] = TRUE ()
)
فروش فصل بهار
Spring Sales =
CALCULATE (
[Total Sales],
Dim_jDate_Full[SeasonName] = "بهار"
)
نکته مهم درباره مناسبتها و تعطیلات قمری
در نسخه کامل، مناسبتها و تعطیلات تقویمی اضافه شدهاند؛ اما باید به یک نکته مهم توجه کرد.
مناسبتها و تعطیلات وابسته به تقویم قمری ممکن است در کاربردهای رسمی نیازمند کنترل سالانه با تقویم رسمی کشور باشند. بنابراین اگر میخواهید از این فایل برای کاربردهایی مثل حقوق و دستمزد، حضور و غیاب، قراردادها، امور مالی، گزارشهای قانونی یا تصمیمهای رسمی استفاده کنید، حتماً تعطیلات قمری و مناسبتهای رسمی هر سال را با منبع رسمی کنترل کنید.
این فایل برای تحلیل داده، گزارشسازی و مدلسازی Power BI آماده شده است؛ اما جایگزین مرجع رسمی تقویم کشور در کاربردهای حقوقی و قانونی نیست.
این پروژه برای چه کسانی مفید است؟
این فایل میتواند برای گروههای زیر مفید باشد:
- تحلیلگران Power BI
- مدیران BI و Data
- توسعهدهندگان داشبوردهای مدیریتی
- مدیران مالی و فروش
- تیمهای منابع انسانی و عملیات
- شرکتهایی که گزارشهای فارسی و ایرانمحور تولید میکنند
- مدرسان Power BI و تحلیل داده
چرا این فایل را منتشر کردم؟
من سالها در حوزه داده، هوش تجاری، محصول، IoT، تلماتیکس و سیستمهای عملیاتی کار کردهام و در پروژههای مختلف دیدهام که یکی از نیازهای تکراری کاربران فارسیزبان Power BI، داشتن یک Date Dimension شمسی تمیز و قابل استفاده است.
از طرف دیگر، در آموزش Power BI هم همیشه یکی از چالشهای مهم دانشجویان و کاربران ایرانی، کار با تاریخ شمسی است. برای همین تصمیم گرفتم این دایمنشن را بهصورت متنباز منتشر کنم تا هر کسی بتواند از آن استفاده کند، آن را توسعه دهد یا برای پروژههای خودش سفارشی کند.
این پروژه بخشی از مجموعه ابزارهای من با پیشوند 123 است؛ مجموعهای از ابزارهای کاربردی برای سادهتر کردن کار با Power BI، داده و محصولات نرمافزاری.
درباره من
من محمد قاهری هستم؛ فعال در حوزه تکنولوژی، محصول، داده، هوش تجاری، IoT، تلماتیکس و سیستمهای عملیاتی. در سالهای گذشته روی پروژههای مختلفی در زمینه داشبوردهای مدیریتی، Power BI، پلتفرمهای داده، سامانههای حملونقل هوشمند، سامانههای متصل و محصولات دادهمحور کار کردهام.
همچنین در حوزه آموزش Power BI، تحلیل داده و تفکر محصول دادهمحور فعالیت دارم و تلاش میکنم ابزارها و تجربههایی را که در پروژههای واقعی ساختهام، در اختیار جامعه فارسیزبان قرار دهم.
راههای ارتباطی:
- LinkedIn: https://www.linkedin.com/in/mohammadghaheri/
- GitHub: https://github.com/MohammadGhaheri
- YouTube: https://www.youtube.com/@MohammadGhaheri
دانلود فایل
برای دانلود آخرین نسخه دایمنشن تاریخ شمسی Power BI از لینک زیر استفاده کنید:
دانلود 123 Jalali Date Dim for Power BI از GitHub
اگر با GitHub آشنا نیستید، وارد لینک بالا شوید و از بخش Assets فایل ZIP نسخه آخر را دانلود کنید.
ابزار مکمل: اسلایسر تاریخ شمسی برای Power BI
اگر علاوه بر جدول تاریخ شمسی، به یک اسلایسر اختصاصی برای انتخاب تاریخ شمسی در صفحه گزارش نیاز دارید، میتوانید پروژه زیر را هم بررسی کنید:
123 Persian Calendar Slicer؛ اسلایسر اختصاصی تاریخ شمسی برای Power BI
این ویژوال کمک میکند کاربر نهایی بتواند بازه تاریخ را با تجربه تقویم شمسی انتخاب کند، درحالیکه دایمنشن تاریخ شمسی، زیرساخت تحلیلی مدل داده را فراهم میکند.
مشارکت در پروژه
اگر پیشنهادی برای بهبود این دایمنشن دارید، یا خطایی در مناسبتها، ستونها یا مستندات مشاهده کردید، خوشحال میشوم از طریق GitHub Issue یا Pull Request مشارکت کنید.
هدف من این است که این فایل به مرور به یک منبع تمیز، کاربردی و قابل اعتماد برای کاربران فارسیزبان Power BI تبدیل شود.
اگر این پروژه برای شما مفید بود، میتوانید آن را در GitHub ستارهدار کنید و با دیگر کاربران Power BI به اشتراک بگذارید.
``` ```htmlدانلود دایمنشن تاریخ شمسی برای Power BI | 123 Jalali Date Dim
اگر با Power BI کار میکنید و گزارشهای فارسی، ایرانمحور یا مبتنی بر تقویم شمسی میسازید، احتمالاً خیلی زود به یک نیاز مهم میرسید: داشتن یک جدول تاریخ شمسی استاندارد و قابل اعتماد.
Power BI بهصورت پیشفرض با تقویم میلادی کار میکند، درحالیکه در بسیاری از گزارشهای سازمانی، مالی، فروش، منابع انسانی، عملیات و مدیریتی در ایران، تحلیلها بر اساس سال، ماه، فصل و روزهای تقویم شمسی انجام میشوند. به همین دلیل، داشتن یک Date Dimension شمسی یکی از پایههای مهم ساخت مدل داده حرفهای در Power BI است.
برای همین نیاز، من یک دایمنشن تاریخ شمسی آماده کردهام با نام:
123 Jalali Date Dim for Power BI
این فایل بهصورت رایگان و متنباز منتشر شده و میتوانید آن را در مدلهای Power BI خودتان استفاده کنید.
دانلود آخرین نسخه 123 Jalali Date Dim for Power BI از GitHub
123 Jalali Date Dim چیست؟
این پروژه یک دایمنشن تاریخ شمسی / جلالی برای Power BI است. یعنی یک جدول تاریخ آماده که میتوانید آن را به مدل داده خود اضافه کنید و با استفاده از آن، دادهها را بر اساس ساختار تقویم شمسی تحلیل کنید.
با این جدول میتوانید تحلیلهایی مثل فروش سال شمسی، فروش ماه شمسی، عملکرد فصلی، گزارش روزهای کاری، تعطیلات، مناسبتها، روزهای هفته و بازههای زمانی شمسی را راحتتر و استانداردتر پیادهسازی کنید.
بازه تاریخی این فایل از ابتدای سال ۱۳۲۰ تا پایان سال ۱۴۵۰ است. بنابراین برای بیشتر سناریوهای تحلیلی، سازمانی، مالی، عملیاتی و مدیریتی کافی خواهد بود.
چرا برای Power BI به جدول تاریخ شمسی نیاز داریم؟
اگر فقط از ستون تاریخ داخل جدولهای تراکنشی یا Fact استفاده کنید، معمولاً مدل داده شما در تحلیلهای زمانی محدود میشود. برای مثال:
- ماههای شمسی بهترتیب درست نمایش داده نمیشوند.
- فصلها ممکن است ترتیب تقویمی نداشته باشند.
- تحلیل سال شمسی، ماه شمسی و هفته شمسی پیچیده میشود.
- ساخت فیلترها و اسلایسرهای زمانی شمسی سختتر میشود.
- مدل داده از نظر تحلیلی تمیز و استاندارد نخواهد بود.
راه حرفهای این است که یک جدول تاریخ مستقل داشته باشید و آن را به جدولهای Fact وصل کنید. این جدول تاریخ باید شامل ستون تاریخ واقعی، کلیدهای تاریخ، سال، فصل، ماه، هفته، روز هفته، ستونهای مرتبسازی و در صورت نیاز، اطلاعات مناسبتها و تعطیلات باشد.
هدف من از ساخت این فایل، آمادهکردن همین زیرساخت برای کاربران فارسیزبان Power BI است.
دو ابزار مکمل برای کار با تاریخ شمسی در Power BI
برای کار حرفهای با تاریخ شمسی در Power BI، معمولاً به دو بخش نیاز داریم:
- جدول تاریخ شمسی در مدل داده برای تحلیل، رابطهها، ستونهای زمانی و محاسبات DAX
- اسلایسر تاریخ شمسی در لایه گزارش برای اینکه کاربر بتواند تاریخ را با تجربه شمسی انتخاب کند
پروژه 123 Jalali Date Dim for Power BI بخش اول را پوشش میدهد؛ یعنی جدول تاریخ شمسی برای مدل داده.
برای بخش دوم، من یک ویژوال اختصاصی دیگر هم توسعه دادهام:
123 Persian Calendar Slicer
این ویژوال یک اسلایسر اختصاصی برای Power BI است که به کاربر اجازه میدهد تاریخها را با رابط کاربری تقویم شمسی / جلالی انتخاب کند و گزارش را فیلتر کند. این ابزار برای داشبوردهای فارسی، گزارشهای ایرانمحور و سناریوهایی که کاربر نهایی با تاریخ شمسی کار میکند، بسیار کاربردی است.
اگر میخواهید علاوه بر داشتن دایمنشن تاریخ شمسی در مدل داده، تجربه انتخاب تاریخ شمسی را هم در صفحه گزارش داشته باشید، پیشنهاد میکنم این اسلایسر را هم ببینید:
معرفی و دانلود 123 Persian Calendar Slicer برای Power BI
تفاوت Date Dimension و Persian Calendar Slicer چیست؟
این دو ابزار جایگزین هم نیستند؛ مکمل هم هستند.
| ابزار | نقش در Power BI | کاربرد اصلی |
|---|---|---|
| 123 Jalali Date Dim | مدل داده | تحلیل سال، ماه، فصل، هفته، روز، تعطیلات و مناسبتهای شمسی |
| 123 Persian Calendar Slicer | لایه گزارش و تعامل کاربر | انتخاب بازه تاریخ با رابط تقویم شمسی و فیلتر کردن گزارش |
به زبان ساده، Date Dimension برای ساخت مدل داده درست است و Persian Calendar Slicer برای تجربه بهتر کاربر در انتخاب تاریخ شمسی.
نسخههای موجود در فایل
این پروژه در دو نسخه آماده شده است:
- نسخه Light: نسخه سبک و ساده، بدون مناسبتها
- نسخه Full: نسخه کامل، همراه با مناسبتها، تعطیلات و جدولهای کمکی
نسخه Light
نسخه Light برای زمانی مناسب است که فقط به یک جدول تاریخ شمسی تمیز، سریع و ساده نیاز دارید. این نسخه برای بسیاری از گزارشهای فروش، عملیات، مالی و مدیریتی کافی است.
در این نسخه، مناسبتها و تعطیلات رسمی تقویمی بهصورت کامل وارد نشدهاند. بنابراین حجم و پیچیدگی کمتری دارد و برای شروع کار انتخاب خوبی است.
نسخه Full
نسخه Full برای زمانی مناسب است که علاوه بر ساختار تاریخ شمسی، به مناسبتها، تعطیلات و تحلیلهای تقویمی هم نیاز دارید.
در این نسخه، علاوه بر جدول اصلی تاریخ، جدول مناسبتها و جدول Bridge هم وجود دارد. همچنین در خود جدول تاریخ کامل، چند ستون خلاصهشده برای نمایش مناسبتها اضافه شده است.
محتوای پکیج دانلودی
پکیج منتشرشده شامل این بخشهاست:
- فایل Excel نسخه Light
- فایل Excel نسخه Full
- خروجی CSV برای استفاده در Power BI، دیتابیس یا ابزارهای دیگر
- جدول یکپارچه مناسبتها
- جدول Bridge بین تاریخ و مناسبتها
- Field Dictionary یا دیکشنری ستونها
- README فارسی
- metadata.json
- فایل License
ساختار پکیج بهگونهای آماده شده که برای استفاده در Power BI، انتشار در GitHub و توسعههای بعدی مناسب باشد.
ستونهای مهم جدول تاریخ
برخی از ستونهای مهم این Date Dimension عبارتاند از:
- Date: تاریخ میلادی واقعی برای استفاده در Power BI
- JalaliDateKey: کلید تاریخ شمسی با فرمت yyyymmdd
- JalaliDate: تاریخ شمسی خوانا
- GregorianDateKey: کلید تاریخ میلادی با فرمت yyyymmdd
- JalaliYear: سال شمسی
- HalfYearName: نیمه اول یا دوم سال
- HalfYearNumber: شماره نیمه سال
- SeasonName: فصل شمسی؛ بهار، تابستان، پاییز، زمستان
- SeasonNumber: شماره فصل
- JalaliMonthName: نام ماه شمسی
- JalaliMonthNumber: شماره ماه شمسی
- WeekOfYear: شماره هفته در سال
- DayOfWeekName: نام روز هفته
- DayOfWeekNumber: شماره روز هفته
- DayOfMonth: شماره روز در ماه
- DayOfYear: شماره روز در سال
- JalaliYearMonthKey: کلید سال-ماه شمسی
- JalaliYearMonthName: نام ترکیبی سال و ماه شمسی
- JalaliYearQuarterKey: کلید سال-فصل شمسی
- JalaliYearQuarterName: نام ترکیبی سال و فصل شمسی
در نسخه Full، ستونهای مربوط به مناسبتها و تعطیلات هم اضافه شدهاند.
ستون Date و Mark as Date Table در Power BI
یکی از نکات مهم در این فایل، وجود ستون Date است. این ستون یک تاریخ واقعی میلادی است و برای Power BI اهمیت زیادی دارد.
بعد از Import کردن فایل در Power BI، پیشنهاد میکنم جدول تاریخ را از مسیر زیر بهعنوان Date Table معرفی کنید:
- وارد Power BI Desktop شوید.
- جدول تاریخ را انتخاب کنید.
- از تب Table tools گزینه Mark as date table را انتخاب کنید.
- ستون Date را بهعنوان ستون تاریخ معرفی کنید.
این کار باعث میشود Power BI جدول تاریخ شما را بهتر بشناسد و مدل داده استانداردتری داشته باشید.
تنظیم Sort by Column برای تاریخ شمسی
در Power BI اگر ستونهای متنی مثل نام ماه یا نام روز هفته را بدون تنظیم Sort استفاده کنید، ممکن است ترتیب نمایش آنها اشتباه شود. برای مثال ماههای شمسی ممکن است بر اساس حروف الفبا مرتب شوند، نه بر اساس ترتیب واقعی تقویم.
برای حل این مشکل، بعد از Import کردن جدول، این تنظیمات را انجام دهید:
- JalaliMonthName را با JalaliMonthNumber مرتب کنید.
- DayOfWeekName را با DayOfWeekNumber مرتب کنید.
- SeasonName را با SeasonNumber مرتب کنید.
- JalaliYearMonthName را با JalaliYearMonthKey مرتب کنید.
- JalaliYearQuarterName را با JalaliYearQuarterKey مرتب کنید.
در Power BI برای این کار، ستون متنی را انتخاب کنید و از گزینه Sort by Column ستون عددی یا کلیدی مناسب را انتخاب کنید.
نحوه اتصال به جدول Fact
اگر جدول Fact شما ستون تاریخ میلادی واقعی دارد، بهترین روش این است که ستون تاریخ جدول Fact را به ستون Date در جدول تاریخ وصل کنید.
اگر در مدل شما تاریخ شمسی بهصورت عدد یا متن با فرمت yyyymmdd ذخیره شده است، میتوانید از ستون JalaliDateKey استفاده کنید.
بهصورت کلی:
- برای مدلهای استاندارد Power BI، استفاده از ستون Date پیشنهاد میشود.
- برای دادههایی که فقط کلید تاریخ شمسی دارند، استفاده از JalaliDateKey مناسب است.
نمونه DAXهای کاربردی
در مثالهای زیر فرض شده جدول فروش شما Sales نام دارد و ستون مبلغ فروش Sales[Amount] است. نام جدول و ستون را باید با مدل خودتان جایگزین کنید.
مجموع فروش
Total Sales =
SUM ( Sales[Amount] )
فروش سال شمسی جاری
Sales Current Jalali Year =
VAR CurrentJalaliYear =
MAX ( Dim_jDate_Full[JalaliYear] )
RETURN
CALCULATE (
[Total Sales],
Dim_jDate_Full[JalaliYear] = CurrentJalaliYear
)
فروش ماه شمسی جاری
Sales Current Jalali Month =
VAR CurrentJalaliYearMonth =
MAX ( Dim_jDate_Full[JalaliYearMonthKey] )
RETURN
CALCULATE (
[Total Sales],
Dim_jDate_Full[JalaliYearMonthKey] = CurrentJalaliYearMonth
)
فروش سال شمسی قبل
Sales Previous Jalali Year =
VAR CurrentJalaliYear =
MAX ( Dim_jDate_Full[JalaliYear] )
RETURN
CALCULATE (
[Total Sales],
Dim_jDate_Full[JalaliYear] = CurrentJalaliYear - 1
)
تعداد روزهای کاری
Working Days =
CALCULATE (
COUNTROWS ( Dim_jDate_Full ),
Dim_jDate_Full[IsHoliday] = FALSE ()
)
تعداد تعطیلات
Holiday Days =
CALCULATE (
COUNTROWS ( Dim_jDate_Full ),
Dim_jDate_Full[IsHoliday] = TRUE ()
)
فروش فصل بهار
Spring Sales =
CALCULATE (
[Total Sales],
Dim_jDate_Full[SeasonName] = "بهار"
)
نکته مهم درباره مناسبتها و تعطیلات قمری
در نسخه کامل، مناسبتها و تعطیلات تقویمی اضافه شدهاند؛ اما باید به یک نکته مهم توجه کرد.
مناسبتها و تعطیلات وابسته به تقویم قمری ممکن است در کاربردهای رسمی نیازمند کنترل سالانه با تقویم رسمی کشور باشند. بنابراین اگر میخواهید از این فایل برای کاربردهایی مثل حقوق و دستمزد، حضور و غیاب، قراردادها، امور مالی، گزارشهای قانونی یا تصمیمهای رسمی استفاده کنید، حتماً تعطیلات قمری و مناسبتهای رسمی هر سال را با منبع رسمی کنترل کنید.
این فایل برای تحلیل داده، گزارشسازی و مدلسازی Power BI آماده شده است؛ اما جایگزین مرجع رسمی تقویم کشور در کاربردهای حقوقی و قانونی نیست.
این پروژه برای چه کسانی مفید است؟
این فایل میتواند برای گروههای زیر مفید باشد:
- تحلیلگران Power BI
- مدیران BI و Data
- توسعهدهندگان داشبوردهای مدیریتی
- مدیران مالی و فروش
- تیمهای منابع انسانی و عملیات
- شرکتهایی که گزارشهای فارسی و ایرانمحور تولید میکنند
- مدرسان Power BI و تحلیل داده
چرا این فایل را منتشر کردم؟
من سالها در حوزه داده، هوش تجاری، محصول، IoT، تلماتیکس و سیستمهای عملیاتی کار کردهام و در پروژههای مختلف دیدهام که یکی از نیازهای تکراری کاربران فارسیزبان Power BI، داشتن یک Date Dimension شمسی تمیز و قابل استفاده است.
از طرف دیگر، در آموزش Power BI هم همیشه یکی از چالشهای مهم دانشجویان و کاربران ایرانی، کار با تاریخ شمسی است. برای همین تصمیم گرفتم این دایمنشن را بهصورت متنباز منتشر کنم تا هر کسی بتواند از آن استفاده کند، آن را توسعه دهد یا برای پروژههای خودش سفارشی کند.
این پروژه بخشی از مجموعه ابزارهای من با پیشوند 123 است؛ مجموعهای از ابزارهای کاربردی برای سادهتر کردن کار با Power BI، داده و محصولات نرمافزاری.
درباره من
من محمد قاهری هستم؛ فعال در حوزه تکنولوژی، محصول، داده، هوش تجاری، IoT، تلماتیکس و سیستمهای عملیاتی. در سالهای گذشته روی پروژههای مختلفی در زمینه داشبوردهای مدیریتی، Power BI، پلتفرمهای داده، سامانههای حملونقل هوشمند، سامانههای متصل و محصولات دادهمحور کار کردهام.
همچنین در حوزه آموزش Power BI، تحلیل داده و تفکر محصول دادهمحور فعالیت دارم و تلاش میکنم ابزارها و تجربههایی را که در پروژههای واقعی ساختهام، در اختیار جامعه فارسیزبان قرار دهم.
راههای ارتباطی:
- LinkedIn: https://www.linkedin.com/in/mohammadghaheri/
- GitHub: https://github.com/MohammadGhaheri
- YouTube: https://www.youtube.com/@MohammadGhaheri
دانلود فایل
برای دانلود آخرین نسخه دایمنشن تاریخ شمسی Power BI از لینک زیر استفاده کنید:
دانلود 123 Jalali Date Dim for Power BI از GitHub
اگر با GitHub آشنا نیستید، وارد لینک بالا شوید و از بخش Assets فایل ZIP نسخه آخر را دانلود کنید.
ابزار مکمل: اسلایسر تاریخ شمسی برای Power BI
اگر علاوه بر جدول تاریخ شمسی، به یک اسلایسر اختصاصی برای انتخاب تاریخ شمسی در صفحه گزارش نیاز دارید، میتوانید پروژه زیر را هم بررسی کنید:
123 Persian Calendar Slicer؛ اسلایسر اختصاصی تاریخ شمسی برای Power BI
این ویژوال کمک میکند کاربر نهایی بتواند بازه تاریخ را با تجربه تقویم شمسی انتخاب کند، درحالیکه دایمنشن تاریخ شمسی، زیرساخت تحلیلی مدل داده را فراهم میکند.
مشارکت در پروژه
اگر پیشنهادی برای بهبود این دایمنشن دارید، یا خطایی در مناسبتها، ستونها یا مستندات مشاهده کردید، خوشحال میشوم از طریق GitHub Issue یا Pull Request مشارکت کنید.
هدف من این است که این فایل به مرور به یک منبع تمیز، کاربردی و قابل اعتماد برای کاربران فارسیزبان Power BI تبدیل شود.
اگر این پروژه برای شما مفید بود، میتوانید آن را در GitHub ستارهدار کنید و با دیگر کاربران Power BI به اشتراک بگذارید.
```درباره محمد قاهری
محمد قاهری نجف آبادی علاقه مند به تحلیل داده، توسعه نرم افزار، خودروهای متصل و هوش مصنوعی
نوشتههای بیشتر از محمد قاهری
دیدگاهتان را بنویسید