4.9/5 - (34 امتیاز)

زبان فرمول نویسی DAX به صورت ویژه به منظور کار با مدل های داده با استفاده از عبارت ها(expressions) و فرمول ها طراحی شده است. از زبان DAX در محصولات متعدد مایکروسافت از قبیل Microsoft power BI، Microsoft Analysis Services و power pivot در اکسل مورد استفاده قرار می گیرد. در تمام محصولات گفته شده از یک موتور داخلی به نام tabular استفاده میشود.انواع توابع در زبان فرمول نویسی DAX

در مطالب قبل در مورد زبان فرمول نویسی DAX، مقدماتی در این مورد ارائه شد و شباهت های این زبان فرمول نویسی با زبان فرمول نویسی معمولی اکسل گفته شد. در این مطلب انواع توابع زبان DAX را بررسی میکنیم .

پیشنهاد مطالعه: 

در مطالب گذشته در زمینه زبان فرمول نویسی DAX اطلاعات بسیار مفیدی ارائه شده است که پیشنهاد میکنیم قبل از این مطلب، مطالعه کنید.

زبان فرمول نویسی و توابع DAX

زبان فرمول نویسی Dax و مفهوم ستون های محاسباتی در مدل داده اکسل

انواع توابع در زبان فرمول نویسی DAX

انواع توابع در زبان فرمول نویسی DAXتوابع در زبان DAX به گروههای بسیار شبیه به گروه های توابع در محیط اکسل، تقسیم میشوند. در این مطلب تلاش میکنیم به صورت جداگانه هرکدام از این گروهها و توابعی که در درون آنها قرار میگیرد را بررسی کنیم.

  • توابع جدول-مقدار DAX
  • توابع فیلتر DAX
  • توابع تجمیعی
  • توابع اطلاعات زمانی
  • توابع تاریخ و زمان
  • توابع اطلاعاتی
  • توابع منطقی
  • توابع ریاضی و مثلثاتی
  • توابع آماری
  • توابع متنی

توابع جدول-مقدار DAX

بسیاری از توابع DAX از جدول ها بعنوان ورودی، خروجی و یا هر دو استفاده میکنند. این توابع را در زبان فرمول نویسی DAX توابع جدول-مقدار می گویند. از آنجایی که جدول میتواند صرفا یک ستون داشته باشد، این گونه توابع میتوانند یک ستون را نیز بعنوان ورودی یا خروجی بپذیرند. توابع جدول مقدار DAX خود دارای سه زیر مجموعه توابع تجمیعی، توابع فیلترکننده و توابع اطلات زمانی است:

توابع تجمیعی DAX

این گونه توابع که شباهت زیادی به توابع پرکاربرد اکسل دارند بیشتر در امور محاسباتی مورد استفاده قرار می گیرند.

گروه توابع تجیمعی( Dax aggregation function)

4.9/5 - (34 امتیاز)
نام تابع DAX ترکیب توضیحات
Average AVERAGE(<column>) مقدار میانگین تمام اعداد موجود در یک ستون را برمیگرداند.
AVERAGEA

AVERAGEA(<column>)

 

مقدار میانگین تمام مقادیر، در یک ستون را برمیگرداند.(مقادیر متنی و غیر عددی را بعنوان صفر در نظر می گیرد)
AVERAGEX

AVERAGEX(<table>, <expression>)

 

COUNT

COUNT(<column>)

 

تعداد سلول های یک جدول را که حاوی عدد هستند، شمارش میکند
COUNTA

COUNTA(<column>)

 

تعداد سلول های موجود در یک ستون را که خالی نباشند را شمارش میکند.
COUNTAX

COUNTAX(<table>, <expression>)

 

زمانی که نتیجه بک عبارت بر روی یک جدول بررسی میشود، سلول های غیر خالی را شمارش میکند.
COUNTBLANK

COUNTBLANK(<column>)

 

تعداد سلول های خالی در یک ستون را شمارش میکند.
COUNTROWS

COUNTROWS(<table>)

 

تعداد ردیف ها را در یک جدول مشخص میکند.
COUNTX

