دستورات محاسباتی در DAX به شما اجازه میدهند تا محاسبات ریاضی، منطقی و رشتهای را روی دادههایتان انجام دهید. بیایید هر گروه را به طور جداگانه بررسی کنیم:دستور های DAX
1. محاسبات ریاضی:دستور های DAX
بیایید دسته “محاسبات ریاضی” در DAX را با جزئیات بیشتری بررسی کنیم. همانطور که پیشتر گفتیم، عملگرهای پایه مانند +
, -
, *
, /
, و %
در DAX به همان شکلی که در ریاضیات مرسوم است عمل میکنند. اما قدرت واقعی DAX در توابع ریاضی پیشرفتهاش نهفته است. در اینجا چند مورد مهم را با مثالهای کاربردی شرح میدهیم:دستور های DAX
ABS(number)
: مقدار مطلق یک عدد را برمیگرداند. این تابع هم برای اعداد مثبت و هم منفی، مقدار مثبت را برمیگرداند.- مثال:
ABS(-5)
مقدار5
را برمیگرداند.
- مثال:
ROUND(number, num_digits)
: یک عدد را به تعداد مشخصی رقم اعشار گرد میکند.- مثال:
ROUND(3.14159, 2)
مقدار3.14
را برمیگرداند. - مثال:
ROUND(1234.56, -1)
مقدار1230
را برمیگرداند. (گرد کردن به نزدیکترین ده)
- مثال:
POWER(number, power)
: یک عدد را به توان دیگری میرساند.- مثال:
POWER(2, 3)
مقدار8
(2 به توان 3) را برمیگرداند.
- مثال:
SQRT(number)
: ریشه دوم یک عدد را برمیگرداند.- مثال:
SQRT(25)
مقدار5
را برمیگرداند.
- مثال:
EXP(number)
: e (عدد نپر) را به توان یک عدد میرساند (توابع نمایی).- مثال:
EXP(1)
مقدار تقریبی2.71828
را برمیگرداند.
- مثال:
LOG(number, base)
: لگاریتم یک عدد را بر اساس یک پایه محاسبه میکند. اگر پایه مشخص نشود، لگاریتم طبیعی (با پایه e) محاسبه میشود.- مثال:
LOG(100, 10)
مقدار2
را برمیگرداند (لگاریتم 100 بر پایه 10). - مثال:
LOG(10)
مقدار تقریبی2.30259
را برمیگرداند (لگاریتم طبیعی 10).
- مثال:
TRUNC(number)
: قسمت اعشاری یک عدد را حذف میکند.- مثال:
TRUNC(3.14159)
مقدار3
را برمیگرداند.
- مثال:
MOD(number, divisor)
: باقیمانده تقسیم یک عدد بر عدد دیگری را برمیگرداند.- مثال:
MOD(10, 3)
مقدار1
را برمیگرداند (باقیمانده تقسیم 10 بر 3).
- مثال:
2. دستکاری رشتهها (متن):
بخش دستکاری رشتهها در DAX به شما امکان میدهد تا رشتههای متنی را دستکاری کنید و اطلاعات مفیدی از آنها استخراج کنید. در اینجا برخی از مهمترین توابع با مثالهای کاربردی آورده شده است:
CONCATENATE(text1, text2, ...)
: چندین رشته را به هم متصل میکند. شما میتوانید از کاما برای جدا کردن رشتهها استفاده کنید. توجه کنید که&
نیز میتواند به عنوان عملگر الحاق (concatenation) استفاده شود.- مثال:
CONCATENATE("Hello", " ", "World")
یا"Hello" & " " & "World"
هر دو “Hello World” را برمیگرداند.
- مثال:
LEFT(text, num_chars)
: تعداد مشخصی کاراکتر از سمت چپ یک رشته را برمیگرداند.- مثال:
LEFT("Microsoft", 4)
“Micro” را برمیگرداند.
- مثال:
RIGHT(text, num_chars)
: تعداد مشخصی کاراکتر از سمت راست یک رشته را برمیگرداند.- مثال:
RIGHT("Microsoft", 4)
“soft” را برمیگرداند.
- مثال:
MID(text, start_num, num_chars)
: بخشی از یک رشته را از یک موقعیت شروع مشخص، با طول مشخص برمیگرداند.- مثال:
MID("Microsoft", 5, 4)
“soft” را برمیگرداند.
- مثال:
LEN(text)
: طول یک رشته (تعداد کاراکترها) را برمیگرداند.- مثال:
LEN("Microsoft")
“10” را برمیگرداند.
- مثال:
LOWER(text)
: تمام حروف یک رشته را به حروف کوچک تبدیل میکند.- مثال:
LOWER("Microsoft")
“microsoft” را برمیگرداند.
- مثال:
UPPER(text)
: تمام حروف یک رشته را به حروف بزرگ تبدیل میکند.- مثال:
UPPER("Microsoft")
“MICROSOFT” را برمیگرداند.
- مثال:
TRIM(text)
: فضاهای خالی اضافی قبل و بعد از یک رشته را حذف میکند.- مثال:
TRIM(" Hello World ")
“Hello World” را برمیگرداند.
- مثال:
SUBSTITUTE(text, old_text, new_text, [instance_num])
: تمام وقوعهای یک زیررشته را با یک زیررشته دیگر جایگزین میکند.[instance_num]
(اختیاری) مشخص میکند که کدام وقوع جایگزین شود.- مثال:
SUBSTITUTE("apple apple apple", "apple", "orange")
“orange orange orange” را برمیگرداند. - مثال:
SUBSTITUTE("apple apple apple", "apple", "orange", 1)
“orange apple apple” را برمیگرداند. (فقط اولین وقوع جایگزین میشود).
- مثال:
FIND(text, search_text, [start_num])
: موقعیت اولین وقوع یک زیررشته در یک رشته را برمیگرداند.- مثال:
FIND("Microsoft", "soft")
“6” را برمیگرداند.
- مثال:
3. کار با تاریخ و زمان:
کار با تاریخ و زمان در DAX با استفاده از توابع مخصوص این حوزه انجام میشود. این توابع به شما امکان میدهند تا تاریخها و زمانها را دستکاری کرده، محاسبات انجام داده و اطلاعات مفیدی از آنها استخراج کنید. در زیر برخی از توابع مهم و کاربردی آورده شده است:
YEAR(datetime)
: سال یک تاریخ و زمان را برمیگرداند.- مثال:
YEAR(DATE(2024, 11, 24))
مقدار2024
را برمیگرداند.
- مثال:
MONTH(datetime)
: ماه یک تاریخ و زمان را برمیگرداند (به صورت عدد از 1 تا 12).- مثال:
MONTH(DATE(2024, 11, 24))
مقدار11
را برمیگرداند.
- مثال:
DAY(datetime)
: روز یک تاریخ و زمان را برمیگرداند (به صورت عدد از 1 تا 31).- مثال:
DAY(DATE(2024, 11, 24))
مقدار24
را برمیگرداند.
- مثال:
HOUR(datetime)
: ساعت یک تاریخ و زمان را برمیگرداند (به صورت عدد از 0 تا 23).- مثال:
HOUR(TIME(14, 30, 0))
مقدار14
را برمیگرداند.
- مثال:
MINUTE(datetime)
: دقیقه یک تاریخ و زمان را برمیگرداند (به صورت عدد از 0 تا 59).- مثال:
MINUTE(TIME(14, 30, 0))
مقدار30
را برمیگرداند.
- مثال:
SECOND(datetime)
: ثانیه یک تاریخ و زمان را برمیگرداند (به صورت عدد از 0 تا 59).- مثال:
SECOND(TIME(14, 30, 0))
مقدار0
را برمیگرداند.
- مثال:
DATE(year, month, day)
: یک تاریخ را از سال، ماه و روز ایجاد میکند.- مثال:
DATE(2024, 12, 25)
تاریخ 25 دسامبر 2024 را برمیگرداند.
- مثال:
TIME(hour, minute, second)
: یک زمان را از ساعت، دقیقه و ثانیه ایجاد میکند.- مثال:
TIME(10, 30, 15)
زمان 10:30:15 را برمیگرداند.
- مثال:
DATETIME(year, month, day, hour, minute, second)
: یک تاریخ و زمان را از سال، ماه، روز، ساعت، دقیقه و ثانیه ایجاد میکند.- مثال:
DATETIME(2024, 12, 25, 10, 30, 15)
تاریخ و زمان 25 دسامبر 2024، ساعت 10:30:15 را برمیگرداند.
- مثال:
DATEDIFF(start_date, end_date, interval)
: تفاوت بین دو تاریخ را بر حسب یک فاصله زمانی مشخص (مانند سال، ماه، روز، ساعت و …) محاسبه میکند.- مثال:
DATEDIFF(DATE(2023,1,1), DATE(2024,1,1), YEAR)
مقدار1
(یک سال) را برمیگرداند.
- مثال:
TODAY()
: تاریخ امروز را برمیگرداند.NOW()
: تاریخ و زمان فعلی را برمیگرداند.
4. توابع دیگر:دستور های DAX
بخش “توابع دیگر” در DAX بسیار گسترده است و شامل توابعی برای کار با انواع دادههای مختلف، منطق شرطی، و عملیات ریاضی پیشرفته میشود. برای توضیح کامل، نیاز به دسته بندی آنها داریم. در اینجا چند دسته مهم و مثالهایی از توابع پرکاربرد در هر دسته آورده شده است:
الف) توابع ریاضی و آماری:دستور های DAX
SUM(column)
: مجموع مقادیر در یک ستون را محاسبه میکند.AVERAGE(column)
: میانگین مقادیر در یک ستون را محاسبه میکند.MIN(column)
: کمترین مقدار در یک ستون را محاسبه میکند.MAX(column)
: بیشترین مقدار در یک ستون را محاسبه میکند.COUNT(column)
: تعداد مقادیر غیر تهی در یک ستون را محاسبه میکند.COUNTA(column)
: تعداد تمام مقادیر (اعم از تهی و غیر تهی) در یک ستون را محاسبه میکند.COUNTROWS(table)
: تعداد سطرهای یک جدول را محاسبه میکند.ROUND(number, num_digits)
: یک عدد را به تعداد مشخصی رقم اعشار گرد میکند.ABS(number)
: قدر مطلق یک عدد را برمیگرداند.
ب) توابع منطقی:دستور های DAX
IF(logical_test, value_if_true, value_if_false)
: شرطی را بررسی میکند و بر اساس نتیجه، یکی از دو مقدار را برمیگرداند.AND(logical1, logical2, ...)
: اگر همه شرایط منطقی درست باشند، مقدارTRUE
را برمیگرداند.OR(logical1, logical2, ...)
: اگر حداقل یکی از شرایط منطقی درست باشد، مقدارTRUE
را برمیگرداند.NOT(logical)
: مقدار منطقی را معکوس میکند (TRUE
را بهFALSE
و بالعکس).SWITCH(expression, value1, result1, value2, result2, ...)
: مقدار یک عبارت را با مقادیر مشخص مقایسه میکند و نتیجه متناظر را برمیگرداند.
ج) توابع تبدیل داده:دستور های DAX
VALUE(text)
: یک رشته متنی را به یک عدد تبدیل میکند.FORMAT(value, format_string)
: یک مقدار را با فرمت مشخصی نمایش میدهد.ISBLANK(value)
: بررسی میکند که آیا یک مقدار تهی است یا خیر.ISERROR(expression)
: بررسی میکند که آیا یک عبارت خطا تولید میکند یا خیر.
د) توابع مربوط به جدولها:دستور های DAX
RELATED(column)
: یک ستون از جدول مرتبط را به جدول فعلی مرتبط میکند.دستور های DAXFILTER(table, expression)
: سطرهای یک جدول را بر اساس یک عبارت فیلتر میکند.دستور های DAXCALCULATE(expression, filter1, filter2, ...)
: یک عبارت را با اعمال فیلترهای مشخص محاسبه میکند.دستور های DAX
این فقط نمونه کوچکی از توابع موجود در DAX است. برای آشنایی کامل با همه توابع و کاربردهای آنها، به مستندات رسمی Power BI یا DAX مراجعه کنید.
بدون دیدگاه