Khám Phá Ngôn Ngữ DAX: Phép Tính CALCULATE và Các Hàm Liên Quan

13/01/2026    43    4.9/5 trong 5 lượt 
Khám Phá Ngôn Ngữ DAX: Phép Tính CALCULATE và Các Hàm Liên Quan
Ngôn ngữ DAX mang đến khả năng tính toán mạnh mẽ và linh hoạt trong Power BI và Power Pivot. Đặc biệt, hàm CALCULATE trong DAX giúp người dùng thực hiện các phép tính phức tạp cùng với các hàm ALL, ALLEXCEPT, ALLSELECTED, FILTER và KEEPFILTERS. Bài viết này sẽ giải thích cú pháp và ứng dụng của chúng để dẫn lối cho bạn khám phá DAX.

Cú Pháp và Ứng Dụng của Hàm CALCULATE

Trong thế giới của DAX, hàm CALCULATE được coi là trung tâm và là một công cụ chủ lực giúp bạn tối ưu hóa khả năng phân tích dữ liệu trong Power BI. Hiểu rõ cú pháp cũng như ứng dụng của hàm này sẽ mở ra khả năng điều chỉnh bối cảnh tính toán một cách linh hoạt, mang lại cho người dùng một công cụ mạnh mẽ để tương tác với dữ liệu.

Trước tiên, cú pháp cơ bản của hàm CALCULATE là như sau:

CALCULATE(<expression>, [<filter1>, <filter2>, ...])

Ở đây, expression là biểu thức mà bạn muốn tính toán, trong khi các filter là các điều kiện lọc mà bạn muốn áp dụng để điều chỉnh bối cảnh tính toán.

Ví dụ, nếu bạn muốn tính tổng doanh thu nhưng muốn giới hạn chỉ ở một sản phẩm cụ thể, bạn có thể áp dụng CALCULATE như sau:

CALCULATE(SUM(Sales[DoanhThu]), Sales[SanPham] = "SanPhamA")

Với công thức này, DAX sẽ điều chỉnh bối cảnh tính toán để chỉ bao gồm dữ liệu liên quan đến "SanPhamA", sau đó thực hiện tính tổng doanh thu bán ra cho sản phẩm này.

Tính năng quan trọng nhất của CALCULATE là khả năng nó cho phép bạn thêm, thay đổi hoặc thậm chí loại bỏ bộ lọc hiện có trong ngữ cảnh của biểu thức. Phương pháp này là nền tảng để tạo ra các phép đo lường động, các chỉ số KPI phức tạp và tùy biến trong Power BI.

Một điểm cần lưu ý khi sử dụng CALCULATE là cách thức nó kết hợp với các hàm lọc khác như ALL, ALLEXCEPT, hay FILTER, cho phép mở rộng khả năng kiểm soát ngữ cảnh của bộ lọc. Khả năng điều chỉnh này không chỉ dừng lại ở việc bổ sung bộ lọc, mà còn bao gồm việc loại bỏ hay giữ lại một phần bộ lọc nhằm tạo điều kiện cho các phép tính phức tạp hơn.

Một ví dụ thực tế khác để thấy ứng dụng mạnh mẽ của CALCULATE là khi bạn cần so sánh tổng doanh thu của một tháng đối với tháng trước đó. Sử dụng CALCULATE cùng với hàm FILTER, bạn có thể cấu hình ngữ cảnh để lọc ra tháng trước và tính toán một cách chính xác.

Khả năng chuẩn hóa ngữ cảnh tính toán giúp CALCULATE trở thành một công cụ không thể thiếu trong các mô hình dữ liệu phức tạp. Nắm vững cú pháp và cách thức hoạt động của nó là điều kiện tiên quyết để khai thác tối đa sức mạnh của DAX.

Trong các chương tiếp theo, chúng ta sẽ đi sâu tìm hiểu về các hàm liên quan như ALL, ALLEXCEPTALLSELECTED để thấy rõ hơn cách chúng có thể tương tác với CALCULATE khiến cho khả năng phân tích dữ liệu của bạn được tăng cường đáng kể.