COUNTX(<table>, <expression>)

 

Max

MAX(<column>)

 

بزرگترین مقدار عددی را در یک ستون برمیگرداند.
MAXA

MAXA(<column>)

 

بزرگترین مقدار در یک ستون بعنوان نتیجه برگردانده میشود. مقادیر منطقی و خالی نیز در نظر گرفته میشود.
MAXX MAXX(<table>, <expression>) یک عبارت را برای هرکدام از ردیف های یک جدول بررسی میکند و بزرگترین مقدار عددی را برمیگرداند.
MIN

MIN(<column>)

 

کوچکترین مقدار عددی در یک ستون را برمیگرداند. تابع Min مقادیر منطقی(true و false) و خالی را در نظر نمیگیرد.
MINA

MINA(<column>)

 

کوچکترین مقدار عددی در یک ستون را برمیگرداند. مقادیر منطقی(true و false) و خالی را در نظر میگیرد.
MINX

MINX(<table>, < expression>)

کوچکترین مقدار عددی را که از ارزیابی یک عبارت بر روی هرکدام از ردیف های یک جدول بدست می آید، برمیگرداند.
SUM

SUM(<column>)

 

مجموع تمام مقادیر یک ستون را به دست میدهد.
SUMX

SUMX(<table>, <expression>)

 

توابع فیلترکننده  DAX

یکی دیگر از زیرگروههای توابع جدول مقدار DAX، توابع فیلتر هستند.شما میتوانید از توابع Filter برای برگرداندن نوع خاصی از داده ها، جستجوی مقادیر در جدول های مرتبط شده و فیلتر کردن مقادیر مرتبط شده استفاده کنید. توابع فیلترکننده dax به شما امکان میدهند داده ها را به نحوی دستکاری کنید که محاسبات به شکل پویا انجام شوند.

گروه توابع فیلتر (Dax Filter Functions)

4.9/5 - (34 امتیاز)

نام تابع DAX

ترکیب

توضیحات

ALL

ALL(<table_or_column>)

تمام ردیف ها در یک جدول یا تمام مقادیر در یک ستون را برمیگرداند و هرگونه فیلتری را که قبلا اعمال شده باشد را در نظر نمیگیرد.
ALLEXCEPT

ALLEXCEPT(<table>,column1>,<column2>,…)

 

 تمام فیلترهایی را که بر روی جدول اعمال شده است باطل میکند، به جز فیلترهایی که بر روی ستون های خاص اعمال شده باشد.
BLANK

BLANK()

 

یک مقدار خالی را برمیگرداند.
CALCULATE

CALCULATE(<expression>,<filter1>,<filter2>…)

 

DISTINCT

DISTINCT(<column>)

 

یک جدول یک ستونه را که شامل مقادیر منحصر به فرد ستون مشخص شده است، بعنوان نتیجه برمیگرداند.
EARLIER

EARLIER(<column>, <number>)

 

EARLIEST

EARLIEST(<table_or_column>)

 

FILTER

FILTER(<table>,<filter>)

 

زیر مجموعه ای از یک جدول یا عبارت را بعنوان یک جدول مجزا برمیگرداند.
RELATEDTABLE

RELATEDTABLE(<table>)

 

VALUES

VALUES(<column>)

 

توابع Time Intelligence

این توابع جداول حاوی تاریخ را بعنوان ورودی، خروجی یا هر دو میپذیرند. DAX با استفاده از این نوع توابع، محاسباتی را انجام میدهد و در نتیجه شما را قادر می سازد مقادیر مختلف را در طول روزها، ماهها، فصول و سالهای مختلف با هم مقایسه کنید. شما میتوانید با استفاده از این گروه از توابع محاسباتی را بر پایه تقویم و تاریخ انجام دهید. شما میتوانید با ترکیب توابع تجمیعی گفته شده در بالا و این نوع توابع، مقایسه های بسیار معناداری را بر روی اطلاعات فروش، موجودی کالا و … در طول بازه های زمانی مختلف فراهم آورید.

توابع مربوط به تاریخ و زمان

