در دنیای Power BI، یکی از قدرتمندترین ابزارها برای تحلیل دادههای زمانی، توابع Time Intelligence در DAX هستند. این توابع به شما امکان میدهند محاسباتی مانند Year-to-Date (YTD)، Quarter-to-Date (QTD)، Month-to-Date (MTD)، مقایسه سال به سال (YoY) و میانگینهای متحرک (Rolling Average) را به آسانی انجام دهید.
درک و استفاده درست از Time Intelligence به شما کمک میکند گزارشهای دقیق، پویا و تحلیلی بسازید که تصمیمگیری را تسهیل میکنند.
مقدمات Time Intelligence
Time Intelligence به شما امکان میدهد محاسباتی مرتبط با زمان انجام دهید، بدون نیاز به پیچیدگی در مدیریت تاریخها یا نوشتن فرمولهای طولانی.
پیشنیازها
- داشتن یک جدول تاریخ کامل (Date Table)
- مشخص کردن جدول تاریخ در Power BI به عنوان Mark as Date Table
- اطمینان از اینکه ستون تاریخ شما توالی کامل دارد (بدون روزهای خالی در تحلیل)
جدول تاریخ و تنظیمات اولیه
یک جدول تاریخ استاندارد شامل ستونهایی مانند:
- Date
- Year
- Month
- Quarter
- Week
- Month Name
- IsHoliday (اختیاری)
نمونه ایجاد جدول تاریخ در DAX
DateTable =
ADDCOLUMNS(
CALENDAR(DATE(2020,1,1), DATE(2025,12,31)),
"Year", YEAR([Date]),
"MonthNumber", MONTH([Date]),
"MonthName", FORMAT([Date],"MMMM"),
"Quarter", "Q" & FORMAT([Date],"Q")
)
- این جدول را در Power BI Mark as Date Table میکنیم.
- سپس روابط یکبهچند با جدول Fact برقرار میکنیم.
محاسبات YTD (Year-to-Date)
Year-to-Date مجموع مقادیر از ابتدای سال تا تاریخ مشخص را نشان میدهد.
فرمول YTD
SalesYTD :=
TOTALYTD(
SUM(Sales[SalesAmount]),
'DateTable'[Date]
)
مثال عملی
- فرض کنید میخواهیم فروش کل از ابتدای سال ۲۰۲۳ تا تاریخ فعلی را محاسبه کنیم.
- با این Measure، گزارش Power BI بهطور خودکار مقادیر را جمع میکند و شما میتوانید نمودار YTD بسازید.
محاسبات QTD (Quarter-to-Date)
Quarter-to-Date مجموع مقادیر از ابتدای فصل تا تاریخ مشخص را نشان میدهد.
فرمول QTD
SalesQTD :=
TOTALQTD(
SUM(Sales[SalesAmount]),
'DateTable'[Date]
)
مثال عملی
- فرض کنید میخواهیم مجموع فروش سهماهه جاری را تحلیل کنیم.
- این Measure بهطور خودکار دادههای همان فصل را جمع میکند.
محاسبات MTD (Month-to-Date)
Month-to-Date مجموع مقادیر از ابتدای ماه تا تاریخ مشخص را نشان میدهد.
فرمول MTD
SalesMTD :=
TOTALMTD(
SUM(Sales[SalesAmount]),
'DateTable'[Date]
)
مثال عملی
- تحلیل فروش ماه جاری
- مقایسه عملکرد روزانه تا تاریخ فعلی
مقایسه سال به سال (Year-over-Year)
Year-over-Year (YoY) تغییرات مقادیر نسبت به سال قبل را محاسبه میکند.
فرمول YoY
SalesYoY :=
CALCULATE(
SUM(Sales[SalesAmount]),
SAMEPERIODLASTYEAR('DateTable'[Date])
)
مثال عملی
- محاسبه درصد تغییر فروش نسبت به سال گذشته:
SalesYoYPercent :=
DIVIDE([SalesAmount] - [SalesYoY], [SalesYoY], 0)
مقایسه دوره به دوره (Period-over-Period)
- توابع دیگر مشابه YoY: DATEADD, PARALLELPERIOD, PREVIOUSYEAR, NEXTMONTH
- مثال مقایسه فروش ماه جاری با ماه قبل:
SalesLastMonth :=
CALCULATE(
SUM(Sales[SalesAmount]),
PREVIOUSMONTH('DateTable'[Date])
)
- مقایسه و محاسبه درصد تغییر:
SalesMoMPercent :=
DIVIDE([SalesAmount] - [SalesLastMonth], [SalesLastMonth], 0)
میانگین متحرک (Rolling Average)
محاسبه میانگین متحرک برای تحلیل روند فروش و کاهش نوسانات:
مثال ۳ ماهه
SalesRolling3Months :=
CALCULATE(
AVERAGEX(
DATESINPERIOD('DateTable'[Date], MAX('DateTable'[Date]), -3, MONTH),
SUM(Sales[SalesAmount])
)
)
- ۳ ماه گذشته تا تاریخ جاری
- کاربرد در نمودارهای روند و تحلیل پیشبینی
جدول مقایسه توابع Time Intelligence
| تابع | نوع | کاربرد | مثال |
|---|---|---|---|
| TOTALYTD | YTD | مجموع از ابتدای سال تا تاریخ | SalesYTD |
| TOTALQTD | QTD | مجموع از ابتدای فصل تا تاریخ | SalesQTD |
| TOTALMTD | MTD | مجموع از ابتدای ماه تا تاریخ | SalesMTD |
| SAMEPERIODLASTYEAR | YoY | مقایسه با سال قبل | SalesYoY |
| PREVIOUSMONTH | MoM | مقایسه با ماه قبل | SalesLastMonth |
| DATESINPERIOD | Rolling | میانگین/جمع متحرک | SalesRolling3Months |
نکات حرفهای و Best Practices
- همیشه یک جدول تاریخ کامل داشته باشید.
- Mark as Date Table را فراموش نکنید.
- از توابع TOTALYTD/TOTALQTD/TOTALMTD برای سادهسازی Measureها استفاده کنید.
- ترکیب CALCULATE + DATEADD/SAMEPERIODLASTYEAR انعطاف بیشتر برای تحلیل دورهای میدهد.
- برای مدلهای بزرگ، محاسبات Rolling را با DATESINPERIOD + SUMX/AVERAGEX بهینه کنید.
سناریوهای عملی
فروش YTD در سال ۲۰۲۳
- نمودار خطی نمایش مجموع فروش از ابتدای سال تا روز جاری
مقایسه فروش ماه جاری با ماه گذشته
- استفاده از PREVIOUSMONTH
- محاسبه درصد تغییر و نمایش KPI
تحلیل روند ۶ ماهه
- محاسبه میانگین متحرک ۶ ماهه
- کاهش نویز در دادهها و پیشبینی روند
مقایسه فصلی
- محاسبه QTD و مقایسه با فصل مشابه سال قبل
سوالات متداول (FAQ)
۱. آیا Time Intelligence فقط با جدول تاریخ کار میکند؟
بله، توابع Time Intelligence نیاز به یک جدول تاریخ کامل دارند.
۲. چرا نمودار YTD اشتباه نشان میدهد؟
احتمالاً جدول تاریخ درست Mark as Date Table نشده است یا ستون تاریخ ناقص است.
۳. تفاوت TOTALYTD و SAMEPERIODLASTYEAR چیست؟
- TOTALYTD: مجموع از ابتدای سال تا تاریخ
- SAMEPERIODLASTYEAR: مقایسه با همان بازه در سال قبل
۴. Rolling Average را چگونه برای هفته یا روز محاسبه کنیم؟
از تابع DATESINPERIOD با واحد WEEK یا DAY به جای MONTH استفاده کنید.
پیشنهاد مطالعه
- مرجع زبان DAX افزونه کوئری نویسی در اکسل و POWER BI
- مرجع زبان فرمول نویسی M در پاور کوئری
- طراحی داشبوردهای مدیریتی در Microsoft Power BI
تماس و مشاوره با لاندا
تحلیل زمان محور حرفهای با Power BI، اگر میخواهید گزارشهای پیشرفته زمانبندی شده، مقایسه سال به سال و تحلیل روند فروش بسازید، با تیم توسعه فناوری اطلاعات لاندا تماس ✆ آماده است:
✅ طراحی مدل داده حرفهای با جدول تاریخ کامل
✅ آموزش عملی توابع Time Intelligence در Power BI
✅ مشاوره و پیادهسازی پروژههای تحلیل داده

و سپس «افزودن به صفحه اصلی» ضربه بزنید
و سپس «افزودن به صفحه اصلی» ضربه بزنید

نظری داده نشده