Để đảm bảo đo lường hoạt động chính xác, bạn cũng cần chú ý đến công cụ debug nhằm xác định và khắc phục những sai lệch trong quá trình tính toán. Việc này không chỉ giúp cải thiện tính chính xác của báo cáo mà còn nâng cao hiệu quả của tiến trình phân tích dữ liệu.


Hàm ALL, ALLEXCEPT và ALLSELECTED: Mô tả và So sánh

Trong ngôn ngữ DAX, hàm ALL, ALLEXCEPTALLSELECTED đóng vai trò quan trọng trong việc kiểm soát các bộ lọc dữ liệu. Những hàm này không chỉ giúp điều chỉnh phép tính mà còn mở ra các khả năng phân tích mạnh mẽ hơn trong Power BI. Để có thể hiểu và áp dụng chúng một cách hiệu quả, hãy cùng tìm hiểu từng hàm một cách chi tiết.

Hàm ALL

ALL là hàm dùng để xóa tất cả các bộ lọc đã được áp dụng trên một bảng hoặc một cột nào đó. Khi sử dụng ALL, bạn có thể tính toán ra kết quả tổng thể mà không bị ảnh hưởng bởi các bộ lọc hiện tại. Điều này đặc biệt hữu ích khi bạn cần tạo ra các phép tính như tổng cộng hoặc trung bình mà không bị giới hạn bởi ngữ cảnh hiện tại của báo cáo.

Hàm ALLEXCEPT

ALLEXCEPT là hàm phức tạp hơn và linh hoạt hơn so với ALL. Nó cho phép loại bỏ tất cả các bộ lọc của một bảng, ngoại trừ những cột mà bạn chỉ định giữ lại. ALLEXCEPT cực kỳ hữu dụng trong các trường hợp bạn cần tính toán loại trừ một hoặc vài cột, trong khi vẫn giữ nguyên bộ lọc cho các cột khác.

Bằng cách sử dụng ALLEXCEPT, người dùng có thể giữ lại ngữ cảnh bộ lọc cho một hoặc nhiều cột mà vẫn có được kết quả tính toán theo mong muốn.

Hàm ALLSELECTED

Cuối cùng, ALLSELECTED là hàm đặc biệt cho phép loại bỏ tất cả các bộ lọc ngoại trừ những bộ lọc tương tác đã được thiết lập thông qua việc chọn trên báo cáo. ALLSELECTED đặc biệt hữu dụng trong các báo cáo tương tác mà nơi việc chọn lựa trong giao diện người dùng của Power BI có ý nghĩa trong phép tính.

Hàm này thường được dùng để tối ưu hóa trải nghiệm người dùng bằng cách giữ lại ngữ cảnh của những lựa chọn mà người dùng đã thực hiện trên báo cáo, đồng thời vẫn có được cái nhìn toàn cảnh dựa trên những lựa chọn đó.

Tóm lại, hiểu rõ cách thức hoạt động của ALL, ALLEXCEPTALLSELECTED sẽ giúp bạn tối ưu hóa khả năng phân tích dữ liệu trong Power BI, cho phép bạn thực hiện các phép tính phức tạp dựa vào bối cảnh và ngữ cảnh cụ thể của dữ liệu.


Sử Dụng FILTER và KEEPFILTERS

Trong quá trình phân tích dữ liệu với DAX, hai hàm FILTERKEEPFILTERS đóng vai trò cực kỳ quan trọng. Hiểu rõ cách hoạt động và kết hợp của chúng là tiền đề để tối ưu hóa việc khai thác dữ liệu một cách tối ưu. FILTER giúp bạn tạo ra những bộ lọc tùy chỉnh trên một tập dữ liệu, mang lại sự linh hoạt cao và kiểm soát chi tiết hơn trong phép tính.

Hiểu Về Hàm FILTER