این گونه توابع بسیار شبیه به توابع تاریخ و زمان اکسل هستند با این تفاوت که در اینجا، توابع تاریخ و زمان بر اساس فرمت داده datetime هستند.افرادی که با ابزار SQL server مایکروسافت کار کرده اند، به خوبی با این فرمت داده آشنایی دارند. 

گروه توابع تاریخ و زمان (Date&Time functions)

4.9/5 - (34 امتیاز)

نام تابع DAX

ترکیب

توضیحات

DATE

DATE(<year>, <month>, <day>)

تاریخ مشخص شده را در فرمت DATE-TIME برمیگرداند.
DATEDIFF

 

DATEVALUE

DATEVALUE(date_text)

یک تاریخ در فرمت متنی را به تاریخی در فرمت DATETIME تبدیل میکند.
DAY

DAY(<date>)

شماره روز مربوط به ماه را بعنوان نتیجه برمیگرداند.( عددی بین 1 تا 31)
EDATE

EDATE(<start_date>, <months>)

تعداد ماههای قبل یا بعد از تاریخ مشخص شده را بعنوان نتیجه برمیگرداند.
EMONTH

EOMONTH(<start_date>, <months>)

HOUR

HOUR(<datetime>)

مقدار ساعت را به صورت عددی بین 0 (12:00 A.M.) تا 23(11:00 P.M.) برمیگرداند.
MINUTE

MINUTE(<datetime>)

مقدار دقیقه را به صورت عددی بین 0 تا 59 برمیگرداند.
MONTH

MONTH(<datetime>)

مقدار ماه را به صورت عددی بین 1(ژانویه) تا 12(دسامبر) برمیگرداند.
NOW

NOW()

تاریخ و ساعت فعلی را در فرمت datetime برمیگرداند.
SECOND

SECOND(<time>)

ثانیه یک مقدار زمانی را به فرمت datetime برمیگرداند.
TIME

TIME(hour, minute, second)

ساعت، دقیقه و ثانیه را به صورت عددی می گیرد و تبدیل به فرمت datetime میکند.
TIMEVALUE

TIMEVALUE(time_text)

زمان به فرمت TEXT را تبدیل به زمان به فرمت datetime میکند.
TODAY

TODAY()

تاریخ فعلی را بعنوان نتیجه برمیگرداند.
WEEKDAY

WEEKDAY(<date>, <return_type>)

روز هفته تاریخ مشخص شده را به صورت عددی بین 1 تا 7 برمیگرداند. توجه داشته باشید که عدد 1 نشان دهنده روز یکشنبه و عدد 7 نشان دهنده روز شنبه است.
WEEKNUM

WEEKNUM(<date>, <return_type>)

YEAR

YEAR(<date>)

سال مربوط به تاریخ مشخص شده را به صورت یک عدد 4 رقمی نمایش میدهد. برای مثال 1999

توابع اطلاعاتی DAX

این نوع توابع، جدول یا ستونی را که بعنوان پارامتر به یک تابع دیگر ارائه شده است را بررسی میکند و مشخص میکند که آیا این مقدار مطابق با فرمت مورد انتظار هست یا خیر. برای مثال، تابع Iserror، در صورتی که مقدار مورد نظر شامل خطا باشد، مقدار true را برمیگرداند.

گروه توابع اطلاعاتی (Dax information functions)

4.9/5 - (34 امتیاز)

نام تابع DAX

ترکیب

توضیحات

CONTAINS

CONTAINS(<table>,

<column1>, <value1>,

<column2>, <value2>,…)

در صورتی که مقادیر مورد نظر در ستون های مشخص شده موجود باشد، مقدار TRUE برگردانده میشود، در غیر اینصورت FALSE برگردانده میشود.
ISBLANK

ISBLANK(<value>)

خالی بودن یک مقدار را بررسی میکند و مقدار TRUE و FALSE را بسته به نتیجه بدست آمده برمیگرداند.
ISERROR

ISERROR(<value>)

خطا بودن یک مقدار را بررسی میکند و TRUE و FALSE را بعنوان نتیجه برمیگرداند.
ISLOGICAL

