3 CÁCH lấy top n giá trị trong power bi

3 CÁCH LẤY TOP N GIÁ TRỊ ĐỂ ĐƯA VÀO BIỂU ĐỒ TRONG POWER BI

Ngày đăng: 12/09/2023

Trong trường hợp các bạn cần phải phân tích hoặc trực quan hóa một tập dữ liệu lớn, các bạn nên cân nhắc đến việc giới hạn lượng thông tin được hiển thị để giúp người xem có thể tập trung vào những thông tin chính và giúp họ tìm ra câu trả lời nhanh hơn. Một trong những phương pháp giới hạn dữ liệu hiệu quả là sử dụng Top N, có nghĩa là chỉ liệt kê những giá trị ở Top đầu hoặc cuối, những giá trị này có thể xem là đại diện cho tập dữ liệu. 

Vậy làm cách nào để lấy ra các giá trị nằm trong Top N này trong Power BI? Hãy cùng tìm hiểu bài viết này với Datapot nhé! 

Để thực hành theo các tình huống bên dưới, các bạn hãy download bộ dữ liệu sau về: Internet Sales.

Đây là dữ liệu liên quan đến tình hình bán hàng của một công ty bán lẻ các mặt hàng thể thao, các bạn có thể xem qua mô hình dữ liệu như bên dưới: 

Có 3 cách lấy để lấy Top N trong Power BI. Sau đây, Datapot sẽ chỉ bạn lần lượt 3 cách. 

Cách 1: Sử dụng Filter Pane để lấy Top N

Tình huống: Lấy ra Top 10 sản phẩm có doanh thu (Revenue) cao nhất 

Cách thực hiện

  • Bước 1: Tính Revenue bằng cách tạo Measure bằng công thức sau: 
  • Bước 2: Vào Visualizations \ Chọn Table (các bạn có thể chọn visual khác tùy ý) 
  • Bước 3: Kéo cột Product và measure Revenue vào ô Columns 

Trong phần Report view, ta sẽ có được một Table như sau: 

  • Bước 4: Click chọn Table vừa tạo sau đó trong phần Filters Pane, ta lựa chọn các thiết lập như hình bên dưới: 

Bấm chọn Apply filter, ta sẽ có được một Table như bên dưới: 

  • Bước 5: Click vào dấu … và thiết lập Sort descending(thứ tự giảm dần)/ascending(thứ tự lớn dần) và Sort by Revenue để sắp xếp thứ tự theo giá trị Revenue.

Vậy là chúng ta vừa lấy ra Top 10 sản phẩm có doanh thu cao nhất bằng chức năng Filters Pane, đây là cách đơn giản và dễ sử dụng. Tuy nhiên, cách này sẽ không linh động trong các tình huống yêu cầu độ phức tạp cao hơn hoặc các tình huống yêu cầu chúng ta phải tạo ra công thức tính toán linh hoạt hơn. Các bạn cùng tìm hiểu thêm cách lấy Top N bằng hàm TOPN và hàm RANKX ở các phần bên dưới nhé. 

Cách 2: Sử dụng hàm TOPN 

Giới thiệu hàm TOPN 

– Hàm TopN trả về một bảng có N hàng tương ứng 

– Cú pháp: 

TOPN(<N_Value>, <Table>, <OrderBy_Expression>, [<Order>[, <OrderBy_Expression>, [<Order>]]…])  

– Trong đó:  

  • <N_value> là số lượng dòng trả về  
  • <Table> là bất kỳ biểu thức DAX nào trả về bảng dữ liệu dùng để trích xuất dữ liệu các dòng <N_value>  
  • < OrderBy_Expression> là bất kỳ biểu thức DAX nào trả về giá trị dùng để sắp xếp bảng và đánh giá mỗi dòng dữ liệu của bàng  
  • <Order> ( tham số tùy chọn) là tham số chỉ định giá trị < OrderBy_Expression> được sắp xếp theo thứ tự tăng dần hay giảm dần. 

Tình huống:  

Chúng ta có một bảng doanh thu (Revenue) theo từng năm như bên dưới: 

Bây giờ, chúng ta muốn tính tỷ trọng của Top 10 doanh thu cao nhất chiếm bao nhiêu phần trăm so với tổng doanh thu từng năm. 