Cơ bản, hàm FILTER hoạt động bằng cách lọc ra những hàng dữ liệu đáp ứng một điều kiện nhất định. Nó cho phép người dùng duyệt qua từng hàng và chỉ giữ lại những giá trị nào phù hợp với tiêu chí đã thiết lập. Điều này trở nên vô cùng hữu dụng khi chúng ta cần thực hiện phân tích một phân khúc cụ thể của dữ liệu.

Hãy xét ví dụ khi làm việc với bảng Sales. Giả sử bạn chỉ muốn tính tổng doanh thu của sản phẩm A trong tháng Một:

    CALCULATE(SUM(Sales[Revenue]), FILTER(Sales, Sales[Product] = "A" && Sales[Month] = 1))
            

Ví dụ trên áp dụng FILTER để chỉ chọn những hàng có Product là "A" và Month là "1", sau đó tính tổng doanh thu của các hàng được lọc.

Khám Phá Hàm KEEPFILTERS

Ngược lại với FILTER, hàm KEEPFILTERS không dùng để tạo ra bộ lọc mới, mà nó giúp duy trì các bộ lọc hiện có trước khi thêm một bộ lọc khác vào câu truy vấn. Đây là một công cụ mạnh mẽ để giữ nguyên bộ lọc ngữ cảnh đã tồn tại khi thêm điều kiện lọc mới.

Sự khác biệt này rất quan trọng khi bạn muốn tính toán một giá trị, nhưng vẫn muốn giữ lại các bộ lọc đã được áp dụng từ trước trong ngữ cảnh của dữ liệu.

Xem xét ví dụ tiếp theo, chúng ta áp dụng KEEPFILTERS:

    CALCULATE(SUM(Sales[Revenue]), KEEPFILTERS(FILTER(Sales, Sales[Product] = "A")))
            

Chúng ta đang sử dụng FILTER để chỉ lọc sản phẩm "A", nhưng với KEEPFILTERS, chúng ta đảm bảo rằng bất kỳ bộ lọc nào trước đó, chẳng hạn như bộ lọc ngày tháng, sẽ không bị ghi đè.

Kết Hợp FILTER và KEEPFILTERS

Sử dụng hai hàm này cùng nhau mang lại tiềm năng lớn trong việc tùy biến truy vấn DAX. Bạn có thể vừa duy trì bộ lọc hiện có vừa gán thêm điều kiện mới một cách hiệu quả.

Nếu dữ liệu có thể có nhiều bộ lọc đã áp dụng, việc cẩn trọng trong việc sử dụng KEEPFILTERS sẽ giúp bạn tạo ra các phép toán mà không đánh mất ngữ cảnh quan trọng. Ví dụ, bạn có thể muốn duy trì bộ lọc về thị trường và chỉ thay đổi điều kiện sản phẩm mà thôi.

    CALCULATE(SUM(Sales[Revenue]), KEEPFILTERS(FILTER(Sales, Sales[Market] = "Europe")), FILTER(Sales, Sales[Product] = "A"))
            

Ví dụ này biểu diễn cách duy trì bộ lọc cho thị trường "Europe" trong khi đồng thời lọc cho sản phẩm "A". Điều này rất hữu ích khi phân tích dự liệu tại nhiều chiều khác nhau mà không làm mất đi các điều kiện trọng yếu đã thiết lập trước đó.

Trong tổng hợp, việc hiểu và vận dụng hai hàm này nhuần nhuyễn giúp bạn kiểm soát và tối ưu hóa việc phân tích dữ liệu hơn rất nhiều. Điều này không chỉ giúp tránh các lỗi sai không mong muốn mà còn cải thiện hiệu suất phân tích trong dài hạn.


Khắc Phục Lỗi Sai Số trong DAX

Một trong những thách thức chính khi làm việc với DAX chính là phát hiện và sửa lỗi khi các phép tính không cho kết quả như mong đợi. Để giải quyết những vấn đề này, việc hiểu rõ công cụ kiểm tra và phân tích lỗi trong DAX đóng vai trò quan trọng. Trong phần này, tôi - Mãnh Tử Nha từ blog nha.ai.vn - sẽ cùng bạn đi sâu vào cách sử dụng các công cụ kiểm tra trong DAX để xác định nguồn gốc của các sai số và cách điều chỉnh công thức để đạt được kết quả chính xác.