ISLOGICAL(<value>)

بررسی میکند که آیا مقدار مشخص شده، مقدار منطقی(TRUE,FALSE) است یا خیر. در صورت مثبت بودن پاسخ مقدار TRUE و در غیر اینصورت FALSE  برگردانده میشود.
ISNONTEXT

ISNONTEXT(<value>)

TEXT نبودن مقدار مشخص شده را بررسی میکند. در صورت TEXT نبودن مقدار TRUE و در غیر اینصورت مقدار FALSE برگردانده میشود.
ISNUMBER

ISNUMBER(<value>)

در صورتی که مقدار مشخص شده  عدد باشد مقدار TRUE و در غیر اینصورت  FALSE را بعنوان نتیجه برمیگرداند.

توابع منطقی DAX

همه ما کم و بیش با توابع منطقی در محیط اکسل آشنا هستیم. توابع منطقی DAX نیز تا حدودی شبیه به اکسل عمل میکنند و اطلاعاتی را در مورد مقادیر یک عبارت برمیگردانند. برای مثال، تابع TRUE در زبان فرمول نویسی DAX، مشخص میکند که آیا عبارت مورد نظر شما یک مقدار صحیح(TRUE) را برمیگرداند یا خیر.

گروه توابع منطقی(Dax logical Functions)

4.9/5 - (34 امتیاز)
نام تابع DAX ترکیب توضیحات
IF

IF(logical_test>, <value_if_true> , value_if_false)

این تابع شرطی را که بعنوان پارامتر اول ارائه شده بررسی میکند و در صورت صحیح بودن پارامتر دوم و در غیر  اینصورت پارامتر سوم را برمیگرداند.
NOT

NOT(<logical>)

مقدار منطقی TRUE را به FALSE تغییر میدهد و برعکس
True

True()

مقدار منطقی true  را برمیگرداند.
False

False()

مقدار منطقی false را برمیگرداند.
OR

OR(<logical1>, <logical2>)

در صورتی که حداقل یکی ازشروط مشخص شده صحیح باشد مقدار TRUE را برمیگرداند و در صورتی که تمام آرگومان ها نادرست باشد، مقدار FALSE را برمیگرداند.
AND

AND(<logical1>, <logical2>)

در صورتی که هر دو پارامتر صحیح باشند مقدار true و در غیر اینصورت مقدار false برگردانده میشود.
SWITCH

SWITCH(<expression>, <value1>,

<result1>, <value2>,

<result2>…, <else>)

یک عبارت را در لیستی از مقادیر بررسی میکند و بر اساس مطابقت یافت شده، نتیجه از پیش تعیین شده را برمیگرداند. در صورتی که مقدار مطابق در لیست وجود نداشته باشد مقدار Else برگردانده میشود.
IFERROR

IFERROR(<value>,

<value_if_error>)

در صورت خطا بودن یک مقدار، به جای پیغام خطا، مقدار مشخص در پارامتر دوم رو برمیگرداند.

توابع ریاضیاتی و مثلثاتی DAX

توابع ریاضیاتی DAX نیز بسیار شبیه به توابع ریاضیاتی معمولی اکسل هستند و اینکه شما با این خانواده توابع در اکسل آشنا باشید میتواند شما را تا حد زیادی در یادگیری این گروه از توابع DAX یاری کند.

 توابع متنی DAX

توابع متنی DAX با جداول و ستون ها کار میکنند. با استفاده از این گروه از توابع DAX شما میتوانید بخشی از یک رشته را برگردانید، قسمتی از یک متن را در یک رشته جستجو کنید یا مقادیر string را به هم متصل کنید. با عبارت دیگر توابع متنی در زبان فرمول نویسی DAX برای دستکاری رشته های متنی طراحی شده است.

گروه توابع متنی (Dax text Functions)

4.9/5 - (34 امتیاز)
نام تابع DAX ترکیب توضیحات
BLANK

BLANK()

یک مقدار خالی را بعنوان نتیجه برمیگرداند.
CONCATENATE