Cách thực hiện: 

  • Bước 1: Tính Top 10 Revenue bằng cách tạo ra Measure bằng công thức: 
  • Bước 2: Tính tỷ trọng bằng cách tạo ra Measure bằng công thức: 

Chúng ta có thể biểu diễn 02 chỉ số này thông qua biểu đồ Area Chart như sau: 

Sử dụng hàm TOPN để lấy Top N

Cách 3: Sử dụng hàm RANKX 

Giới thiệu hàm RANKX 

Datapot đã có một bài viết chi tiết về cách sử dụng hàm RANKX, mời các bạn tham khảo tại đây

Tình huống:  

Chúng ta có bảng dữ liệu doanh thu (Revenue) của từng sản phẩm theo mỗi quốc gia như bảng bên dưới: 

Yêu cầu lấy ra linh hoạt Top 5, Top 10, Top 15…. sản phẩm có doanh thu cao nhất theo từng quốc gia. 

Với tình huống tùy chọn linh hoạt như thế này, chúng ta không thể sử dụng hàm TopN vì hàm này trả về một bảng dữ liệu, còn tình huống của chúng ta cần linh hoạt theo ngữ cảnh nên ở đây chúng ta sẽ áp dụng hàm RANKX để xử lý nhé. 

Cách thực hiện: 

  • Bước 1: Xếp hạng các sản phẩm theo doanh thu bằng cách tạo ra Measure bằng công thức như bên dưới: 
  • Bước 2: Tạo ra slicer để tùy chọn các giá trị Top N bằng chức năng Create Parameter.

– Trong Tab Modeling, chọn New parameter \ Numeric range 

– Khi cửa sổ mới hiện lên, điền các giá trị như hình bên dưới và bấm Create để tạo slicer 

– Với thao tác trên, chúng ta sẽ tạo được một slicer: 

– Để thực hiện chức năng tùy chọn slicer TopN theo các giá trị Top 5, Top 10, Top 15, chúng ta cần kết hợp với hàm SELECTEDVALUE ( hàm này trả về giá trị khi chỉ có một giá trị trong cột được chỉ định) như sau: 

  • Bước 3: Tạo Measure bằng công thức bên dưới:
Ranking Selected =
IF ( [Ranking] <= SELECTEDVALUE ( ‘TOPN'[TOPN] )10 )

– Công thức này có ý nghĩa là nếu giá trị trong cột Ranking nằm trong khoảng Top N ở trên, thì giá trị sẽ trả về TRUE, còn lại là FALSE 

  • Bước 4: Chọn bảng dữ liệu cần hiển thị, tại Filter Pane ta kéo Measure Ranking_Selected vào để giới hạn các giá trị cần hiển thị, bấm Apply Filter 

– Bây giờ các bạn thử thao tác bằng cách tick chọn các giá trị TopN trong slicer để thấy sự thay đổi trong bảng dữ liệu nhé 

– Ngoài ra, để visual được thể hiện tinh gọn hơn, các bạn có thể ẩn cột Ranking đi, chỉ thể hiện Top các sản phẩm có doanh thu cao nhất thôi nhé.

KẾT LUẬN 

Trên đây là 03 cách thông dụng để lấy giá trị Top N trong Power BI. Đây là bài toán thường xảy ra trong phân tích dữ liệu vì hầu hết người dùng sẽ quan tâm nhiều hơn đến các giá trị ở Top đầu hoặc cuối. Hy vọng các bạn sẽ lựa chọn được cho mình cách phù hợp để áp dụng cho từng trường hợp nhé.

Với các bạn mới bắt đầu tìm hiểu Power BI & mong muốn ứng dụng Power BI trong công việc, hãy tham khảo khóa học PL-300: Microsoft Power BI Data Analyst từ Datapot.

Được thiết kế và giảng dạy bởi các chuyên gia giàu kinh nghiệm làm việc và đào tạo trong ngành dữ liệu, được triển khai tại các doanh nghiệp như Unilever, SHB, MB Ageas Life,.., khóa học sẽ mang đến cho bạn những kiến thức và kỹ năng thực tiễn nhất.

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 *