Phương pháp xác định và điều chỉnh lỗi trong DAX

Khi gặp phải sai số trong kết quả DAX, bước đầu tiên là sử dụng các tính năng debug có sẵn. Power BI và Excel cung cấp các công cụ hữu dụng như Evaluate, Check, và Error để xác định lỗi. Những công cụ này giúp bạn theo dõi và xác minh các tính toán để nhận diện các điểm sai và từ đó điều chỉnh lại công thức.

1. Kiểm tra Cấu trúc Công thức

Để bắt đầu, hãy đảm bảo rằng cú pháp của bạn không có lỗi. Các lỗi cú pháp thường xuất phát từ việc đặt sai các dấu ngoặc, dấu phẩy, hoặc thậm chí là một tên hàm viết sai chính tả. Công cụ Check giúp phân tích cú pháp và đánh dấu các lỗi dễ bỏ qua này.

2. Sử dụng Công cụ Evaluate

Công cụ Evaluate cho phép bạn quan sát giá trị của các cột và bảng liên quan tới công thức. Bằng cách này, bạn có thể đảm bảo các thành phần dữ liệu đang được định nghĩa và tính toán đúng.

Làm Thế Nào Điều Chỉnh Công Thức để Đạt Được Kết Quả Chính Xác

Sau khi nhận diện được lỗi, bước tiếp theo là điều chỉnh công thức. Dưới đây là một số phương pháp có thể áp dụng:

1. Sử dụng Hàm IF và ISERROR

Sử dụng hàm IF kết hợp với ISERROR để xử lý các trường hợp lỗi không cần thiết. Ví dụ đơn giản của điều này là bao bọc công thức có khả năng gây lỗi trong hàm IF để tránh bị gián đoạn bởi lỗi.
Ví dụ:

IF(ISERROR([Your Measure]), "Error Handled", [Your Measure])

2. Kiểm Tra Mối Quan Hệ Bảng

Các sai sót thường phát sinh từ những mối quan hệ bảng không đúng cách. Việc xác minh rằng tất cả các mối quan hệ cần thiết đang hoạt động đúng có thể ngăn ngừa kết quả sai lầm. Đối với các dữ liệu phức tạp, việc kiểm tra và đảm bảo one-to-one hoặc one-to-many là cần thiết.

Công Cụ Gỡ Lỗi Trong Power BI

Power BI cung cấp một số tính năng tiện ích giúp bạn gỡ lỗi. Sử dụng Performance Analyzer cho phép bạn xem thời gian thực thi của các biểu thức DAX, từ đó phát hiện ra các điểm gây suy giảm hiệu suất, điều rất hữu ích khi tối ưu hóa hiệu quả công thức DAX.

Sử Dụng Visual xac minh

Khi bạn thêm công thức vào một visual, sử dụng tính năng chi tiết trên graph để thấy rõ cách dữ liệu đang được hiển thị và làm thế nào để điều chỉnh visual xuất kết quả mà công thức của bạn mong muốn.

Với các công cụ và phương pháp này, bạn sẽ thấy quá trình gỡ lỗi trong DAX không còn quá phức tạp nữa. Hãy thực hành để nâng cao kỹ năng phân tích dữ liệu và tận dụng tối đa sức mạnh của DAX trong các công việc phân tích duyệt số liệu. Chắc chắn bạn sẽ thấy nhiều tiến bộ trong việc quản lý và tối ưu hóa dữ liệu hàng ngày!


Kết luận
DAX mang lại khả năng mạnh mẽ và linh hoạt trong việc phân tích và trực quan hóa dữ liệu thông qua Power BI và Power Pivot. Hiểu rõ và ứng dụng đúng hàm CALCULATE cùng các hàm liên quan như ALL, FILTER không chỉ giúp tối ưu hóa quy trình phân tích mà còn mở ra nhiều cơ hội khai thác dữ liệu hiệu quả hơn trong kinh doanh.
By AI