CONCATENATE(<text1>, <text2>)

دو رشته متنی را به هم متصل میکند.
EXACT

EXACT(<text1>,<text2>)

دو رشته متنی را با هم مقایسه میکند و در صورتی که هر دو رشته دقیقا یکسان باشند، مقدار true و در غیر اینصورت مقدار false  برگردانده میشود. تابع Exact نسبت به حروف بزرگ و کوچک حساس است ولی تفاوت های مربوط به فرمت را در نظر نمیگیرد.
FIND

FIND(<find_text>,

<within_text>,

<start_num>, <NotFoundValue>)

جایگاه و محل قرارگیری یک رشته متنی را در میان رشته متنی دیگر نشان میدهد. این تابع نیز نسبت به حروف بزرگ و کوچک حساس است. پارامترهای Start num و notfindvalue اختیاری هستند.
FIXED

FIXED(<number>, <decimals>,

<no_commas>)

به تعداد اعشار مشخص شده، عدد مورد نظر را رند میکند و نتیجه را به فرمت text برمیگرداند. شما میتوانید مشخص کنید که آیا نتیجه با یا بدون کاما ظاهر شود.
FORMAT

FORMAT(<value>,

<format_string>)

یک مقدار را تبدیل به فرمت text میکند.
LEFT

LEFT(<text>, <num_chars>)

تعداد مشخصی از کاراکتر را از سمت چپ یک رشته متنی جدا کرده و برمیگرداند.
LEN

LEN(<text>)

تعداد کاراکترهای یک رشته متنی را برمیگرداند.
LOWER

LOWER(<text>)

تمام حروف یک رشته متنی را به حروف کوچک تبدیل میکند.
MID

MID(<text>, <start_num>,

<num_chars>)

رشته ای از کاراکترها را با توجه به نقطه شروع و پایانی که شما مشخص میکنید، از میان یک رشته متنی تفکیک میکند.
REPLACE

REPLACE(<old_text>,

<start_num>, <num_chars>,

<new_text>)

بر اساس تعداد کاراکترهایی که شما مشخص میکنید، بخشی از یک رشته متنی را با رشته ای دیگر جایگزین میکند.
REPT

REPT(<text>, <num_times>)

متن مورد نظر را به تعداد دفعات مشخصی تکرار میکند.
RIGHT

RIGHT(<text>, <num_chars>)

برعکس تابع left عمل میکند و تعداد مشخصی از کاراکترها را از سمت راست رشته متنی جدا کرده و برمیگرداند.
SEARCh

SEARCH(<search_text>,

<within_text>, <start_num>,

<NotFoundValue>)

SUBSTITUTE

SUBSTITUTE(<text>, <old_text>,

<new_text>, <instance_num>)

متن موجود را در یک رشته متنی با یک متن جدید جایگزین میکند.
Trim

TRIM(<text>)

تمام فاصله های موجود در یک متن را به جز یک فاصله بین کلمات حذف میکند.
UPPER

UPPER (<text>)

تمام کاراکترهای یک رشته متنی را به حروف بزرگ تبدیل میکند.

سخن پایانی 

چیزی که به سادگی از مطالب گفته شده در این آموزش، قابل درک است، این است که فرمول های DAX گروه بندی و مفهومی شبیه به فرمول های اکسل دارند و شما در صورتی که با توابع و فرمول های اکسل آشنا باشید به سادگی خواهید توانست توابع DAX را نیز فراگیرید. مطالبی گفته شده تاکنون، صرفا مباحثی نظری و به اصطلاح تئوریک بودند و شما را به صورت ذهنی با زبان DAX آشنا میکردند؛ اما زمانی که به صورت عملی شروع به استفاده از توابع DAX در فرمول های خود کنید، می بایست درک درستی از توابع و ترکیب فرمول ها داشته باشید. تلاش میکنیم در مطالب آینده با استفاده از آموزش های متنی و ویدئویی گام به گام این آمادگی را در شما ایجاد کنیم.

مشترک شدن
Notify of
guest

0 نظرات
نظردهی درون متنی
مشاهده همه نظرات