Hàm 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ị. Các hàm 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.
Hàm CALCULATE
Mục đích sử dụng
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 ta mong muốn. Hàm này trả về một giá trị sau khi tính toán theo biểu thức và các bộ lọc được viết tới trong công thức.
Use cases
Hàm CALCULATE là một hàm được sử dụng rất linh hoạt trong hàm DAX và có thể đáp ứng được nhiều nhu cầu sử dụng điển hình như: tính toán chỉ số doanh thu, lợi nhuận, chi phí,… theo nhiều bộ lọc khác nhau, kết hợp cùng các hàm khác để tính toán theo nhiều ngữ cảnh,…
Syntax
Cú pháp: CALCULATE(<biểu thức tính toán>[,<bộ lọc 1>][,<bộ lọc 2>][,…])
Hàm CALCULATE sẽ hiển thị cú pháp như sau, với điều kiện bắt buộc phải có là <biểu thức tính toán> (Expression):
Hàm FILTER
Mục đích sử dụng
Hàm FILTER được sử dụng để thêm điều kiện lọc theo dòng của hàm DAX. Kết quả trả về của hàm FILTER là một bảng (hoặc một bảng chứa một hoặc nhiều cột) chứa các giá trị thỏa mãn điều kiện lọc. Do đó, hàm FILTER không được sử dụng một cách độc lập như 1 công thức mà thường được sử dụng kết hợp với các hàm khác cần sử dụng tới một bảng chứa các giá trị đã được lọc.
Use Cases
Một số trường hợp sử dụng hàm FILTER phổ biến có thể kể đến như: lọc dòng trong bảng theo một số điều kiện, tạo bảng gồm các giá trị được lọc và kết hợp trong các công thức để tính toán giá trị,… trong hàm DAX .
Syntax
Cú pháp: FILTER(<bảng>,<bộ lọc>)
Cú pháp trong Power BI desktop như sau, cả 2 điều kiện bảng và bộ lọc đều là bắt buộc khi sử dụng hàm này: (FILTER_1)
Hàm ALL
Mục đích sử dụng
Hàm ALL được sử dụng để loại bỏ hoặc điều chỉnh các điều kiện lọc. Hàm ALL trả ra kết quả là một bảng dữ liệu, do đó hàm này không thể sử dụng độc lập trong measure mà cần sử dụng kết hợp với các hàm có điều kiện cho phép sử dụng bảng. Hàm này có thể sử dụng để tạo ra một bảng mới.
Usecases
Hàm ALL cảu hàm DAX thường được sử dụng để tính tỉ lệ phần trăm đóng góp của một yếu tố trong tổng thể. Ví dụ chúng ta cần tính tỉ lệ phần trăm lợi nhuận của một sản phẩm so với tổng lợi nhuận, tỉ lệ phần trăm chi phí sản xuất của một loại sản phẩm so với tổng chi phí,…
Hàm ALL cũng thường được sử dụng để kiểm soát tương tác giữa các bộ lọc của hàm DAX. Hàm ALL rất tiện dụng trong trường hợp chúng ta cần hạn chế một số bộ lọc để không ảnh hưởng tới kết quả tính toán cuối cùng.
Syntax
Hàm ALL có cú pháp như sau:
ALL(<bảng>)
Hoặc
ALL(<cột 1>[,<cột 2]…)
Chúng ta quan sát cú pháp trên Power BI Desktop như sau:
Hàm ALL không có điều kiện bắt buộc khi viết công thức, chúng ta có thể viết ALL () hoặc ALL (<bảng>) hoặc ALL (<cột>), tùy vào lựa chọn bỏ qua bộ lọc của người dùng.
Hàm SWITCH
Mục đích sử dụng
Hàm SWITCH trả về những kết quả khác nhau dựa trên giá trị của biểu thức nhập vào của hàm DAX . Hiểu một cách đơn giản, hàm SWITCH là hàm thường được sử dụng thay thế cho hàm IF của hàm DAX 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. Hàm SWITCH rất đa dụng và là một trong số những hàm DAX thường được sử dụng nhất trong PBI.
Use cases
Ứng dụng đầu tiên và cơ bản nhất của hàm SWITCH là để kiểm tra TRUE, FALSE của một hoặc nhiều giá trị đã cho. Hàm SWITCH cũng thường được dùng khi cần tạo thêm một cột dữ liệu mới dựa trên các điều kiện của cột dữ liệu khác. Ngoài ra, hàm SWITCH còn có thể được sử dụng như một hàm chỉnh sửa conditional formatting, hoặc thay thế bookmark,…
Syntax
Hàm SWITCH có cú pháp như sau:
SWITCH ( <Biểu thức>, <Giá trị>, <Kết quả> [, <Giá trị 2>, <Kết quả 2> [, … ] ] [, <Giá trị khác>] )
Trong đó:
- Biểu thức/Expression: Là biểu thức chúng ta cần xác định giá trị có phù hợp để trả ra kết quả như mong đợi
- Giá trị: Nếu biểu thức có chứa giá trị này, thì kết quả tương ứng sẽ được trả về.
- Kết quả: Kết quả được trả về nếu biểu thức có chứa giá trị tương ứng.
- Giá trị khác (không bắt buộc nhập): Nếu biểu thức không chứa giá trị nào như đã quy định, thì kết quả trả về giá trị khác.
Hàm TOTALYTD
Hàm TOTALYTD trực thuộc bộ hàm Time Intelligence của hàm DAX. Các hàm này đều trả về một giá trị, tùy theo bối cảnh được lựa chọn.
Hàm TOTALYTD đánh giá biểu thức được nhập và trả về giá trị là kết quả lũy kế của biểu thức từ ngày đầu năm tới hiện tại (hoặc ngày được lựa chọn trong 1 số filter ngày tháng).
Hàm TOTALQTD đánh giá biểu thức được nhập và trả về giá trị là kết quả lũy kế của biểu thức từ ngày đầu quý tới hiện tại (hoặc ngày được lựa chọn trong 1 số filter ngày tháng).
Hàm TOTALMTD đánh giá biểu thức được nhập và trả về giá trị là kết quả lũy kế của biểu thức từ ngày đầu tháng tới hiện tại (hoặc ngày được lựa chọn trong 1 số filter ngày tháng).
Use cases
Hàm này thường dùng để giải quyết bài toán kinh doanh yêu cầu tính doanh thu, lợi nhuận,… lũy kế từ đầu kì.
Syntax
Hàm TOTALYTD
Hàm TOTALYTD có công thức tính như sau:
TOTALYTD(<biểu thức>,<cột ngày tháng năm>[,<bộ lọc>][,<ngày kết thúc năm>])
Trong đó:
- Biểu thức – Expression: Biểu thức trả về một giá trị
- Cột ngày tháng năm – Dates: Tên 1 cột chứa ngày tháng năm, hoặc tên 1 bảng chỉ chứa 1 cột ngày tháng năm.
- Bộ lọc – Filter (không bắt buộc): Một biểu thức True/False (boolean) hoặc một biểu thức trả về bảng dùng làm bộ lọc cho biểu thức TOTALYTD.
- Ngày kết thúc năm – YearEndDate (không bắt buộc): Ngày kết thúc năm. Giá trị mặc định là 31/12.
Hàm TOTALQTD
Mục đích sử dụng
Giống như đã nhắc ở trên, hàm TOTALQTD đánh giá biểu thức được nhập và trả về giá trị là kết quả lũy kế của biểu thức từ ngày đầu quý tới hiện tại (hoặc ngày được lựa chọn trong 1 số filter ngày tháng).
Use cases
Các hàm này thường dùng để giải quyết bài toán kinh doanh yêu cầu tính doanh thu, lợi nhuận,… lũy kế từ đầu quý tới hiện tại.
Syntax
Hàm TOTALQTD có công thức tính như sau:
TOTALQTD(<biểu thức>,<cột ngày tháng năm>[,<bộ lọc>])
- Biểu thức – Expression: Biểu thức trả về một giá trị
- Cột ngày tháng năm – Dates: Tên 1 cột chứa ngày tháng năm, hoặc tên 1 bảng chỉ chứa 1 cột ngày tháng năm.
- Bộ lọc – Filter (không bắt buộc): Một biểu thức True/False (boolean) hoặc một biểu thức trả về bảng dùng làm bộ lọc cho biểu thức TOTALQTD.
Hàm TOTALMTD
Syntax
Hàm TOTALMTD có công thức tính tương tự như hàm TOTALQTD như sau:
TOTALMTD(<biểu thức>,<cột ngày tháng năm>[,<bộ lọc>])
Hàm USERELATIONSHIP
Mục đích sử dụng
Hàm USERELATIONSHIP được dùng để xác định mối quan hệ giữa hai bảng của hàm DAX mà chúng ta cần sử dụng khi tính toán trong các hàm, trong trường hợp giữa hai bảng có nhiều hơn 1 mối quan hệ. Hàm này không trả về giá trị nào mà chỉ có tác dụng bật mối quan hệ của hai bảng trong hàm tính toán có sử dụng hàm USERELATIONSHIP.
Use cases
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ệ active và một (hoặc nhiều) 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 lựa chọn những mối quan hệ giữa hai bảng ấy để phục vụ tính toán các chỉ số.
Một số ứng dụng thường thấy nhất của hàm USERELATIONSHIP là để sử dụng linh hoạt mối quan hệ giữa bảng Date và một bảng khác, ví dụ như bảng fact thể hiện giao dịch của một doanh nghiệp.
Do trên bảng fact giao dịch này có thể có ngày tạo đơn hàng, ngày giao hàng, ngày đơn hàng chuyển trạng thái hoàn thành,… nhưng khi tính toán, chúng ta không chỉ muốn tính số đơn hàng dựa trên ngày tạo đơn, mà muốn tính toán số đơn dựa trên ngày giao hàng, hay ngày hoàn thành đơn hàng.
Lúc này, sử dụng hàm USERELATIONSHIP trong công thức tính toán sẽ giúp chúng ta sử dụng được các mối quan hệ về ngày theo mong muốn.
Syntax
Hàm USERELATIONSHIP có cú pháp như sau:
USERELATIONSHIP(<cột 1>,<cột 2>)
Hàm SUMX
Mục đích sử dụng
Thông thường chúng ta sử dụng hàm SUM của hàm DAX để 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 yêu cầu hai đối số là bảng và biểu thức, hàm này sẽ hoạt động theo phương thức: quét từng dòng trong bảng, tính toán theo biểu thức, và trả về kết quả tổng.
Use cases
Hàm SUMX thường được sử dụng trong những trường hợp cần tính toán kết quả theo từng dòng, dựa trên nhiều cộtc của hàm DAX. Nhưng cũng trong hàm DAX, Hàm SUMX cũng là hàm cho phép sử dụng đối số là một bảng trong công thức, do đó chúng ta có thể kết hợp với các hàm trả về giá trị bảng để tính toán.
Syntax
Cú pháp của hàm SUMX có dạng như sau:
SUMX(<bảng>,<biểu thức tính>)
Trong đó:
- Bảng – Table: Bảng chứa giá trị mà biểu thức cần tính toán
- Biểu thức tính – Expression: Biểu thức cần tính toán. Biểu thức có thể là phép cộng, trừ, nhân, chia.
Hàm RELATED
Mục đích sử dụng
Hàm RELATED trả về một giá trị liên quan đến dòng trong bảng từ một bảng khác. Khi sử dụng hàm RELATED, hai bảng được tham chiếu bắt buộc phải có mối quan hệ 1 – nhiều hoặc 1 – 1. Khi tham chiếu, chúng ta bắt buộc phải dùng bảng gốc là bảng nằm ở đầu nhiều của mối quan hệ, và bảng tham chiếu là bảng nằm ở đầu 1 của mối quan hệ.
Hàm RELATED trả về giá trị tham chiếu theo dòng, do đó hàm này có thể sử dụng khi viết công thức, hoặc tạo cột mới trong bảng.
Use cases
Hàm RELATED thường được sử dụng trong các hàm tính toán cần lấy giá trị giữa 2 bảng có mối quan hệ.
Syntax
Cú pháp hàm RELATED như sau: RELATED(<cột>)
Kết luận
Bài viết đơn thuần cung cấp các hàm DAX trong Power BI giúp cho quá trình thực hiện và sử dụng trở nên thuận tiện hơn Làm việc với các công thức sẽ giúp giải quyết tương đối các bài toán kinh doanh với vai trod cảu một Data Analyst.
Cảm ơn bạn đã đọc bài viết. Chúng tôi tự hào cung cấp các dịch vụ đa dạng trong lĩnh vực CNTT, bao gồm:
Triển khai kho dữ liệu DWH: Giải pháp lưu trữ dữ liệu, giúp doanh nghiệp tối ưu hóa việc quản lý và phân tích dữ liệu lớn.
Dịch vụ phát triển phần mềm: Tạo ra các ứng dụng và giải pháp phần mềm tùy chỉnh để đáp ứng nhu cầu cụ thể của bạn.
Dịch vụ IT Outsourcing: Đội ngũ chuyên gia dữ liệu giàu kinh nghiệm, sẵn sàng gia nhập và thúc đẩy dự án của bạn.
Dịch vụ xây dựng báo cáo BI: Chuyển đổi dữ liệu thô thành thông tin chiến lược giúp ra quyết định chính xác hơn.
Đào tạo về dữ liệu: Các khóa học chất lượng cao, thiết kế dành riêng cho doanh nghiệp, giúp nâng cao kỹ năng và kiến thức về dữ liệu của đội ngũ của bạn.