DAX Cơ bản: HÀM ALL – CÁCH SỬ DỤNG VÀ VÍ DỤ CỤ THỂ

Ngày đăng: 17/06/2024

DAX (Data Analysis Expression) trong Power BI bao gồm các hàm, toán tử và hằng số được sử dụng trong các công thức hoặc biểu thức để thực hiện tính toán và trả về một hoặc nhiều giá trị. DAX phân loại thành các nhóm như sau: Date and Time, Time Intelligence, Information, Logical, Mathematical, Statistical, Text, Parent/Child và các hàm khác.

Trong bài viết này, Datapot sẽ chia sẻ với mọi người một hàm DAX thuộc nhóm Filter thường được sử dụng nhiều trong công việc của một Data Analyst là: hàm ALL. Chúng ta hãy cũng tìm hiểu về các tìm hiểu về các hàm này cũng như ví dụ về cách ứng dụng của hàm trong thực tế nhé.

Mục đích sử dụng hàm ALL

Hàm ALL được sử dụng để bỏ qua tất cả các bộ lọc áp dụng trên một bảng hoặc cột cụ thể đã được chỉ định (các bộ lọc bao gồm: các trừờng khác trong biểu đồ trực quan, từ các bộ lọc slicer hoặc từ filter pane). Điều này hữu ích khi bạn cần tính toán tổng hợp mà không bị ảnh hưởng bởi các bộ lọc.

Ví dụ:

Sau khi dùng slicer để lọc,chúng ta có thể nhận thấy dù thay đổi điều kiện lọc như thế nào thì cột measure TotalProfit( ALL) cũng đều chỉ trả về một kết quả cho tất cả các category, vì chúng ta đã áp dụng hàm ALL cho cột category khi viết measure.

Cú pháp của hàm ALL

Cú pháp:

ALL( [<table> | <column>[, <column>[, <column>[,…]]]] )

Giải thích tham số:

Tham số

Giải thích

table

Bảng mà bạn muốn xóa bộ lọc

column

Cột mà bạn muốn xóa bộ lọc

Lưu ý:

Hàm ALL có thể sử dụng riêng lẻ, nhưng thường đóng vai trò như một hàm trung gian có thể được sử dụng để thay đổi tập hợp kết quả mà một số phép tính khác được thực hiện trước đó.

• Các giá trị truyền vào trong hàm ALL phải là các bảng hoặc cột được xác định cụ thể đã có sẵn, không phải là 1 biểu thức tính.

• Khi áp dụng hàm ALL lên toàn bộ các cột trong 1 bảng thì Power BI có thể trả ra kết quả không mong muốn, vậy nên chọn những cột có ảnh hưởng nhất để truyền vào trong hàm sẽ tối ưu hiệu suất và trả ra kết quả tốt nhất.

• Việc sử dụng hàm ALL trên một cột đã được sắp xếp theo một cột khác có thể dẫn đến một số kết quả phức tạp và cần được xem xét kỹ lưỡng. Vậy nên để có kết quả tốt nhất, bạn nên truyền cả hai cột vào trong hàm ALL.

Khi sử dụng hàm trong các cột tính toán hoặc hàm tuân theo quy tắc bảo mật cấp hàng thì hàm sẽ không được hỗ trợ sử dụng chế độ DirectQuery.

hàm AVERAGEX không hỗ trợ trong phương thức Direct Query

Kết quả trả về

• Hàm ALL trả về tất cả các giá trị của các dòng trong bảng, tất cả các giá trị trong một cột. Có thể áp dụng hàm ALL() kết hợp với hàm CALCULATE và các hàm tổng hợp khác như SUM(),… từ đó có thể tính toán tỷ lệ, phần trăm hoặc phân phối của các giá trị so với tổng của một tập hợp dữ liệu. Điều này rất có ích trong việc đánh giá mức độ đóng góp, thị phần và phân phối của các chỉ số.

Trường hợp cụ thể sử dụng hàm ALL

Để hiểu rõ và vận dùng hàm ALL trong Power BI một cách thành thục, chúng ta sẽ cùng đi vào thực hành các trường hợp phổ biến của hàm:

• Trường hợp 1: Sử dụng hàm ALL kết hợp hàm hàm DIVIDE để tính phần trăm lợi nhuận của từng khu vực trên toàn bộ

• Trường hợp 2: Sử dụng hàm ALL trong bài toán tìm chỉ số Inventory Ending Balance (Giá trị hàng tồn kho cuối kì)

Trường hợp 1: Sử dụng hàm ALL kết hợp hàm hàm DIVIDE để tính phần trăm lợi nhuận của từng khu vực trên toàn bộ.

Giả sử bạn đang làm việc với bảng ‘City’ chứa thông tin về tên thành phố và lợi nhuận từ mỗi thành phố. Bạn cần tạo measure < > để tính ra phần trăm lợi nhuận của từng thành phố trên toàn bộ:

• Công thức (3 Measure)

Công thức

Mục đích

TotalProfit =
SUM ( City[Profit] )

TotalProfit là tử số: Tổng lợi nhuận trên từng thành phố.

TotalProfit( ALL) =
SUM ( City[Profit] )

TotalProfit( ALL) là mẫu số: Hàm ALL được sử dụng để bỏ qua tất cả các bộ lọc áp dụng trên cột <City>. Hàm ALL kết hợp với CALCULATE có thể hỗ trợ việc tạo measure tính toán tỷ lệ, phần trăm mà không bị ảnh hưởng bởi các bộ lọc.

% Profit_ContributionByCity =
DIVIDE ( [TotalProfit], [TotalProfit( ALL)], 0 )

Dùng để tính phần trăm lợi nhuận của từng thành phố trên lợi nhuận của tất cả các thành phố.

• Kết quả trả về:

Trường hợp 2: Sử dụng hàm ALL trong bài toán tìm chỉ số Inventory Ending Balance (Giá trị hàng tồn kho cuối kì)

Giả sử bạn đang làm việc với bảng ‘EndingBalance’ chứa thông tin về ngày, sản phẩm, số lượng còn tồn kho. Bạn cần tạo measure < > để tìm ra số lượng tồn kho của mỗi sản phẩm trong nửa năm đầu:

• Công thức:

Inventory Ending Balance =
CALCULATE (
    LASTNONBLANKVALUE ( EndingBalance[Date], SUM ( EndingBalance[Quantity] ) ),
    ALL ( EndingBalance[Date] )
)

• Giải thích công thức:

Bước 1: Hàm LASTNONBLANKVALUE sẽ tìm giá trị cuối cùng không trống trong cột Date.

Bước 2: Hàm ALL được sử dụng để bỏ qua tất cả các bộ lọc trên cột Date, đảm bảo rằng kết quả của hàm LASTNONBLANKVALUE không bị ảnh hưởng bởi bất kỳ bộ lọc ngày (Date) nào.

• Kết quả trả về:

Hàm đã trả về số hàng tồn kho vào nửa đầu năm mặc dù có đổi điều kiện lọc trên Slicer như thế nào

Tạm kết

Trong bài viết này, chúng ta đã tìm hiểu về hàm ALL trong Power BI và cách sử hàm ALL kết hợp với các hàm tính toán khác để giải quyết các bài toán thường hặp. Hy vọng bài viết này đã giúp bạn hiểu rõ hơn về cách sử dụng hàm ALL trong Power BI và áp dụng nó vào công việc phân tích dữ liệu của bạn một cách hiệu quả.

Chia sẻ bài viết này

Để lại một bình luận

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 *

This site uses Akismet to reduce spam. Learn how your comment data is processed.