در دنیای 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

تابعنوعکاربردمثال
TOTALYTDYTDمجموع از ابتدای سال تا تاریخSalesYTD
TOTALQTDQTDمجموع از ابتدای فصل تا تاریخSalesQTD
TOTALMTDMTDمجموع از ابتدای ماه تا تاریخSalesMTD
SAMEPERIODLASTYEARYoYمقایسه با سال قبلSalesYoY
PREVIOUSMONTHMoMمقایسه با ماه قبلSalesLastMonth
DATESINPERIODRollingمیانگین/جمع متحرکSalesRolling3Months

نکات حرفه‌ای و Best Practices

  1. همیشه یک جدول تاریخ کامل داشته باشید.
  2. Mark as Date Table را فراموش نکنید.
  3. از توابع TOTALYTD/TOTALQTD/TOTALMTD برای ساده‌سازی Measureها استفاده کنید.
  4. ترکیب CALCULATE + DATEADD/SAMEPERIODLASTYEAR انعطاف بیشتر برای تحلیل دوره‌ای می‌دهد.
  5. برای مدل‌های بزرگ، محاسبات 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 استفاده کنید.

پیشنهاد مطالعه
  1. مرجع زبان DAX افزونه کوئری نویسی در اکسل و POWER BI
  2. مرجع زبان فرمول نویسی M در پاور کوئری
  3. طراحی داشبوردهای مدیریتی در Microsoft Power BI

تماس و مشاوره با لاندا

تحلیل زمان محور حرفه‌ای با Power BI، اگر می‌خواهید گزارش‌های پیشرفته زمان‌بندی شده، مقایسه سال به سال و تحلیل روند فروش بسازید، با تیم توسعه فناوری اطلاعات لاندا تماس  آماده است:

✅ طراحی مدل داده حرفه‌ای با جدول تاریخ کامل
✅ آموزش عملی توابع Time Intelligence در Power BI
✅ مشاوره و پیاده‌سازی پروژه‌های تحلیل داده

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

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *