hàm dax thường dùng

Top 8 hàm DAX thường dùng nhất trong Power BI

Ngày đăng: 10/05/2022

DAX (Data Analysis Expression ) là một tập hợp các hàm, toán tử và hằng số có thể được dùng trong một công thức hoặc biểu thức, để tính toán và trả về một hoặc nhiều giá trị. 

DAX có rất nhiều hàm được chia thành các nhóm hàm như sau: Date and Time, Time Intelligence, Information, Logical, Mathematical, Statistical, Text, Parent/Child và các hàm khác. Tuy nhiên trong thực tế, không phải lúc nào chúng ta cũng sử dụng hết tất cả các hàm DAX sẵn có, mà ngược lại, đa phần trong quá trình làm việc, chúng ta sẽ chỉ sử dụng một số hàm DAX phổ biến. Trong bài viết này, Datapot sẽ chia sẻ tới các bạn các hàm DAX thường được sử dụng nhiều nhất trong công việc của một DA. 

Hàm FILTER 

Hàm FILTER được sử dụng để thêm điều kiện lọc. Kết quả trả về của hàm FILTER là một bảng chứa các giá trị thỏa mãn điều kiện lọc. 

Cú pháp: FILTER(<bảng>,<bộ lọc>) 

Ví dụ: để lọc ra các sản phẩm có màu đỏ trong bảng Product, chúng ta sử dụng hàm  

FILTER(Product,Product[Color] = “Red”) 

Hàm FILTER() rất linh động khi được lồng trong các hàm khác nhau, đặc biệt là CALCULATE() 

Hàm CALCULATE 

Hàm CALCULATE() được xem là hàm DAX linh hoạt và quan trọng bậc nhất của Power BI vì nó điều chỉnh ngữ cảnh bộ lọc trong phép tính toán, để từ đó tính được các chỉ số mà chúng mong muốn.. 

Cú pháp: CALCULATE(<biểu thức tính toán>[,<bộ lọc 1>][,<bộ lọc 2>][,…]) 

Hàm CALCULATE hoạt động như sau: trước hết, sử dụng bộ lọc để lọc ra một bảng con thỏa mãn điều kiện lọc, sau đó tính toán dựa trên bảng con đã lọc đó. 

Cùng xem xét ví dụ sau: Giả sử chúng ta cần tính toán tổng lợi nhuận (cột Profit nằm trong bảng Sales) cho các sản phẩm có màu đỏ (cột Color trong bảng Product), chúng ta sử dụng công thức: 

Profit – Red = CALCULATE(SUM(Sales[Profit]),FILTER(Product,Product[Color] = “Red”)) 

Hàm ALL 

Hàm ALL được sử dụng để xóa tất cả các điều kiện lọc. ALL () cực kỳ quan trọng bất cứ khi nào chúng ta cần tính toán tỷ lệ phần trăm đóng góp của một yếu tố 

Cú pháp của hàm ALL: ALL(<bảng>) 

Hoặc ALL(<cột 1>[,<cột 2]…) 

Ví dụ: Để tính toán phần trăm đóng góp của từng sản phẩm trong tổng lợi nhuận của cửa hàng, trước hết, chúng ta cần tính tổng lợi nhuận của cả cửa hàng. Lưu ý là giá trị này không bị lọc bởi các bộ lọc trong bảng Product. 

Ta viết hàm như sau: 

Profit (All Products) = CALCULATE([Profit], ALL(‘Product’)) 

Sau đó, ta tính toán tỷ lệ % đóng góp: 

% Profit per Product Name = DIVIDE([Profit], [Profit (All Products)]) 

Hàm USERELATIONSHIP  

Trong thực tế, khi xây dựng model trong Power BI, có những trường hợp mà chúng ta nối hai bảng với nhau bằng một quan hệ inactive (thể hiện bằng đường nối nét đứt). Tuy nhiên, đôi khi chúng ta lại cần sử dụng đến đúng mối quan hệ giữa hai bảng ấy để phục vụ tính toán các chỉ số. Khi đó, chúng ta sử dụng hàm USERELATIONSHIP 

Cú pháp của hàm USERELATIONSHIP như sau: USERELATIONSHIP(<cột 1>,<cột 2>) 

Trong đó: cột 1 đại diện cho đầu nhiều (many), cột 2 đại diện cho đầu 1 (one) trong mối quan hệ giữa hai bảng) 

Ví dụ: Chúng ta có bảng Sales có  cột ngày tháng gồm OrderDate và ShipDate. Khi tạo quan hệ giữa bảng Sales với bảng Date, chúng ta chỉ có thể tạo một mối quan hệ active giữa hai bảng – chẳng hạn nối cột OrderDate với cột Date trong bảng Date. Khi đó, nếu viết hàm = SUM(Sales), kết quả tính toán sẽ được điều chỉnh theo cột OrderDate. 

Tuy nhiên, nếu muốn tính Sales theo ShipDate chứ không phải OrderDate, chúng ta vẫn có thể tính toán dựa trên quan hệ inactive giữa cột ShipDate và cột Date trong bảng Date bằng cách sử dụng hàm USERELATIONSHIP như sau: 

Sales by ShipDate =
CALCULATE(
SUM(Sales[Sales]),
USERELATIONSHIP(Sales[ShipDate], Date[Date])) 

Hàm TOTALYTD / TOTALQTD / TOTALMTD 

Đối với các bài toán kinh doanh thì việc tính toán các chỉ số lũy kế từ đầu kỳ là vô cùng quan trọng. DAX có một (vài) hàm hỗ trợ chúng ta thực hiện tính toán lũy kế đó: TOTALYTD – lũy kế từ đầu năm đến ngày hiện tại, TOTALQTD – lũy kế từ đầu quý đến ngày hiện tại, và TOTALMTD – lũy kế từ đầu tháng tới ngày hiện tại. 

Cú pháp của hàm TOTALYTD/TOTALQTD/TOTALMTD: TOTALYTD(<Biểu thức tính>,<Cột ngày tháng>) 

Chẳng hạn, để tính toán doanh thu từ đầu năm đến ngày hiện tại, ta tính như sau: 

Total Sales YTD = TOTALYTD(SUM(Sales[Sales]),Date[Date]) 

Hàm SUMX 

Thông thường chúng ta sử dụng hàm SUM để tính tổng trên một cột duy nhất, tuy nhiên, với hàm SUMX, chúng ta có thể mở rộng phép tính tổng của mình ra nhiều cột khác nhau. 

Cú pháp của hàm SUMX: SUMX(<bảng>,<biểu thức tính>) 

Hãy xem xét ví dụ sau: Chúng ta cần tính tổng doanh thu của cửa hàng, tuy nhiên trong bảng Sales chỉ có 2 cột gồm Price (giá) và Quantity (số lượng). Thay vì phải tính thêm một cột Sales = Price x Quantity rồi cộng tổng lại, chúng ta có thể sử dụng hàm SUMX như sau: 

Total Sales = SUMX(Sales, Sales[Price] * Sales[Quantity]) 

Hàm RELATED 

Hàm RELATED tương tự như hàm tra cứu giá trị VLOOKUP mà chúng ta thường dùng trong MS Excel. 

Tuy nhiên, trong Power BI, trước khi áp dụng hàm DAX này, chúng ta cần tạo mối quan hệ giữa các bảng mà chúng ta đang đề cập đến. 

Cú pháp hàm RELATED như sau: RELATED(<cột>) 

Chẳng hạn, cần tính tổng doanh thu của cả cửa hàng, trong đó Sales = Price * Quantity. Cột Price nằm trong bảng Product, cột Quantity nằm trong bảng Sales và hai bảng được nối với nhau thông qua cột Product. Khi đó, chúng ta có thể tính như sau: 

Total Sales = SUMX(Sales, Sales[Quantity] * RELATED(Product[Price]))

Hàm SWITCH 

Hàm SWITCH thường được sử dụng thay cho hàm IF trong trường hợp có nhiều điều kiện với nhiều mệnh đề. Khi đó, hàm SWITCH sẽ thể hiện tốt hơn hàm IF về mặt tốc độ xử lý, khả năng đọc, sửa. 

Chẳng hạn, muốn xếp tuổi của khách hàng vào thành các nhóm tuổi khác nhau để phân tích, chúng ta viết hàm như sau: 

Age group =
SWITCH (
    True(),
    Customer[Age]<=30, “18-30”,
    Customer[Age]<=40, “31-40”,
    Customer[Age]<=50, “41-50”,
    Customer[Age]<=60, “51-60”,
    “Over 60”
)

Trên đây, Datapot đã chia sẻ tới các bạn các hàm DAX phổ biến nhất trong Power BI. Các nội dung này đều nằm trong chương trình giảng dạy trong khóa học Power BI của Datapot. Việc làm chủ các công thức DAX thường sử dụng sẽ giúp bạn giải quyết được tương đối các bài toán kinh doanh với vai trò của một Data Analyst.

Ngoài ra, các bạn có thể đọc thêm các công thức DAX trong tài liệu của Microsoft, mình sẽ để link ở đây nha: https://docs.microsoft.com/en-us/dax/

-8%
Beginner
7.200.000 7.800.000 
21 giờ học
Intermediate/Advanced
7.900.000 
Fresher, Junior
2.000.000 
-17%
Beginner
8.100.000 8.800.000 
-6%
Fresher, Junior
6.190.000 
Fresher, Junior
3.000.000 
-8%
Beginner
2.400.000 

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *