Việc chia nhỏ, quan sát một tập dữ liệu đã được sắp xếp theo thứ tự tăng dần hay giảm dần là bài toán phổ biến khi xây dựng báo cáo và trong phân tích dữ liệu. Với Power BI, một trong những công cụ hữu ích để thực hiện điều này là hàm TOPN. Bài viết hôm nay, chúng ta sẽ tìm hiểu cách sử dụng hàm TOPN để trích xuất thông tin quan trọng từ tập dữ liệu.
Mục lục
- 1 Mục đích sử dụng hàm TOPN
- 2 Cú pháp sử dụng hàm TOPN
- 3 Kết quả trả về
- 4 Cách sử dụng hàm TOPN:
- 4.1 Hiển thị top 5 Order có Total Amount cao nhất
- 4.2 Hiển thị tổng doanh thu 5 ngày gần nhất
- 4.3 Hiển thị top 3 sản phẩm có Total Amount thấp nhất
- 4.4 Hiển thị 20 Order có Order Quantity thấp nhất và sau đó với các dòng có giá trị Order Quantity bằng nhau sẽ sắp xếp theo OrderDate gần đây nhất
- 5 Tạm kết
Mục đích sử dụng hàm TOPN
TOPN là một hàm DAX trong Power BI, có chức năng trả về giá trị các hàng đầu (hoặc hàng cuối) của một bảng dựa trên tiêu chí sắp xếp của một biểu thức. Hàm TOPN giúp người dùng lọc và hiển thị các giá trị mong muốn một cách hiệu quả, tối ưu hóa quá trình phân tích dữ liệu.
Cú pháp sử dụng hàm TOPN
- Cú pháp:
= TOPN(<n_value>, <table>, <order_by_expression> [, <order>[, <order_by_expression> [, <order>]]…])
- Giải thích:
Tham số | Giải thích |
n_value | Số hàng cần trả về trong kết quả |
table | Là bảng hoặc biểu thức trả về dạng bảng mà từ đó các hàng sẽ được trích xuất ra. |
order_by_expression | Kết quả biểu thức được sử dụng để sắp xếp và đánh giá cho từng hàng của bảng |
order (Không bắt buộc) | Một giá trị chỉ định cách sắp xếp các giá trị biểu thức: – DESC: Lấy Top N hàng cao nhất – ASC: Lấy Top N hàng thấp nhất Mặc định là DESC nếu không được chỉ định. |
Kết quả trả về
Giá trị | Kết quả trả về |
n_value > 0 | Trả về một bảng có n_value hàng |
n_value <= 0 | Trả về một bảng trống |
Lưu ý:
- Các hàng không nhất thiết phải được sắp xếp theo bất kỳ thứ tự cụ thể nào.
- Nếu N_Value bằng 0 (không) hoặc nhỏ hơn 0, TOPN sẽ trả về một bảng rỗng.
- Nếu giá trị thứ N bằng nhau thì sẽ được trả về tất cả các dòng cùng giá trị đó. Do đó, khi có sự bằng nhau trong N hàng hàng, hàm có thể trả về nhiều hơn n hàng.
- Hàm này không được hỗ trợ để sử dụng trong 2 trường hợp:
+ Trong DirectQuery khi áp dụng các cột tính toán: Không phải tất cả các phép biến đổi dữ liệu đều được hỗ trợ và TOPN là 1 trong số đó. Trong môi trường DirectQuery, nếu bạn sử dụng một chuyển đổi không được hỗ trợ, bạn sẽ nhận được thông báo lỗi cho biết “This step results in a query that is not supported in DirectQuery mode”

+ Sử dụng quy tắc bảo mật cấp hàng (RLS): Do cách xử lý dữ liệu, Power BI có thể xử lý các tính toán và áp dụng các bộ lọc theo cách mà bạn không mong muốn khi làm việc với RLS. Khi bạn sử dụng hàm TOPN, Power BI có thể không nhận ra rằng nó cần áp dụng RLS trước khi thực hiện tính toán TOPN. Kết quả là, người dùng có thể thấy dữ liệu mà họ không có quyền truy cập.
Cách sử dụng hàm TOPN:
Hiển thị top 5 Order có Total Amount cao nhất
Trường hợp sử dụng một biểu thức chính sắp xếp
- Công thức
Top5Order =
TOPN ( 5, Sales, Sales[Total Amount], DESC )
- Giải thích thông số
Thông số | Giải thích |
5 | Là số lượng hàng muốn lấy (top 5) |
Sales | Là bảng từ đó các hàng sẽ được trả về |
Sales[Total Amount] | Là biểu thức sắp xếp chính dựa trên cột [Total Amount] |
DESC | Sắp xếp các hàng theo thứ tự giảm dần của [Total Amount] |
- Kết quả

Hiển thị tổng doanh thu 5 ngày gần nhất
Trường hợp sử dụng một biểu thức sắp xếp
- Công thức
TheLast5Days =
VAR Top5Days =
SUMMARIZE ( Sales, Sales[OrderDate], "TotalSales", SUM ( Sales[Total Amount] ) )
RETURN
TOPN ( 5, Top5Days, Sales[OrderDate], DESC )

- Kết quả

Hiển thị top 3 sản phẩm có Total Amount thấp nhất
Trường hợp sử dụng một biểu thức sắp xếp và <order_by_expression> không nằm trong <table>
- Cú pháp:
Top3Products =
VAR ProductSales =
ADDCOLUMNS (
'Product',
"TotalSales", CALCULATE ( SUM ( Sales[Total Amount] ) )
)
RETURN
TOPN ( 3, ProductSales, [TotalSales], ASC )

- Kết quả

Hiển thị 20 Order có Order Quantity thấp nhất và sau đó với các dòng có giá trị Order Quantity bằng nhau sẽ sắp xếp theo OrderDate gần đây nhất
Sử dụng nhiều biểu thức sắp xếp
- Công thức
Top20Order =
TOPN ( 20, Sales, Sales[Order Quantity], ASC, Sales[OrderDate], DESC )
- Giải thích thông số
Thông số | Giải thích |
20 | Là số lượng hàng muốn lấy (top 5) |
Sales | Là bảng từ đó các hàng sẽ được trả về |
Sales[Order Quantity] | Là biểu thức sắp xếp chính dựa trên cột [Order Quantity] |
ASC | Lấy các hàng có giá trị thấp nhất |
Sales[OrderDate] | Là biểu thức sắp xếp phụ dựa trên cột [OrderDate] |
DESC | Sắp xếp [Order Quantity] theo thứ tự tăng dần |
- Kết quả

Tạm kết
Trong bài viết này, chúng ta đã tìm hiểu về hàm TOPN trong Power BI và cách lấy ra các hàng hàng đầu từ một bảng dữ liệu dựa trên một tiêu chí sắp xếp. Chúng ta đã thảo luận về cú pháp cơ bản của hàm TOPN và cách xử lý trong các trường hợp khác nhau. 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 TOPN 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ả.
