DAX WIKI GUIDE V1.0

User Manual:

Open the PDF directly: View PDF PDF.
Page Count: 57

DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
1 | P a g e
dataMAKER a member of ICT24h TEAM
TUNG PHAM
ICT24H GROUP
|
CẨM NANG HƯỚNG DN S DNG
DAX VI POWER BI
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
2 | P a g e
dataMAKER a member of ICT24h TEAM
LI GII THIU
Chào các bn,
Ý tưởng v vic viết cm nang này xuất phát trong quá trình đào tạo cũng như triển khai các h
thng báo cáo BI ti các doanh nghiệp. DAX được xem như ng cụ đầy sc mạnh nhưng cũng
đưc ghi nhn món khó nhn nht khi vn dng vào vic xây dng các báo cáo. Theo quan
đim cá nhân ca tôi, DAX chính là trái tim ca Power BI cũng như Excel cũng không còn là Excel
na nếu mất đi nhng b hàm tính toán đầy sc mnh ca mình.
T đấy, tôi quyết định viết cẩm nang này theo hướng t tng nhóm hàm, cách thc hot
động, giá tr tr v, ví d thc tế,... theo cách trc quan nhất để bt c ai cũng có thể tham kho
đưc.
Những thông tin được thu thp và biên son trong cm nang này thật ra đã được ph biến trên
thế gii bng Anh ng, thông qua các công c tìm kiếm trên mạng Internet. Tuy nhiên, trên sở
nhng mc tiêu nhắm đến khi biên son nên công vic ca tôi là c gng h thng các nguồn
liu tham kho sao cho chúng có th tr nên d dùng nhất đối với người đọc, cũng như trình bày
chúng theo cách d hiu, d tiếp cn nhất để bt c ai quan tâm đến DAX đều th s dng
được mà không đòi hỏi phi có mt nn tng kiến thc sâu rng v BI.
Đây là một quá trình khó khăn và phc tp - nhất là đối với người chuyên v k thuật như tôi. Vì
thế, tôi rt mong nhn đưc s cm thông ca bạn đọc gn xa v nhng sai sót nếu có trong quá
trình biên soạn, cũng như chân thành đón nhn lng nghe mi ý kiến đóng góp xây dựng để
phiên bn kế tiếp ca cun cẩm nang này được hoàn thiện hơn.
Chúng tôi hy vng cm nang này s giúp ích các bn trong sut quá trình tiếp cận làm quen cũng
như khai thác sử dng DAX trong công tác phân tích, xây dng báo cáo ti doanh nghip.
Trân trng,
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
3 | P a g e
dataMAKER a member of ICT24h TEAM
TNG QUAN V DAX TRONG POWER BI
Khi làm quen vi Power BI, các bn s nghe nói nhiu v các hàm DAX, vic nm vng DAX s
giúp bn xây dng & kim soát rt tốt các trường d liệu trước khi tiến hành to các báo cáo.
Vậy DAX gì? Dùng làm & dùng như thế nào? Có s khác bitvi hàm trong Excel hay các
hàm MDX, các câu lnh T-SQL trong SQL,...
T các câu hỏi đấy, dataMAKER tng hp li thành nhng câu tr li ngn gn sau. Hy vng s
giúp các bn có cái nhìn tng quan v b hàm hu ích này.
1. DAX là gì?
bản DAX mt tp hp các hàm, toán t hng s th đưc s dng trong công thc
hoc biu thức để tính tr v mt hoc nhiu giá tr. Hiểu theo cách đơn giản hơn, DAX giúp
to thông tin mi t d liệu đã có trong data model của bn.
2. Ti sao DAX li quan trọng đến như vậy?
B hàm DAX rất đa dng, t nhng hàm tính toán bản đến nhng hàm h tr kh năng phân
tích giá tr theo thi gian, h tr to dng các mi liên kết giữa các trường thông tin các bng
d liu khác nhau s giúp bn gii những bài toán đa chiều phc tạp mà đôi khi việc x lý thông
qua các tính năng trên giao din không th thc hiện được hay phi s dụng đến ngôn ng M
phc tp không phù hợp cho người dùng không phi là chuyên gia IT.
Khi bn biết dùng DAX linh hot s giúp ích rt nhiu trong vic bóc tách d liu, tối ưu hiệu sut
h thng nên dùng DAX cho measure hay Calculated Column.
Tóm li, nếu đã dùng Power BI thì bạn phi hc hiu v DAX.
Li thế rt ln cho các bạn đã thành thục các hàm trong Excel, đây cu ni rt tốt để th
tiếp cn DAX.
3. Vy DAX trong Power BI có khác gì vi các hàm trong Excel?
Thư viện hàm DAX dựa trên thư vin hàm Excel, nhưng những thư viện này có nhiều điểm khác
bit. Phn này tóm tt những điểm khác bit và tương đồng gia các hàm Excel và các hàm DAX.
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
4 | P a g e
dataMAKER a member of ICT24h TEAM
- Nhiu hàm DAX có cùng tên và cùng hành vi chung vi các hàm Excel nhưng đã đưc
chnh sửa để nhn nhng kiu d liu đầu vào khác, và trong mt s trường hp, có th
tr v kiu d liu khác. Nhìn chung, bn s không dùng được hàm DAX trong công thc
Excel hoc không dùng đưc công thc Excel trong Power Pivot nếu không thc hin mt
vài chnh sa.
- Các hàm DAX không bao gi ly tham chiếu ô hoc phm vi làm tham chiếu, mà thay vào
đó các hàm DAX ly ct hoc bng làm tham chiếu.
- Hàm ngày và thi gian trong DAX tr v kiu d liệu datetime. Ngược li, các hàm ngày và
thi gian trong Excel tr v mt s nguyên biu th cho ngày dưới dng s -ri.
- Nhiu hàm DAX mi tr v mt bng cha các giá tr hoc thc hin các php tính da
trên d liệu đầu vào là mt bng cha các giá trị. Ngược li, Excel không có hàm nào tr
v bảng, nhưng một s hàm có th hoạt đng vi các mng. Kh năng dễ dàng tham chiếu
đến các ct và bng hoàn tt là mt tính năng mới trong Power Pivot.
- DAX cung cp các hàm tra cu mới, tương t như các hàm tra cu mng và vc-tơ trong
Excel. Tuy nhiên, các hàm DAX đòi hi phi thiết lp mi quan h gia các bng.
- D liu trong mt cột đưc d kiến là s luôn có cùng mt kiu d liu. Nếu d liu không
cùng mt kiu, thì DAX s thay đổi toàn b ct thành kiu d liu có th chứa đựng tt
nht tt c các giá tr.
4. Mun tìm hiu DAX tôi phi bắt đầu t đâu?
Để viết 1 hàm DAX bn cn tìm hiu v ý nghĩa, cú pháp, cách khai báo toán tử trong cú pháp để
cho ra kết qu vi ng cnh. bài này dataMAKER s không đi theo lối mòn lit tt c các
hàm, cú pháp mt cách cng nhc. Cách tiếp cn này ch làm cho bn cm thy s khô khan, cng
nhc trong cách viết hàm DAX. Trong nhng bài sau, dataMAKER s đi theo hướng viết DAX trong
mt ng cnh thc tế để t đó bạn d hình dung và áp dng vào data model ca mình.
Ngoài ra, các bn th tham kho thêm các bài t chi tiết cách thc vn hành da trên
nhng ví d c th do dataMAKER trích lọc để khai thác tốt hơn.
Trong tài liu này, dataMAKER s tp trung mô t các hàm thường dùng trước và s m rng v
sau cho các hàm DAX khác. Các bạn lưu ý cập nhật để có phiên bn mi nht.
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
5 | P a g e
dataMAKER a member of ICT24h TEAM
Ni dung
LI GII THIU .............................................................................................................................................. 2
TNG QUAN V DAX TRONG POWER BI ....................................................................................................... 3
1. DAX là gì? .............................................................................................................................................. 3
2. Ti sao DAX li quan trọng đến như vậy? ............................................................................................. 3
3. Vy DAX trong Power BI có khác gì vi các hàm trong Excel? .............................................................. 3
4. Mun tìm hiu DAX tôi phi bt đu t đâu? ....................................................................................... 4
TNG HP BM DAX .............................................................................................................................. 8
1. Nhóm hàm toán hc (Math & Trig Functions) ...................................................................................... 8
SUMX() .................................................................................................................................................. 8
RAND() & RANDBETWEEN() .................................................................................................................. 8
DIVIDE() ..................................................................................................................................................... 9
2. Nhóm hàm thng kê (Statistical Functions) ........................................................................................ 10
COUNT () .......................................................................................................................................... 11
COUNTA() ............................................................................................................................................ 11
COUNTBLANK() ................................................................................................................................... 12
COUNTROWS() .................................................................................................................................... 12
COUNTX() ............................................................................................................................................ 12
DISTINCTCOUNT() ............................................................................................................................... 13
CROSSJOIN() ........................................................................................................................................ 13
MIN() ................................................................................................................................................... 14
MINX() ................................................................................................................................................. 14
MAX() .................................................................................................................................................. 15
MAXX() ................................................................................................................................................ 15
RANKX() ............................................................................................................................................... 16
AVERAGE() ........................................................................................................................................... 17
AVERAGEX() ......................................................................................................................................... 17
ADDCOLUMNS() .................................................................................................................................. 18
SUMMARIZE() ...................................................................................................................................... 19
3. Nhóm hàm Thi gian (Date and Time Functions) ............................................................................... 20
DATE() ................................................................................................................................................. 20
DATEVALUE() ....................................................................................................................................... 20
TIMEVALUE() ....................................................................................................................................... 21
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
6 | P a g e
dataMAKER a member of ICT24h TEAM
TODAY() ............................................................................................................................................... 21
WEEKNUM() ........................................................................................................................................ 21
EDATE() ............................................................................................................................................... 22
EOMONTH() ........................................................................................................................................ 22
DAY() ................................................................................................................................................... 23
MONTH() ............................................................................................................................................. 23
YEAR() .................................................................................................................................................. 24
DATEADD() .......................................................................................................................................... 24
DATESBETWEEN()................................................................................................................................ 25
DATESINPERIOD() ................................................................................................................................ 26
DATESMTD() ........................................................................................................................................ 27
DATESMTD() ........................................................................................................................................ 27
DATESQTD()......................................................................................................................................... 28
DATESYTD() ......................................................................................................................................... 28
ENDOFMONTH() .................................................................................................................................. 29
ENDOFQUARTER() ............................................................................................................................... 29
ENDOFYEAR() ...................................................................................................................................... 30
FIRSTDAY() ........................................................................................................................................... 30
FIRSTNONBLANK() ............................................................................................................................... 31
LASTDAY() ............................................................................................................................................ 31
LASTNONBLANK() ................................................................................................................................ 32
NEXTDAY() ........................................................................................................................................... 32
NEXTMONTH() .................................................................................................................................... 33
NEXTQUARTER() .................................................................................................................................. 33
NEXTYEAR() ......................................................................................................................................... 34
PARALLELPERIOD() .............................................................................................................................. 34
PREVIOUSDAY() ................................................................................................................................... 35
PREVIOUSMONTH() ............................................................................................................................. 36
PREVIOUSQUARTER() .......................................................................................................................... 36
PREVIOUSYEAR() ................................................................................................................................. 37
SAMEPERIODLASTYEAR() .................................................................................................................... 37
STARTOFMONTH() .............................................................................................................................. 38
STARTOFQUARTER() ............................................................................................................................ 38
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
7 | P a g e
dataMAKER a member of ICT24h TEAM
STARTOFYEAR() ................................................................................................................................... 38
4. Nhóm hàm B lc (Filter Functions) ................................................................................................... 40
CALCULATE() ....................................................................................................................................... 40
ALL() .................................................................................................................................................... 41
ALLEXCEPT() ........................................................................................................................................ 41
ALLNOBLANKROW() ............................................................................................................................ 42
FILTER() ............................................................................................................................................... 43
DISTINCT() ........................................................................................................................................... 43
EARLIER() ............................................................................................................................................. 44
HASONEFILTER() .................................................................................................................................. 44
HASONEVALUE().................................................................................................................................. 45
VALUES () ............................................................................................................................................. 46
RELATED() ............................................................................................................................................ 46
5. Nhóm hàm Thông tin (Information Functions) ................................................................................... 47
CONTAINS() ............................................................................................................................................. 47
ISBLANK() ................................................................................................................................................ 47
ISERROR() ................................................................................................................................................ 48
ISNUMBER() ............................................................................................................................................ 48
ISTEXT() ................................................................................................................................................... 49
LOOKUPVALUE() ...................................................................................................................................... 50
6. Nhóm hàm Logic (Logical Functions) .................................................................................................. 51
AND() ....................................................................................................................................................... 51
OR() ......................................................................................................................................................... 51
IF() ........................................................................................................................................................... 52
SWITCH() ................................................................................................................................................. 53
NOT() ....................................................................................................................................................... 54
IFERROR() ................................................................................................................................................ 54
7. Nhóm hàm Text (Text Functions) ............................................................................................................ 56
BLANK() ................................................................................................................................................... 56
FIND() ...................................................................................................................................................... 56
CONCATENATE() ...................................................................................................................................... 57
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
8 | P a g e
dataMAKER a member of ICT24h TEAM
TNG HP B HÀM DAX
1. Nhóm hàm toán hc (Math & Trig Functions)
Mô t: Các hàm toán hc trong DAX tương tự như các hàm toán học và lượng giác ca Excel. Tuy
nhiên, có mt s khác bit trong các kiu d liu s đưc các hàm DAX s dng.
SUMX()
Mục đích: Tính tng tng dòng trên bng tham chiếu dựa vào phương thức tính toán được khai
báo.
Cú pháp: SUMX(<table>, <expression>)
Tham s
Mô t
table
khai báo thông tin bng cha d liu cn tính toán
expression
khai báo các phương thức tính toán, có th kết hp các hàm filter
Giá tr tr v: giá tr thp phân
VD: thc hin tính toán Tng tin da trên 2 thông tin: S ng & Giá bán trong bng Banhang:
SUMX(‘Banhang’,
‘Banhang'[Số ợng] * ‘Banhang'[Giá bán])
RAND() & RANDBETWEEN()
Mục đích đều dùng để to mt giá tr ngẫu nhiên, thường dùng trong trường hp cn gi lp giá
tr để th nghim các tính toán. Vì 2 hàm này có mục đích sử dụng như nhau & không khác bit
nhau nhiu v cú pháp nên dataMAKER s gom chung như sau:
RAND()
Mục đích: dùng để to giá tr ngu nhiên trong khong giá tr cho phép: >=0 && <1.
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
9 | P a g e
dataMAKER a member of ICT24h TEAM
Cú pháp: RAND()
Kết qu tr v: s thp phân.
VD: RAND()
-> Kết qu tr v s ss ngu nhiên trong dãy s t 0 ->1.
RANDBETWEEN()
Mục đích: dùng to giá tr ngu nhiên trong khong giá tr được người dùng nhp liu.
Cú pháp: RANDBETWEEN(value 1, value 2)
Kết qu tr v: dng s.
VD: RANDBETWEEN(1,100)
-> Kết qu tr v s ss ngu nhiên trong dãy s t 1 -> 100.
Kh năng mở rng:
Hai hàm trên có th dùng kết hp vi các công thc tính toán hay các hàm khác, thm chí bn có
th kết hp 2 hàm này vi nhau.
DIVIDE()
Mục đích: thc hin phép chia
Cú pháp: DIVIDE(<numerator>,<denominator>[,<alternateresult>])
Tham s
Mô t
numerator
Khai báo t s ca hàm
denominator
Khai báo mu s cn chia
alternateresult
Giá tr tr v trong trường hp chia cho giá tr 0, nếu không khai
báo giá tr tr v mặc định là BLANK()
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
10 | P a g e
dataMAKER a member of ICT24h TEAM
Kết qu tr v: s thp phân
VD: DIVIDE(5,2)
-> Kết qu tr v: 2.5
ROUND()
Mục đích: hàm thc hin làm tròn giá tr.
Cú pháp: ROUND(<number>, <num_digits>)
Tham s
Mô t
number
Khai báo s bn mun làm mun thc hin vic làm tròn giá tr.
num_digits
Được linh hot khai báo tùy theo giá tr mong muốn như sau:
Giá tr > 0: làm tròn giá tr thp phân
Giá tr = 0: làm tròn đến giá tr gn nht
Giá tr < 0: làm tròn theo giá tr đầu tiên
Kết qu tr v: s đã đưc làm tròn theo tham s num_digits.
VD1: Trường hp giá tr tham s truyn vào > 0:
ROUND(29.09, 1)
-> Kết qu tr v: 29.10
VD2: Trường hp giá tr tham s truyn vào = 0
ROUND(29.09, 0)
-> Kết qu tr v: 29.00
VD3: Trường hp giá tr tham s truyn vào < 0
ROUND(29.09, -1)
-> Kết qu tr v: 30.00
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
11 | P a g e
dataMAKER a member of ICT24h TEAM
2. Nhóm hàm thng kê (Statistical Functions)
Mô t: nhóm hàm này thc hin các kết hp. Ngoài vic to tng và s trung bình, hoc tìm các
giá tr ti thiu tối đa, bạn ng thể lc cột trước khi tng hp hoc to các tp hp da
trên các bng có liên quan.
COUNT()
Mục đích: đếm s ô trong ct cha giá tr s.
Cú pháp: COUNT(<column>)
Tham s
Mô t
column
Khai báo ct cha giá tr s cn thc hiện đếm.
Giá tr tr v: tr v s dòng đếm được vi kiểu định dng s nguyên.
Ví d: Đếm giá tr s trong ct Ngày bán:
COUNT(‘Sale Datamaker'[Ngay ban])
COUNTA()
Mục đích: đếm s lượng ô trong ct không trng. Không ch đếm các hàng cha giá tr s, mà còn
bao gồm văn bản, ngày tháng và các giá tr logic.
Cú pháp: COUNTA(<column>)
Tham s
Mô t
column
Khai báo ct cha giá tr s cn thc hiện đếm.
Giá tr tr v: tr v s dòng đếm được vi kiểu định dng s nguyên.
Ví d: Đếm s sn phm trong ct Sn phm không đếm trường rng.
COUNTA(‘Sale Datamaker'[San pham])
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
12 | P a g e
dataMAKER a member of ICT24h TEAM
COUNTBLANK()
Mục đích: đếm s lượng ô trng trong ct ch định.
Cú pháp: COUNTBLANK(<column>)
Tham s
Mô t
column
Khai báo ct cha giá tr s cn thc hiện đếm.
Giá tr tr v: tr v s dòng đếm được vi kiểu định dng s nguyên. Nếu không dòng nào
thỏa điều kin s tr v giá tr rng.
Ví d: Đếm s sn phm trong ct Sn phm đếm trường rng.
COUNTBLANK(‘Sale Datamaker'[San pham])
COUNTROWS()
Mục đích: đếm s lượng dòng có giá tr trong ct ch định.
Cú pháp: COUNTROWS(<table>)
Tham s
Mô t
table
Khai báo bng cha dòng có giá tr s cn thc hiện đếm.
Giá tr tr v: tr v s dòng đếm được vi kiểu định dng s nguyên.
Ví d: Đếm s sn phm trong bng SALE:
COUNTROWS(‘Sale Datamaker')
COUNTX()
Mục đích: đếm s lượng dòng có giá tr trong ct ch định.
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
13 | P a g e
dataMAKER a member of ICT24h TEAM
Cú pháp: COUNTX(<table>, <expression>)
Tham s
Mô t
table
Khai báo bng cha dòng có giá tr s cn thc hiện đếm.
expression
Khai báo biu thc tr v nhóm giá tr cha giá tr cn
đếm.
Giá tr tr v: tr v s dòng đếm được.
Ví d: Đếm tt c các dòng sn phẩm có định nghĩa giá bán:
COUNTX(‘Sale Datamaker’, [Gia ban])
DISTINCTCOUNT()
Mục đích: đếm s lượng ô có giá tr trong ct ch định, ch đếm ct có giá tr khác nhau.
Cú pháp: DISTINCTCOUNT(<column>)
Tham s
Mô t
column
Khai báo ct cha giá tr s cn thc hiện đếm.
Giá tr tr v: tr v s dòng đếm các ct có giá tr duy nht.
Ví d: Đếm s sn phm trong ct Sn phm không đếm sn phm cùng tên.
DISTINCTCOUNT(‘Sale Datamaker'[San pham])
CROSSJOIN()
Mục đích: to bng mi có giá tr t các ct trong các bng ch định.
Cú pháp: CROSSJOIN(<table>,<table>[,<table>]…)
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
14 | P a g e
dataMAKER a member of ICT24h TEAM
Tham s
Mô t
table
Khai báo các bng dùng to bng mi
Giá tr tr v: tr v bng có giá tr t các bng ch định.
d: Tôi to bng mi t 2 bng Loi hình áp dng (SMB, Enterprise) bng Tên sn phm
(Office 365..)
CROSSJOIN(Business_Type, Product_Name)
MIN()
Mục đích: tr v giá tr nh nht trong ct, không áp dng cho giá tr logic hoặc văn bản.
Cú pháp: MIN(<column>)
Tham s
Mô t
column
Khai báo ct mun tìm giá tr nh nht.
Giá tr tr v: tr v giá tr nh nht trong ct ch định.
Ví d: tôi thc hin tìm giá tr doanh thu thp nht:
MIN(‘Sale Datamaker'[Doanh thu])
MINX()
Mục đích: tr v giá tr s nh nht có kết qu t việc đánh giá mt biu thc cho mi dòng ca
mt bng.
Cú pháp: MINX(<table>, <expression>)
Tham s
Mô t
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
15 | P a g e
dataMAKER a member of ICT24h TEAM
table
Khai báo bng mun tìm giá tr nh nht.
expression
Thông tin biu thc cn thc hin kim tra trên tng dòng ca
bng
Giá tr tr v: tr v dòng có giá tr nh nht.
Ví d: tôi thc hin tìm giá tr li nhun thp nhất trong năm 2017:
MINX(
FILTER(‘Sale Datamaker'[Nam] =2017),[Loi nhuan])
MAX()
Mục đích: tr v giá tr ln nht trong ct, không áp dng cho giá tr logic hoặc văn bản.
Cú pháp: MAX (<column>)
Tham s
Mô t
column
Khai báo ct mun tìm giá tr ln nht.
Giá tr tr v: tr v giá tr ln nht trong ct ch định.
Ví d: tôi thc hin tìm giá tr doanh thu ln nht:
MAX(‘Sale Datamaker'[Doanh thu])
MAXX()
Mục đích: tr v giá tr s nh ln có kết qu t việc đánh giá một biu thc cho mi dòng ca
mt bng.
Cú pháp: MAXX(<table>, <expression>)
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
16 | P a g e
dataMAKER a member of ICT24h TEAM
Tham s
Mô t
table
Khai báo bng mun tìm giá tr ln nht.
expression
Thông tin biu thc cn thc hin kim tra trên tng dòng ca
bng
Giá tr tr v: tr v dòng có giá tr ln nht.
Ví d: tôi thc hin tìm giá tr li nhun ln nhất trong năm 2017:
MAXX(
FILTER(‘Sale Datamaker'[Nam] =2017),[Loi nhuan])
RANKX()
Mc đích: tr v th t xếp hng ca mt s trong danh sách các s cho mi dòng trong bng.
Cú pháp: RANKX(<table>, <expression>[,<value>[,<order>[,<ties>]]])
Tham s
Mô t
table
Bt k biu thc DAX nào tr v mt bng d liu biu thc
được đánh giá.
expression
Bt k biu thc DAX nào tr v mt giá tr vô hướng. Biu thc
được đánh giá cho mỗi hàng ca bảng, để to ra tt c các giá
tr có th có để xếp hng
value
Bt k biu thc DAX nào tr v mt giá tr vô hướng duy nht có
th hạng được tìm thy.
Khi tham s giá tr b b qua, giá tr ca biu thc ti dòng hin ti
đưc s dng thay thế.
order
Giá tr ch định cách xếp hng giá tr, t thấp đến cao hoc cao
đến thp.
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
17 | P a g e
dataMAKER a member of ICT24h TEAM
Giá tr tr v: danh sách th t xếp hng.
Ví d: tôi mun xếp hng khách hàng theo li nhun bán hàng theo th t t cao đến thp:
RANKX(
ALL(‘Sale Datamaker'[Khach hang], [Loi nhuan], ,Desc)
AVERAGE()
Mục đích: tr v giá tr trung bình (trung bình s hc) ca tt c các s trong mt ct.
Cú pháp: AVERAGE(<column>])
Tham s
Mô t
column
Ct cha các s mà bn mun tính trung bình.
Giá tr tr v: giá tr trung bình các s trong ct ch định.
Ví d: tôi mun tính giá tr trung bình doanh thu bán hàng:
AVERAGE(‘Sale Datamaker'[Doanh thu])
AVERAGEX()
Mục đích: tính trung bình (trung bình s hc) ca mt tp hp các biu thức được đánh giá trên
mt bng.
Cú pháp: AVERAGEX(<table>], <expression>)
Tham s
Mô t
table
Khai báo bng cn thc hin tính trung bình
expression
Khai báo biu thc cần đánh giá trên bng.
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
18 | P a g e
dataMAKER a member of ICT24h TEAM
Giá tr tr v: giá tr trung bình theo kiu thp phân.
Ví d: tôi mun tính giá tr trung bình ca Giá bán vi Thuế áp dng theo tng mt hàng:
AVERAGEX(‘Sale Datamaker',
‘Sale Datamaker'[Gia ban] + ‘Sale Datamaker'[VAT])
ADDCOLUMNS()
Mục đích: thêm ct vào bảng được ch định, ct thêm vào thgiá tr tham chiếu t ct khác
hoc mt biu thc tính toán to giá tr theo dòng.
Cú pháp: ADDCOLUMNS(<table>,<name>,<expression>[,<name>,<expression>]…)
Tham s
Mô t
table
Khai báo bng cn thêm ct.
name
Khai báo tên ct mi.
expression
Khai báo biu thc tính toán to giá tr theo tng dòng.
Giá tr tr v: ct mới được thêm vào bng ch định.
Ví d: tôi mun thêm ct giá gc và thuế vào bng Sale Datamaker:
ADDCOLUMNS(‘Sale Datamaker',
“Giá gốc”,
SUMX(
RELATEDTABLE(‘BangGia Datamaker'), ‘BangGia Datamaker'[Gia goc])
“Thuế”,
SUMX(
RELATEDTABLE(‘BangGia Datamaker'), ‘BangGia Datamaker'[VAT])
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
19 | P a g e
dataMAKER a member of ICT24h TEAM
SUMMARIZE()
Mục đích: Tr v bng tóm tt cho tng s đưc yêu cu trên mt nhóm các nhóm.
Cú pháp: SUMMARIZE(<table>, <groupBy_columnName>[,<groupBy_columnName>]…
[,<name>,<expression>]…)
Tham s
Mô t
table
Khai báo bng cn thêm ct.
groupBy_columnName
Tên đủ điu kin ca ct hin tại được s dụng để to nhóm tóm
tt da trên các giá tr đưc tìm thấy trong đó. Tham số này không
th là mt biu thc.
name
Tên được đặt cho ct mi, kèm theo du ngoc kép.
expression
Bt k biu thc DAX nào tr v mt giá tr hướng duy nht,
trong đó biểu thc được đánh giá nhiều ln (theo mi ng / ng
cnh).
Giá tr tr v: bng có các cột được chọn cho các đối s groupBy_columnNamecác ct tóm tt
đưc to bởi các đối s tên.
Ví d: tôi mun to bng tóm tt doanh thu bán hàng và giá tr giảm giá bán hàng được nhóm li
theo năm bán hàng và theo nhóm sn phm thc tế bán:
SUMMARIZE(‘Thongke Datamaker',
‘Date Datamaker[Nam],
“Product Datamaker[Nhom san pham],
Doanh thu”, SUMX(
RELATEDTABLE(‘Sale Datamaker'), ‘Sale Datamaker'[Doanh thu])
Giá gim”, SUMX(
RELATEDTABLE(‘Sale Datamaker'), ‘Sale Datamaker'[Giá gim]))
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
20 | P a g e
dataMAKER a member of ICT24h TEAM
3. Nhóm hàm Thi gian (Date and Time Functions)
t: Nhóm hàm thi gian khá phc tạp được s dng nhiu nht trong phân tích d liu.
Nhiu hàm ngày tháng thi gian trong DAX rt ging vi hàm ngày tháng thi gian ca Excel.
Tuy nhiên, các hàm DAX s dng kiu d liu datetime và th ly các giá tr t mt cột làm đối
số. DAX cũng bao gồm mt tp các chức năng thông minh phân ch v thi gian cho phép bn
thao tác d liu bng các khong thi gian, bao gồm ngày, tháng, quý năm, sau đó xây dng
và so sánh các phép tính trong các chu k thi gian.
Trong nhóm này, tôi s đồng thi gom chung các hàm v Thời gian bản (Date & Time) ng
nhóm hàm đặc bit (Time Intelligence).
DATE()
Mục đích: to ra ngày da trên tham s năm/tháng/ngày được truyền vào theo định dng
datetime chun.
Cú pháp: DATE(<year>, <month>, <day>)
Giá tr tr v: tr v ngày c th.
Ví d: Tôi mun to ngày 29/09/1988
DATE(1988,9,29)
DATEVALUE()
Mục đích: chuyển định dng date chun cho ct có giá tr văn bản.
Cú pháp: DATEVALUE(date_text)
Giá tr tr v: tr v ngày với định dng date chun.
d: Tôi ct thời gian (Date) được Power BI nhn din theo định dng text khi import, thc
hin chuyển đổi định dạng như sau:
DATEVALUE(‘Date Datamaker’)
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
21 | P a g e
dataMAKER a member of ICT24h TEAM
TIMEVALUE()
Mục đích: chuyển định dng time chun cho ct có giá tr văn bản.
Cú pháp: TIMEVALUE(time_text)
Giá tr tr v: tr v thi gian với định dng time chun.
Ví d: Tôi mun tr v đúng định dng time chun cho chui sau:
TIMEVALUE(“12:49:55”)
TODAY()
Mục đích: ly giá tr ngày hin hành.
Cú pháp: TODAY()
Giá tr tr v: tr v ngày hin hành.
Ví d: Tôi mun biết tui của người có năm sinh 1980 ở thi đim hin ti:
YEAR(TODAY()) - 1980
WEEKNUM()
Mục đích: ly thông tin s tun dựa trên thông tin ngày đưa vào.
Cú pháp: WEEKNUM(<date>, <return_type>)
Tham s
Mô t
date
Khai báo ngày cn ly thông tin s tun
return_type
Có 2 kiu sau:
1: ngày đầu tiên ca tun làm vic là Ch Nht
2: ngày đầu tiên ca tun làm vic là Th Hai
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
22 | P a g e
dataMAKER a member of ICT24h TEAM
Giá tr tr v: s tun thc tế ca ngày ch định.
Ví d: Tôi mun biết s tun theo các ngày bán hàng:
WEEKNUM(‘Sale Datamaker’[Ngay ban])
EDATE()
Mục đích: tr v ngày vi s tháng được ch định trước. S dụng EDATE để tính ngày đáo hn
hoặc ngày đến hạn rơi vào cùng ngày trong tháng ch định.
Cú pháp: EDATE(<start_date>, <months>)
Tham s
Mô t
start_date
Khai báo ngày ch định cn tham chiếu
months
Khai báo s tháng cần xác định
Giá tr tr v: giá tr theo định dng ngày.
d: Tôi ngày bán hàng như sau: 01/01/2017 -> 12/31/2017, vy hàm sau s tr v khong
thi gian sau: 06/01/2017 -> 31/05/2018
EDATE(‘Sale Datamaker’[Ngay ban],5)
EOMONTH()
Mục đích: tr v ngày theo đnh dng ngày gi ca ngày cui cùng của tháng được ch định. S
dụng EOMONTH để tính ngày đáo hạn hoặc ngày đến hạn rơi vào ngày cuối cùng ca tháng.
Cú pháp: EOMONTH(<start_date>, <months>)
Tham s
Mô t
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
23 | P a g e
dataMAKER a member of ICT24h TEAM
start_date
Khai báo ngày cn cn tham chiếu
months
Khai báo s tháng cần xác định
Giá tr tr v: giá tr ngày cui tháng theo định dng ngày.
Ví d: Tôi có ngày bán hàng như sau: 01/01/2017 -> 12/31/2017, vy hàm sau s ch tr v ngày
cui tháng trong tng tháng: 04/30/2017 -> 31/05/2018
EOMONTH(‘Sale Datamaker’[Ngay ban],3)
DAY()
Mục đích: tr v giá tr ngày ca ngày ch định, giá tr tr v trong khong thi gian t ngày 01
đến 31. 12.
Cú pháp: DAY(<date>)
Tham s
Mô t
date
Khai báo ngày cn ly giá tr năm
Giá tr tr v: giá tr là s nguyên trong khong thi gian t ngày 01 đến 31.
Ví d: Hàm sau tr v ngày 07:
DAY(“05,07,2018”)
MONTH()
Mục đích: tr v giá tr tháng ca ngày ch định, giá tr tr v trong khong thi gian t tháng 01
đến tháng 12.
Cú pháp: MONTH(<date>)
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
24 | P a g e
dataMAKER a member of ICT24h TEAM
Tham s
Mô t
date
Khai báo ngày cn ly giá tr năm
Giá tr tr v: giá tr là s nguyên trong khong thi gian t tháng 01 đến tháng 12
Ví d: Hàm sau tr v tháng 05:
MONTH(“05,07,2018”)
YEAR()
Mục đích: tr v giá tr năm của ngày ch định, giá tr tr v trong khong thi gian t năm 1900
đến 9999.
Cú pháp: YEAR(<date>)
Tham s
Mô t
date
Khai báo ngày cn ly giá tr năm
Giá tr tr v: giá tr là s nguyên trong khong thi gian t 1900 đến 9999.
Ví d: Hàm sau tr v năm 2018:
YEAR(05,07,2018”)
DATEADD()
Mục đích: tr v mt bng có cha giá tr theo định dng ngày chun, giá tr s tăng hoc gim
da vào tham s number_of_intervals được đưa vào theo ngữ thc tế.
Cú pháp: DATEADD(<dates>, <number_of_intervals>, <interval>)
Tham s
Mô t
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
25 | P a g e
dataMAKER a member of ICT24h TEAM
date
Khai báo ct cha giá tr ngày
number_of_intervals
Khai o s nguyên xác định s ng khong thời gian đ cng
vào hoc tr đi
interval
Khong thi gian muốn thay đổi ngày tháng, h tr theo: year,
quarter, month, day
Giá tr tr v: mt bng có cha mt ct các giá tr ngày tháng.
Ví d: Hàm sau tr v ngày/tháng/năm của năm trước ngày trong ng cnh hin ti:
DATEADD(‘Sale Datamaker’[Ngay ban], -1, YEAR)
DATESBETWEEN()
Mục đích: Tr v bng cha ct ngày bắt đầu bng start_date và tiếp tục cho đến end_date.
Cú pháp: DATESBETWEEN(<dates>, <start_date>, <end_date>)
Tham s
Mô t
dates
Khai báo ct ngày cn tham chiếu
start_date
Khai báo biu thc cho ngày bắt đầu
end_date
Khai báo biu thc cho ngày kết thúc
Giá tr tr v: mt bng có cha mt ct các giá tr ngày tháng.
Ví d: Tôi thc hin tính doanh s bán hàng trong 3 tháng đầu năm 2018:
CALCULATE(
SUM(‘Sale Datamaker’[Doanh thu]),
DATESBETWEEN(‘Sale Datamaker’[Ngay ban],
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
26 | P a g e
dataMAKER a member of ICT24h TEAM
DATE(2018,1,1),
DATE(2018,3,31)))
DATESINPERIOD()
Mục đích: tr v mt bng cha giá tr theo định dng ngày chun ngày bắt đầu bng
start_date giá tr s tăng hoặc gim da vào tham s number_of_intervals được đưa vào theo
ng thc tế.
Cú pháp: DATESINPERIOD(<dates>,<start_date>,<number_of_intervals>,<interval>)
Tham s
Mô t
date
Khai báo ct cha giá tr ngày
start_date
Khai báo biu thc cho ngày bắt đầu
number_of_intervals
Khai o s nguyên xác định s ng khong thời gian để cng
vào hoc tr đi
interval
Khong thi gian muốn thay đổi ngày tháng, h tr theo: year,
quarter, month, day
Giá tr tr v: mt bng có cha mt ct các giá tr ngày tháng.
d: Ngày cht k kế toán ca công ty 31/5/2018, tôi mun tính doanh s bán hàng ca 31
ngày trong tháng cui k:
CALCULATE(
SUM(‘Sale Datamaker’[Doanh thu]),
DATESINPERIOD(‘Sale Datamaker’[Ngay ban],
DATE(2018,5,31),
-31,
DAY))
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
27 | P a g e
dataMAKER a member of ICT24h TEAM
DATESMTD()
Mục đích: Tr v mt bng có cha mt ct của các ngày cho tháng đến nay.
Cú pháp: DATESMTD(<dates>)
Tham s
Mô t
date
Khai báo ct cha giá tr ngày
Giá tr tr v: mt bng có cha mt ct các giá tr ngày tháng.
Ví d: Tôi muốn tính lũy kế doanh thu trong tháng 5:
CALCULATE(
SUM(‘Sale Datamaker’[Doanh thu]),
DATESMTD(
FILTER(
MONTH(‘Sale Datamaker’[Ngay ban]) = 5)))
DATESMTD()
Mục đích: Tr v mt bng có cha mt ct của các ngày cho tháng đến nay.
Cú pháp: DATESMTD(<dates>)
Tham s
Mô t
date
Khai báo ct cha giá tr ngày
Giá tr tr v: mt bng có cha mt ct các giá tr ngày tháng.
Ví d: Tôi muốn tính lũy kế doanh thu trong tháng 5:
CALCULATE(
SUM(‘Sale Datamaker’[Doanh thu]),
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
28 | P a g e
dataMAKER a member of ICT24h TEAM
DATESMTD(
FILTER(
MONTH(‘Sale Datamaker’[Ngay ban]) = 5)))
DATESQTD()
Mục đích: tr v mt bng có cha mt ct của các ngày cho quý đến nay.
Cú pháp: DATESMTD(<dates>)
Tham s
Mô t
date
Khai báo ct cha giá tr ngày
Giá tr tr v: mt bng có cha mt ct các giá tr ngày tháng.
Ví d: Tôi muốn tính lũy kế doanh thu theo quý:
CALCULATE(
SUM(‘Sale Datamaker’[Doanh thu]),
DATESMQTD(‘Sale Datamaker’[Ngay ban])
DATESYTD()
Mục đích: tr v mt bng có cha mt ct của các ngày cho năm đến nay.
Cú pháp: DATESYTD(<dates>, <year_end_date>)
Tham s
Mô t
date
Khai báo ct cha giá tr ngày
year_end_date
Chui ký t có ngày xác định year_end_date.
Mặc định là ngày 31 tháng 12 (giá tr không bt buc khai báo)
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
29 | P a g e
dataMAKER a member of ICT24h TEAM
Giá tr tr v: mt bng có cha mt ct các giá tr ngày tháng.
Ví d: Tôi muốn tính lũy kế doanh thu theo năm:
CALCULATE(
SUM(‘Sale Datamaker’[Doanh thu]),
DATESYTD(‘Sale Datamaker’[Ngay ban])
ENDOFMONTH()
Mục đích: tr v ngày theo định dng ngày gi ca ngày cui cùng của tháng được ch định.
Cú pháp: ENDOFMONTH(<dates>)
Tham s
Mô t
date
Khai báo ngày cn cn tham chiếu
Giá tr tr v: giá tr ngày cuối tháng theo định dng ngày.
Ví d: Tôi có ngày bán hàng như sau: 01/01/2017 -> 12/31/2017, vy hàm sau s ch tr v ngày
cui tháng trong tng tháng: 01/31/2017 -> 12/31/2017:
ENDOFMONTH(‘Sale Datamaker’[Ngay ban])
ENDOFQUARTER()
Mục đích: tr v ngày theo định dng ngày gi ca ngày cui cùng của quý được ch định.
Cú pháp: ENDOFQUARTER(<dates>)
Tham s
Mô t
date
Khai báo ngày cn cn tham chiếu
Giá tr tr v: giá tr ngày cuối quý theo định dng ngày.
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
30 | P a g e
dataMAKER a member of ICT24h TEAM
Ví d: Tôi thc hin hàm tr v ngày cui ca từng quý trong năm của ngày bán hàng:
ENDOFQUARTER(‘Sale Datamaker’[Ngay ban])
ENDOFYEAR()
Mục đích: tr v ngày theo định dng ngày gi ca ngày cui cùng của năm được ch định.
Cú pháp: ENDOFYEAR(<dates>)
Tham s
Mô t
date
Khai báo ngày cn cn tham chiếu
year_end_date
Chui ký t có ngày xác định year_end_date.
Mặc định là ngày 31 tháng 12 (giá tr không bt buc khai báo)
Ví d: Tôi thc hin hàm tr v ngày cui ca tng năm của ngày bán hàng:
ENDOFYEAR(‘Sale Datamaker’[Ngay ban])
FIRSTDAY()
Mục đích: tr v ngày đầu tiên trong ng cnh hin ti cho cột ngày được ch định.
Cú pháp: FIRSTDAY(<dates>)
Tham s
Mô t
date
Khai báo ct cha giá tr ngày
Giá tr tr v: mt bng có cha mt cột đơn và một dòng có giá tr ngày tháng.
Ví d: Tôi thc hin hàm tr v ngày đầu tiên ca ct ngày bán (giá tr theo tng dòng):
FIRSTDAY(‘Sale Datamaker’[Ngay ban])
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
31 | P a g e
dataMAKER a member of ICT24h TEAM
FIRSTNONBLANK()
Mục đích: tr v giá tr đầu tiên trong cột được kim tra không giá tr rng thông qua biu
thức đi cùng.
Cú pháp: FIRSTNONBLANK(<column>, <expression>)
Tham s
Mô t
column
Khai báo ct cha giá tr ngày
Expression
Biu thc kim tra giá tr rng
Giá tr tr v: mt bng có cha mt ct và mt hàng duy nht vi giá tr đầu tiên được tr v.
Ví d: Tôi mun lit kê nhng sn phm có doanh thu bán hàng tt nht, hàm s đưc viết như
sau (có kết hp TOPN h tr thng kê):
FIRSTNONBLANK(
TOPN(
1,
VALUES('Product DataMaker'[san pham]),
[Doanh thu]),
1)
LASTDAY()
Mục đích: tr v ngày cui trong ng cnh hin ti cho cột ngày được ch định.
Cú pháp: LASTDAY(<dates>)
Tham s
Mô t
date
Khai báo ct cha giá tr ngày
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
32 | P a g e
dataMAKER a member of ICT24h TEAM
Giá tr tr v: mt bng có cha mt cột đơn và một dòng có giá tr ngày tháng.
Ví d: Tôi thc hin hàm tr v ngày cui ca ct ngày bán (giá tr theo tng dòng):
LASTDAY(‘Sale Datamaker’[Ngay ban])
LASTNONBLANK()
Mục đích: tr v giá tr cui trong cột được kim tra không có giá tr rng thông qua biu thức đi
cùng.
Cú pháp: LASTNONBLANK(<column>, <expression>)
Tham s
Mô t
column
Khai báo ct cha giá tr ngày
Expression
Biu thc kim tra giá tr rng
Giá tr tr v: mt bng có cha mt ct và mt hàng duy nht vi giá tr cuối được tr v.
Ví d: Tôi mun ly giá tr doanh thu bán hàng sau cùng có kết hp kim tra giá tr rng ca ngày
phát sinh giao dch bán hàng:
CALCULATE(
SUM('Sale DataMaker'[doanh thu]),
LASTNONBLANK('Dates dataMaker'[date],
CALCULATE(
SUM('Sale DataMaker'[doanh thu])))
NEXTDAY()
Mục đích: tr v mt bng cha mt ct ca tt c các ngày kế tiếp, da trên ngày được ch
định trong ct ngày tháng trong ng cnh hin ti.
Cú pháp: NEXTDAY(<dates>)
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
33 | P a g e
dataMAKER a member of ICT24h TEAM
Tham s
Mô t
date
Khai báo ct cha giá tr ngày
Giá tr tr v: mt bng có cha mt cột đơn có giá tr ngày tháng.
Ví d: hàm sau tr v ngày kế tiếp ca ngày trong ct Ngày bán:
NEXTDAY(‘Sale DataMaker’[Ngay ban])
NEXTMONTH()
Mục đích: tr v mt bng có cha mt ct ca tt c các tháng kế tiếp, dựa trên ngày được ch
định trong ct ngày tháng trong ng cnh hin ti.
Cú pháp: NEXTMONTH(<dates>)
Tham s
Mô t
date
Khai báo ct cha giá tr ngày
Giá tr tr v: mt bng có cha mt cột đơn có giá tr ngày tháng.
Ví d: hàm sau tr v tháng kế tiếp ca tháng trong ct Ngày bán:
NEXTMONTH(‘Sale DataMaker’[Ngay ban])
NEXTQUARTER()
Mục đích: tr v mt bng cha mt ct ca tt c các qkế tiếp, dựa trên ngày được ch
định trong ct ngày tháng trong ng cnh hin ti.
Cú pháp: NEXTQUARTER(<dates>)
Tham s
Mô t
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
34 | P a g e
dataMAKER a member of ICT24h TEAM
date
Khai báo ct cha giá tr ngày
Giá tr tr v: mt bng có cha mt cột đơn có giá tr ngày tháng.
Ví d: hàm sau tr v quý kế tiếp ca quý trong Ngày bán:
NEXTQUARTER(‘Sale DataMaker’[Ngay ban])
NEXTYEAR()
Mục đích: tr v mt bng có cha mt ct ca tt c các năm kế tiếp, da trên ngày được ch
định trong ct ngày tháng trong ng cnh hin ti.
Cú pháp: NEXTYEAR(<dates>)
Tham s
Mô t
date
Khai báo ct cha giá tr ngày
Giá tr tr v: mt bng có cha mt cột đơn có giá tr ngày tháng.
Ví d: hàm sau tr v năm kế tiếp ca năm trong cột Ngày bán:
NEXTYEAR ‘Sale DataMaker’[Ngay ban]
PARALLELPERIOD()
Mục đích: tr v mt bng có cha giá tr theo định dng ngày chun, giá tr s tăng hoc gim
da vào tham s number_of_intervals được đưa vào theo ngữ thc tế.
Cú pháp: PARALLELPERIOD(<dates>, <number_of_intervals>, <interval>)
Tham s
Mô t
date
Khai báo ct cha giá tr ngày
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
35 | P a g e
dataMAKER a member of ICT24h TEAM
number_of_intervals
Khai o s nguyên xác định s ng khong thời gian để cng
vào hoc tr đi
interval
Khong thi gian muốn thay đổi ngày tháng, h tr theo: year,
quarter, month.
Giá tr tr v: mt bng có cha mt ct các giá tr ngày tháng.
Ví d: Tôi thc hin tính tng doanh thu bán hàng của năm trước dựa trên năm trong ng cnh
hin ti:
CALCULATE(
SUM(‘Sale Datamaker’[Doanh thu’],
PARALLELPERIOD(‘Sale Datamaker’[Ngay ban], -1, YEAR)
PREVIOUSDAY()
Mục đích: tr v mt bng cha mt ct ca tt c các ngày trước ngày được ch định trong
ct ngày tháng trong ng cnh hin ti.
Cú pháp: PREVIOUSDAY(<dates>)
Tham s
Mô t
date
Khai báo ct cha giá tr ngày
Giá tr tr v: mt bng có cha mt cột đơn có giá tr ngày tháng.
Ví d: hàm sau tr v ngày trước ca ngày trong ct Ngày bán:
PREVIOUSDAY(‘Sale DataMaker’[Ngay ban])
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
36 | P a g e
dataMAKER a member of ICT24h TEAM
PREVIOUSMONTH()
Mục đích: tr v mt bng cha mt ct của tháng trước ngày được ch định trong ct ngày
tháng trong ng cnh hin ti.
Cú pháp: PREVIOUSMONTH(<dates>)
Tham s
Mô t
date
Khai báo ct cha giá tr ngày
Giá tr tr v: mt bng có cha mt cột đơn có giá trị ngày tháng.
Ví d: hàm sau tr v tháng trước ca tháng trong ct Ngày bán:
PREVIOUSMONTH(‘Sale DataMaker’[Ngay ban])
PREVIOUSQUARTER()
Mục đích: tr v mt bng cha mt ct của quý trước ngày được ch định trong ct ngày
tháng trong ng cnh hin ti.
Cú pháp: PREVIOUSQUARTER(<dates>)
Tham s
Mô t
date
Khai báo ct cha giá tr ngày
Giá tr tr v: mt bng có cha mt cột đơn có giá tr ngày tháng.
Ví d: hàm sau tr v quý trước ca quý trong ct Ngày bán:
PREVIOUSQUARTER(‘Sale DataMaker’[Ngay ban])
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
37 | P a g e
dataMAKER a member of ICT24h TEAM
PREVIOUSYEAR()
Mục đích: tr v mt bng cha mt ct của năm trước ngày được ch định trong ct ngày
tháng trong ng cnh hin ti.
Cú pháp: PREVIOUSYEAR(<dates>)
Tham s
Mô t
date
Khai báo ct cha giá tr ngày
Giá tr tr v: mt bng có cha mt cột đơn có giá tr ngày tháng.
Ví d: hàm sau tr v năm trước của năm trong cột Ngày bán:
PREVIOUSYEAR(‘Sale DataMaker’[Ngay ban])
SAMEPERIODLASTYEAR()
Mục đích: tr v mt bng có cha ct giá tr cùng k ca năm trước của năm đưc ch định trong
ct ngày tháng trong ng cnh hin ti.
Cú pháp: SAMPERIODLASTYEAR(<dates>)
Tham s
Mô t
date
Khai báo ct cha giá tr ngày
Giá tr tr v: mt bng có cha mt ct đơn có giá tr ngày tháng.
Ví d: Tôi thc hin tính tng doanh thu bán hàng của năm trưc dựa trên năm trong ngữ cnh
hin ti (tính toán doanh s theo doanh thu cùng k với năm hiện ti):
CALCULATE(
SUM(‘Sale Datamaker’[Doanh thu’],
SAMPERIODLASTYEAR(‘Sale Datamaker’[Ngay ban])
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
38 | P a g e
dataMAKER a member of ICT24h TEAM
STARTOFMONTH()
Mục đích: tr v ngày đầu tiên ca tháng da trên ct ngày tháng trong ng cnh hin ti.
Cú pháp: STARTOFMONTH(<dates>)
Tham s
Mô t
date
Khai báo ct cha giá tr ngày
Giá tr tr v: mt bng có cha mt cột đơn có giá trị ngày tháng.
Ví d: hàm sau tr v ngày đầu tiên ca tháng trong ct Ngày bán:
STARTOFMONTH(‘Sale DataMaker’[Ngay ban])
STARTOFQUARTER()
Mục đích: tr v ngày đầu tiên ca quý da trên ct ngày tháng trong ng cnh hin ti.
Cú pháp: STARTOFQUARTER(<dates>)
Tham s
Mô t
date
Khai báo ct cha giá tr ngày
Giá tr tr v: mt bng có cha mt cột đơn có giá tr ngày tháng.
Ví d: hàm sau tr v ngày đầu tiên ca quý trong ct Ngày bán:
STARTOFQUARTER (‘Sale DataMaker’[Ngay ban])
STARTOFYEAR()
Mục đích: tr v ngày đầu tiên của năm dựa trên ct ngày tháng trong ng cnh hin ti.
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
39 | P a g e
dataMAKER a member of ICT24h TEAM
Cú pháp: STARTOFYEAR(<dates>)
Tham s
Mô t
date
Khai báo ct cha giá tr ngày
Giá tr tr v: mt bng có cha mt cột đơn có giá tr ngày tháng.
d: hàm sau tr v ngày đầu tiên của năm trong cột Ngày bán:
STARTOFYEAR(‘Sale DataMaker’[Ngay ban])
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
40 | P a g e
dataMAKER a member of ICT24h TEAM
4. Nhóm hàm B lc (Filter Functions)
Mô t: Nhóm hàm b lc trong DAX bao gm mt s hàm phc tp và mnh m nht, có s khác
bit rt nhiu so vi các hàm Excel mà chúng ta quen dùng. Vic tra cu thông qua các mi quan
h gia các bng d liu, t đây cho php bạn to ra các ng cnh tra cứu linh động.
CALCULATE()
Mục đích: là loại hàm trong DAX thường dùng để lc giá tr theo 1 biu thc tính toán nào đó.
Cú pháp: CALCULATE(<expression>, <filter1>, <filter2>,…)
Tham s
Mô t
Expression
Khai báo biu thc tính toán
filter1, filter2
Khai báo các điu kin lc d liu cho biu thc tính toán
Giá tr tr v: tr v kết qu là giá tr t biu thc tính toán
d: Tôi mun ly tổng doanh thu trong năm 2018 ca 1 sn phẩm nào đó t các thông s
Doanh thu, Năm, Sản phm trong bng Sale Datamaker:
CALCULATE(
SUM(‘Sale Datamaker'[Doanh thu]),
’Sale Datamaker'[Năm]=2018,
’Sale Datamaker'[Sản phẩm]=”TV”)
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
41 | P a g e
dataMAKER a member of ICT24h TEAM
ALL()
Mục đích: Tr v toàn b các dòng trong bng hay toàn b giá tr trong ct ch định, b qua thiết
lp ca các b lc khác. Nói cách khác hàm này dùng trong ng cnh bn mun tính toán toàn b
giá tr không cần quan tâm đến vic giá tr có áp dng b lọc nào trước đó.
Cú pháp: ALL( {<table> [ <column>[, <column>[, <column>[,…]]]} )
Tham s
Mô t
table
Bng mun b qua các thiết lp lọc trước đó
column
Ct mun b qua các thiết lp lọc trước đó
Giá tr tr v: bng hay cột đã loại b b lc.
Ví d: Tôi mun ly tng doanh thu ca tt c sn phm:
CALCULATE(
SUM(‘Sale Datamaker'[Doanh thu]),
ALL(’Sale Datamaker'[Sản phm]))
ALLEXCEPT()
Mục đích: Tr v toàn b các dòng trong bng hay toàn b giá tr trong ct, b qua thiết lp ca
các b lc khác ngoi tr b lọc được áp dng cho nhng cột được ch định.
Cú pháp: ALLEXCEPT( {<table> [ <column>[, <column>[, <column>[,…]]]} )
Tham s
Mô t
table
Bng mun b qua các thiết lp lọc trước đó, bao gm c nhng
ct mun gi li b lc
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
42 | P a g e
dataMAKER a member of ICT24h TEAM
column
Ct mun gi li các thiết lp lọc trước đó
Giá tr tr v: bng hay cột đã loại b b lc ngoi tr nhng cột được khai báo trong hàm.
Ví d: Tôi mun ly tng doanh thu ca tt c sn phm nhưng muốn gi li nhng thiết lp lc
đã áp dụng cho năm bán hàng:
CALCULATE(
SUM(‘Sale Datamaker'[Doanh thu]),
ALLEXCEPT(’Sale Datamaker'[Năm]))
ALLNOBLANKROW()
Mục đích: Tr v toàn b các dòng trong bng không có giá tr rng (Blank)
Cú pháp: ALLNOBLANKROW( {<table> [ <column>[, <column>[, <column>[,…]]]} )
Tham s
Mô t
table
Bng mun thc hin kim tra rng
column
Ct mun thc hin kim tra rng
Giá tr tr v: bng hay cột đã loại b giá tr rng.
Ví d: Tôi mun thc hiện đếm s dòng ca bng Bán hàng với điều kin ch đếm nhng dòng có
khai báo thông tin Ngày bán:
COUNTROWS(
ALLNOBLANKROW(’Sale Datamaker'[Ngay ban]))
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
43 | P a g e
dataMAKER a member of ICT24h TEAM
FILTER()
Mục đích: Tr v bảng đại din cho tp hp con ca mt bng hoc biu thc khác.
Cú pháp: FILTER(<table>, <filter>)
Tham s
Mô t
table
Bng mun thc hin lc
filter
Điu kin lc
Giá tr tr v: bng cha các dòng thỏa điều kin lc.
Ví d: Tôi mun ly tng doanh thu ca tt c sn phm có giá bán> 3,000,000 VND:
SUMX(
FILTER(‘Sale Datamaker,
‘Sale Datamaker'[Gia ban] > 3,000,000),
‘Sale Datamaker'[Doanh thu])
DISTINCT()
Mục đích: tr v bng ct cha các giá tr duy nht t ct được ch định. Nói cách khác, các
giá tr trùng lp s b xóa và ch các giá tr duy nhất được tr v.
Cú pháp: DISTINCT(<column>)
Tham s
Mô t
column
Khai báo ct cn ly giá tr duy nht.
Giá tr tr v: ct cha giá tr duy nht.
Ví d: Tôi mun biết có bao nhiêu khách hàng đã giao dịch:
COUNTROWS(
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
44 | P a g e
dataMAKER a member of ICT24h TEAM
DISTINCT(‘Sale Datamaker’[Khach hang]))
EARLIER()
Mục đích: tr v giá tr hin ti ca cột được ch định.
Cú pháp: EARLIER(<column>, <number>)
Tham s
Mô t
column
Khai báo ct cn ly giá tr duy nht.
number
S lần đánh giá bên ngoài.
Giá tr tr v: Giá tr hin ti ca dòng t ct, ti s lần đánh giá bên ngoài.
Ví d: Tôi mun thc hin công thc xếp hng khách hàng theo li nhuận bán hàng đạt được:
COUNTROWS(
FILTER(‘Sale Datamaker’[Khach hang],
EARLIER(‘Sale Datamaker’[Loi nhuan] < ‘Sale Datamaker’[Loi nhuan]))
+ 1
HASONEFILTER()
Mục đích: tr v TRUE khi s lượng giá tr đưc lc trc tiếp trên columnName là một, ngược li
tr v FALSE.
Cú pháp: HASONEFILTER(<columnName>)
Tham s
Mô t
columnName
Khai báo ct cn kim tra.
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
45 | P a g e
dataMAKER a member of ICT24h TEAM
Giá tr tr v: tr v TRUE khi s lượng giá tr đưc lc trc tiếp trên columnNamemột, ngược
li tr v FALSE.
Ví d: Tôi mun kim tra có giá tr nào được lc trc tiếp, nếu có thì tr v giá tr đó ngược li tr
v BLANK().
IF(
HASONEFILTER(‘Product Datamaker’[Product ID],
FILTERS(‘Product Datamaker’[Product ID],
BLANK())
HASONEVALUE()
Mục đích: tr v TRUE khi s lượng giá tr đưc lc trên columnName một, ngược li tr v
FALSE.
Hàm này cũng tương tự như HASONEFILTER() nhưng áp dụng cho các trường hp lc phc tp
(cross-filters)
Cú pháp: HASONEVALUE(<columnName>)
Tham s
Mô t
columnName
Khai báo ct cn kim tra.
Giá tr tr v: tr v TRUE khi s lượng giá tr đưc lc trên columnName là một, ngược li tr v
FALSE.
d: Tôi mun kim tra ct sau giá tr không, nếu thì tr v giá tr đó ngược li tr v
BLANK().
IF(
HASONEVALUE(‘Product Datamaker’[Product ID],
VALUES(‘Product Datamaker’[Product ID],
BLANK())
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
46 | P a g e
dataMAKER a member of ICT24h TEAM
VALUES ()
Mục đích: tr v bng ct cha các giá tr duy nht t cột được ch định. Nói cách khác, các
giá tr trùng lp s b xóa và ch các giá tr duy nhất được tr v.
Cú pháp: VALUES(<tableNameOrcolumnName>)
Tham s
Mô t
tableNameOrcolumnName
Khai báo bng ct cn ly giá tr duy nht.
Giá tr tr v: ct cha giá tr duy nht.
Ví d: Tôi mun biết có bao nhiêu đơn hàng đã thực hin:
COUNTROWS(
VALUES(‘Sale Datamaker’[OrderNumber]))
RELATED()
Mục đích: tr v mt giá tr liên quan t mt bng khác.
Cú pháp: RELATED(<column>)
Tham s
Mô t
column
Khai báo ct cn ly giá tr.
Giá tr tr v: mt giá tr duy nhất có liên quan đến hàng hin ti.
Ví d: Tôi mun lc nhng giao dch tr nhóm sn phẩm liên quan đến Microsoft Azure:
FILTER('Sale Datamaker'[OrderID],
RELATED('Product Datamaker'[Nhom san pham]) <> "Microsoft Azure")
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
47 | P a g e
dataMAKER a member of ICT24h TEAM
5. Nhóm hàm Thông tin (Information Functions)
Mô t: nhóm hàm toán hc s thc hin…
CONTAINS()
Mục đích: Tr v TRUE nếu tn ti các giá tr cho tt c các cột được đề cp hoặc được cha trong
các cột đó, ngược li nếu không hàm tr v FALSE.
Cú pháp: CONTAINS(<tables>),<columnName>,<value>[,columnName>,<value>]…)
Tham s
Mô t
table
Bng mun thc hin tìm thông tin
columnName
Ct cn tìm giá tr
value
Nhp giá tr cn tìm
Giá tr tr v: tr v TRUE nếu tn ti các giá tr cho tt c các cột được đề cp hoặc được cha
trong các cột đó, ngược li nếu không hàm tr v FALSE.
Ví d: Tôi mun tìm thông tin khách hàng ‘ICT24h’ đã mua sản phẩm “Office 365 Business”:
CONTAINS(‘Sale Datamaker,
‘Sale Datamaker'[Khach hang],“ICT24h”,
‘Sale Datamaker'[San pham], “Office 365 Business”)
ISBLANK()
Mục đích: Tr v TRUE nếu tn ti giá tr rỗng, ngược li nếu không hàm tr v FALSE.
Cú pháp: ISBLANK(<value>)
Tham s
Mô t
value
Nhp giá tr hoc biu thc mun kim tra rng.
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
48 | P a g e
dataMAKER a member of ICT24h TEAM
Giá tr tr v: Giá tr Boolean TRUE nếu giá tr trng; nếu không FALSE.
d: Tôi có hàm tính tổng doanh thu năm 2017 (Doanhthu_2017), tôi mun tính t l doanh thu
cùng k năm nay so với năm trước nhưng muốn kim tra nếu doanh thu năm trước có giá tr rng
thì tr v BLANK(), ngươc lại s thc hin tính t l doanh thu:
IF(
ISBLANK(Doanhthu_2017,
BLANK(),
(Doanhthu_2018 Doanhthu_2017/Doanhthu_2017)
ISERROR()
Mục đích: Tr v TRUE nếu tn ti giá tr b lỗi, ngược li nếu không hàm tr v FALSE.
Cú pháp: ISERROR(<value>)
Tham s
Mô t
value
Nhp giá tr hoc biu thc mun kim tra li.
Giá tr tr v: Giá tr Boolean TRUE nếu giá tr li; nếu không FALSE.
Ví d: Tương tự ví d trên, tôi mun kim tra có li không thưng là kim tra xem có chia cho
giá tr 0 nếu có giá tr li thì tr v BLANK(), ngươc lại s thc hin tính t l doanh thu:
IF(ISERROR(
Doanhthu_2018/Doanhthu_2017
BLANK(),
Doanhthu_2018/Doanhthu_2017)
ISNUMBER()
Mục đích: Tr v TRUE nếu tn ti giá tr là số, ngược li nếu không hàm tr v FALSE.
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
49 | P a g e
dataMAKER a member of ICT24h TEAM
Cú pháp: ISNUMBER(<value>)
Tham s
Mô t
value
Nhp giá tr hoc biu thc mun kim tra.
Giá tr tr v: Giá tr Boolean TRUE nếu giá tr là s; nếu không FALSE.
Ví d:
IF(ISNUMBER(1980), “Giá trị là số”, “Không phải s”)
Kết qu tr về: “Giá trị là số”
IF(ISNUMBER(“1988”), “Giá trị là số”, “Không phải s”)
Kết qu tr về: “Không phải số”
ISTEXT()
Mục đích: Tr v TRUE nếu tn ti giá tr là ký tự, ngược li nếu không hàm tr v FALSE.
Cú pháp: ISTEXT(<value>)
Tham s
Mô t
value
Nhp giá tr hoc biu thc mun kim tra.
Giá tr tr v: Giá tr Boolean TRUE nếu giá tr là ký t; nếu không FALSE.
Ví d:
IF(ISTEXT(1980), “Giá trị là ký tự”, “Không phi ký t”)
Kết qu tr v: “Không phải ký tự”
IF(ISTEXT(“1988”), “Giá trị là ký tự”, “Không phải ký t”)
Kết qu tr v: “Giá trịký tự”
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
50 | P a g e
dataMAKER a member of ICT24h TEAM
LOOKUPVALUE()
Mục đích: Tr v các dòng có giá tr thỏa điều kin tìm kiếm.
pháp: LOOKUPVALUE(<result_columnName>,<search_columnName>,<search_
value>[,<search_columnName>,<search_value>]…)
Tham s
Mô t
result_columnName
Ct s tr v kết qu các dòng nếu thỏa điều kin truy vn
search_columnName
Khai báo ct có giá tr cn truy vn
Search value
Nhp giá tr hoc biu thc cn truy vn
Giá tr tr v: các dòng trong ct result_columnName nếu tha điều kin có ct & có giá tr cn
tìm.
Ví d: Tìm nhng sn phm thuc nhóm sn phẩm có mã “Microsoft Office 365”
LOOPUPVALUE(
‘Sale Datamaker'[San pham],
‘Sale Datamaker'[Nhom san pham], “Microsoft Office 365”)
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
51 | P a g e
dataMAKER a member of ICT24h TEAM
6. Nhóm hàm Logic (Logical Functions)
t: nhóm hàm logic hoạt động khi mt biu thc tr v thông tin v các giá tr hoc các tp
hp trong biu thc. Ví d, bn có th s dụng hàm IF để kim tra kết qu ca mt biu thc và
to các kết qu có điều kin.
AND()
Mục đích: Kim tra xem c hai đối s đều đúng và hợp l thì tr v TRUE, nếu không tr v false.
Cú pháp: AND(<logical1>, <logical2>)
Tham s
Mô t
logical1, logical2
Nhp giá tr logic mun kim tra.
Giá tr tr v: Giá tr Boolean TRUE hay FALSE da trên s kết hp các giá trbn mun kim
tra.
Ví d:
IF(AND(10 > 9, -10 < -1), “Tất c đều đúng”, “Có giá trị sai”)
Kết qu tr về: “Tt c đều đúng”
OR()
Mục đích: Tương tự như AND() nhưng ch tr v giá tr FALSE khi c 2 đối s có giá tr sai.
Cú pháp: OR(<logical1>, <logical2>)
Tham s
Mô t
logical1, logical2
Nhp giá tr logic mun kim tra.
Giá tr tr v: Giá tr Boolean TRUE hay FALSE da trên s kết hp các giá trbn mun kim
tra.
Ví d:
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
52 | P a g e
dataMAKER a member of ICT24h TEAM
Các hàm sau cho ra kết quả: “Tất c đều đúng”
IF(OR(10 > 9, -10 < -1), “Tất c đều đúng”, “Có giá trị sai”)
IF(OR(10 > 9, -10 > -1), “Tất c đều đúng”, “Có giá trị sai”)
IF(OR(10 < 9, -10 < -1), “Tt c đều đúng”, “Có giá trị sai”)
Hàm sau cho kết qu: Có giá tr sai
IF(OR(10 <9, -10 > -1), “Tất c đều đúng”, “Có giá trị sai”)
IF()
Mục đích: Kiểm tra xem một điều kiện được cung cấp như đối s đầu tiên được đáp ng. Tr
v mt giá tr nếu điều kin là TRUE và tr v mt giá tr khác nếu điều kin là FALSE.
Cú pháp: IF(logical_test>, <value_if_true>, value_if_false)
Tham s
Mô t
logical_test
Bt k giá tr hoc biu thc nào th đưc kim tra TRUE
hoc FALSE.
value_if_true
Giá tr đưc tr v nếu kết qu kim tra là TRUE. Nếu b qua,
TRUE được tr v.
value_if_false
Giá tr đưc tr v nếu kết qu kim tra FALSE. Nếu b
qua, FALSE được tr v.
Giá tr tr v: Bt k giá tr nào có th đưc tr li bng mt biu thc.
Ví d: Tôi mun thc hin phân loại Khách hàng theo điều kin Doanh thu sau:
- Doanh thu < 5,000,000 VND s đưa vào nhóm Đạt
- Doanh thu < 3,000,000 VND s đưa vào nhóm Không Đạt
- Ngoài ra, doanh thu vượt mc trên s đưa vào nhóm Tốt.
IF(‘Sale Datamaker'[Doanh thu] < 3,000,000, “Không Đạt”,
IF((‘Sale Datamaker'[Doanh thu] < 5,000,000, “Đạt”, “Tốt”))
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
53 | P a g e
dataMAKER a member of ICT24h TEAM
SWITCH()
Mục đích: Đánh giá một biu thc da vào danh sách các giá tr tr v mt trong nhiu biu
thc kết qu có th có.
Cú pháp: SWITCH(<expression>, <value>, <result>[,<value>,<result>]…[,<else>])
Tham s
Mô t
expression
Bt k biu thc DAX nào tr v mt giá tr hướng duy
nhất trong đó biểu thức được đánh giá nhiều ln (cho mi
hàng / ng cnh).
value
Giá tr không đổi đưc so khp vi kết qu biu thc.
result
Bt k biu thức hướng nào được đánh giá nếu kết qu
ca biu thc khp vi giá tr tương ứng.
else
Bt k biu thức hướng nào được đánh giá nếu kết qu
ca biu thc không khp vi bt k đối s giá tr nào.
Giá tr tr v: Giá tr vô hướng đến t mt trong các biu thc kết qu, nếu có giá tr khp hoc
t biu thc khác (VD: thông báo) nếu không khp vi bt k giá tr nào.
Ví d: Tôi mun thc hin thêm ct th hin tên của tháng tương ng vi tháng c th (theo s):
SWITCH([Month],
1, ”January”,
2, ”February”,
3, ”March”,
4, ”April”,
5, ”May”,
6, ”June”,
7, ”July”,
8, ”August”,
9, ”September”,
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
54 | P a g e
dataMAKER a member of ICT24h TEAM
10, ”October”,
11, ”November”,
12,”December”
,”Giá trị không xác định”)
NOT()
Mục đích: Chuyển đổi trng thái giá tr Boolean t TRUE sang FALSE và ngược li.
Cú pháp: NOT(<logical1>)
Tham s
Mô t
logical1
Nhp giá tr hoc biu thc mun đổi trng thái.
Giá tr tr v: Giá tr Boolean TRUE hay FALSE.
Ví d:
Tôi mun chuyn trng thái TRUE ca hàm có giá tr đúng sau thành FALSE
NOT(
IF(10 > 9, “TRUE”, “FALSE”))
IFERROR()
Mục đích: Thường dùng trong trường hp by li giá tr hay biu thc, thay giá tr li bng giá tr
hay biu thc mong mun.
Cú pháp: IFERROR(<value>, < value_if_error>)
Tham s
Mô t
value
Nhp giá tr hoc biu thc mun kim tra
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
55 | P a g e
dataMAKER a member of ICT24h TEAM
value_if_error
Nhp giá tr hoc biu thc tr v nếu có li xy ra
Giá tr tr v: Giá tr vô hướng có cùng kiu vi tham s value.
Ví d:
Kết qu s là 999999 nếu biu thc xy ra li:
IFERROR(10/0, 999999)
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
56 | P a g e
dataMAKER a member of ICT24h TEAM
7. Nhóm hàm Text (Text Functions)
Mô t: nhóm hàm text tr v mt phn ca chui, tìm kiếm văn bn trong mt chui hoc ghép
các ký t.
BLANK()
Mục đích: Tr v giá tr rng.
Cú pháp: BLANK()
Giá tr tr v: Giá tr rng.
d: Kim tra nếu Doanh thu năm 2017 giá nh hơn hoặc bng 0 thì tr v Blank, ngược li
tiến hành thc hin phép chia.
IF(Doanhthu_2017 <= 0,
BLANK(),
Doanhthu_2018/Doanhthu_2017)
FIND()
Mục đích: Tr v v trí bắt đầu ca mt chuỗi văn bản trong mt chuỗi văn bn khác. FIND phân
bit ch hoa ch thưng.
Cú pháp: FIND(<find_text>,<within_text>[,[<start_num>][,<NotFoundValue>]])
Tham s
Mô t
find_text
Chuỗi văn bản cn tìm, có th dùng các ký t đặc bit: (?), (*) theo
quy định sau:
- Du chm hi khp vi bt kt đơn nào
- Du sao th khp vi bt k chui ký t nào
within_text
Chuỗi văn bản có cha chui hay ký t cn tìm.
start_num
Các ký t mà tại đó để bắt đầu tìm kiếm; nếu b qua, start_num =
1. Ký t đầu tiên trong within_text là ký t s 1.
DAX WIKI GUIDE CẨM NANG HƯỚNG DN S DNG DAX VI MICROSOFT POWER BI
57 | P a g e
dataMAKER a member of ICT24h TEAM
NotFoundValue
Giá tr tr v trong trường hp không tìm thy chuỗi văn bản, ký
t khp vi ni dung cn tìm. Thông thường là: 0, -1, hoc
BLANK().
Ví d: tìm v trí ca ch cái đầu tiên ca tên Sn phẩm “Office 365”, trong chui cha mô t sn
phm.
FIND(“Office 365”,”Microsoft Office 365 Enterprise E5”)
CONCATENATE()
Mục đích: Ni 2 chui li vi nhau.
Cú pháp: CONCATENATE(<text1>, <text2>)
Tham s
Mô t
text1, text2
Khai báo các chui ký t hoc s cn ni li vi nhau.
Có th áp dng cho ct tham chiếu
Kết qu tr v: chuỗi đã nối.
Ví d: ni 2 chui sau:
CONCATENATE(“dataMAKER”, “a member of ICT24h TEAM”)

Navigation menu