توابع SUM و CALCULATE از مهمترین و پایهایترین توابع در زبان DAX برای تحلیل داده و انجام محاسبات پیچیده در ابزارهایی مانند Power BI استفاده میشوند.
SUM: تابعی ساده برای محاسبه مجموع
این تابع برای محاسبه مجموع مقادیر یک ستون خاص در یک جدول استفاده میشود. این تابع بدون نیاز به تغییر زمینه، محاسبات را انجام میدهد. به عنوان مثال، فرض کنید یک جدول Sales
دارید که شامل ستونهای Amount
، Category
و Region
است:
TotalSales = SUM(Sales[Amount])
این عبارت، مجموع مقادیر ستون Amount
را محاسبه میکند و نتیجه را در متغیر TotalSales
ذخیره میکند.
CALCULATE: تغییر زمینه برای محاسبات پیشرفته
این تابع یکی از قویترین توابع DAX است که به شما امکان میدهد زمینه محاسبات را تغییر دهید. CALCULATE میتواند همراه با توابع دیگری مانند SUM استفاده شود تا فیلترها و محاسبات پیچیدهتری اعمال شوند. به عنوان مثال، میتوانید مجموع فروش محصولات الکترونیکی را محاسبه کنید:
TotalElectronicsSales = CALCULATE(
SUM(Sales[Amount]),
Sales[Category] = "Electronics"
)
در این مثال، CALCULATE مجموع فروش محصولات الکترونیکی را محاسبه میکند.
ترکیب SUM
و CALCULATE
برای محاسبات پیچیدهتر
ترکیب SUM و CALCULATE به شما امکان میدهد محاسبات پیچیدهتری با اعمال فیلترهای چندگانه انجام دهید. به عنوان مثال، فرض کنید میخواهید مجموع فروش محصولات الکترونیکی را برای سال ۲۰۲۳ و فقط در مناطق شمال و شرق محاسبه کنید:
TotalSalesFiltered = CALCULATE(
SUM(Sales[Amount]),
FILTER(
Sales,
Sales[Category] = "Electronics" &&
Sales[Region] IN {"North", "East"} &&
Sales[Date] >= DATE(2023, 1, 1) &&
Sales[Date] <= DATE(2023, 12, 31)
)
)
در این مثال، CALCULATE
همراه با FILTER
استفاده شده است تا فقط دادههای مربوط به محصولات الکترونیکی، مناطق شمال و شرق، و دوره زمانی سال ۲۰۲۳ محاسبه شوند.
نکات و ترفندهای اضافه
استفاده از توابع زمانبندی
توابع زمانبندی در DAX مانند
DATESYTD
,DATESQTD
,DATESMTD
میتوانند همراه باCALCULATE
استفاده شوند تا محاسبات مبتنی بر زمان انجام شود. به عنوان مثال، مجموع فروش سال جاری (YTD):TotalSalesYTD = CALCULATE( SUM(Sales[Amount]), DATESYTD(Sales[Date]) )
استفاده از
ALL
برای حذف فیلترهاتابع
ALL
میتواند همراه باCALCULATE
استفاده شود تا تمامی فیلترهای یک ستون یا جدول خاص حذف شود. این ویژگی میتواند برای محاسبات درصدی و مقایسهای مفید باشد. به عنوان مثال:TotalSalesAllRegions = CALCULATE( SUM(Sales[Amount]), ALL(Sales[Region]) )
استفاده از
REMOVEFILTERS
برای حذف فیلترهای خاصاگر میخواهید فیلترهای خاصی را از محاسبات حذف کنید، میتوانید از
REMOVEFILTERS
استفاده کنید. به عنوان مثال:TotalSalesWithoutCategoryFilter = CALCULATE( SUM(Sales[Amount]), REMOVEFILTERS(Sales[Category]) )
استفاده از
KEEPFILTERS
برای حفظ فیلترهای موجودتابع
KEEPFILTERS
میتواند همراه باCALCULATE
استفاده شود تا فیلترهای موجود حفظ شوند و فیلترهای جدید اضافه شوند. به عنوان مثال:TotalSalesWithExtraFilter = CALCULATE( SUM(Sales[Amount]), KEEPFILTERS(Sales[Category] = "Electronics") )
نتیجهگیری
توابع SUM
و CALCULATE
ابزارهای قدرتمندی در DAX هستند که با استفاده از آنها میتوانید محاسبات ساده و پیچیده را به راحتی انجام دهید. با ترکیب این توابع، میتوانید به دادههای خود نگاهی دقیقتر و تحلیلهای جامعتری داشته باشید. استفاده از این توابع به شما امکان میدهد تصمیمات بهتری بر اساس دادههای دقیق و تجزیه و تحلیل شده بگیرید.
پرسشهای متداول (FAQ)
۱. تابع SUM چه کاربردی دارد؟
تابع SUM برای جمع کردن مقادیر عددی یک ستون استفاده میشود و محاسبات را بدون تغییر زمینه انجام میدهد.
۲. چرا از CALCULATE استفاده کنیم؟
CALCULATE زمینه محاسبات را تغییر میدهد و امکان اعمال فیلترهای پیچیده و چندگانه را فراهم میکند.
۳. چگونه میتوانم مجموع فروش در یک بازه زمانی مشخص را حساب کنم؟
میتوانید با ترکیب CALCULATE و توابع زمانبندی مانند DATESYTD یا استفاده از FILTER این کار را انجام دهید.
۴. چه زمانی باید از REMOVEFILTERS یا ALL استفاده کنم؟
برای حذف فیلترهای موجود در زمینه محاسبات، مثلاً برای مقایسه فروش کل بدون توجه به فیلترهای خاص، از این توابع استفاده کنید.
منابع و مقالات
برای اطلاعات بیشتر و مطالعه تخصصی میتوانید به منابع زیر مراجعه کنید:
تماس و مشاوره
اگر به دنبال یادگیری عمیقتر زبان DAX و توسعه مهارتهای تحلیل داده با Power BI هستید، شرکت توسعه فناوری اطلاعات لاندا آماده ارائه مشاوره تخصصی، آموزشهای عملی و پیادهسازی پروژههای BI برای سازمان شماست.
نظری داده نشده