Tạo bảng xếp hạng top 10 trong Excel có thể mất nhiều thời gian nếu làm theo cách truyền thống. Tôi thường phải sắp xếp dữ liệu thủ công, sao chép các giá trị cao nhất, rồi dán vào phần riêng. Mỗi khi dữ liệu thay đổi phải lặp lại toàn bộ quy trình này. Hàm TAKE trong Excel 2024 giải quyết vấn đề này bằng cách tự động trích xuất số hàng hoặc cột cụ thể từ bất kỳ vùng dữ liệu nào.

Hàm TAKE hoạt động như thế nào
Hàm TAKE trích xuất một số lượng hàng hoặc cột liên tiếp từ đầu hoặc cuối của một mảng dữ liệu. Cú pháp cơ bản là =TAKE(array, rows, [columns]) trong đó array là vùng dữ liệu gốc, rows là số hàng cần lấy, và columns là số cột cần lấy.
Điểm đặc biệt của tham số rows và columns là chúng chấp nhận cả số dương và số âm. Số dương lấy dữ liệu từ đầu mảng xuống dưới hoặc từ trái sang phải. Số âm lấy dữ liệu từ cuối mảng lên trên hoặc từ phải sang trái. Nếu bỏ qua tham số rows thì phải có columns và ngược lại.
Ví dụ cơ bản:
=TAKE(A2:C10, 5)lấy 5 hàng đầu tiên từ vùng A2:C10=TAKE(A2:C10, -5)lấy 5 hàng cuối cùng từ vùng A2:C10=TAKE(A2:C10, , 2)lấy 2 cột đầu tiên từ tất cả các hàng
Hàm này chỉ có sẵn trong Excel 365, Excel 2024, và Excel for Web. Các phiên bản cũ hơn như Excel 2019 hoặc Excel 2016 không hỗ trợ.
Kết hợp TAKE với SORT để tạo top lists động
Sức mạnh thực sự của TAKE xuất hiện khi kết hợp với hàm SORT. Thay vì sắp xếp toàn bộ bảng dữ liệu, bạn có thể sắp xếp rồi chỉ lấy số lượng kết quả cần thiết.
Giả sử bạn có bảng doanh số bán hàng với tên nhân viên trong cột A và doanh số trong cột B từ A2 đến B50. Để tạo top 5 nhân viên có doanh số cao nhất:
=TAKE(SORT(A2:B50, 2, -1), 5)
Công thức này hoạt động như sau: SORT sắp xếp vùng A2:B50 theo cột thứ 2 (doanh số) theo thứ tự giảm dần (-1 là descending). TAKE sau đó lấy 5 hàng đầu tiên từ kết quả đã sắp xếp.
Khi dữ liệu gốc thay đổi, top list tự động cập nhật mà không cần can thiệp thủ công. Tôi áp dụng công thức này cho dashboard doanh số hàng tháng và tiết kiệm được 30 phút mỗi tuần so với cách cập nhật thủ công.
Lấy top performers từ nhiều bảng dữ liệu
Khi cần kết hợp dữ liệu từ nhiều nguồn rồi lấy top results, bạn có thể dùng TAKE với VSTACK. Giả sử bạn có dữ liệu doanh số quý 1 trong A2:B20 và quý 2 trong D2:E20.
=TAKE(SORT(VSTACK(A2:B20, D2:E20), 2, -1), 10)
VSTACK gộp hai bảng thành một mảng duy nhất theo chiều dọc. SORT sắp xếp mảng kết hợp theo cột doanh số. TAKE lấy 10 bản ghi đầu tiên. Kết quả là top 10 nhân viên từ cả hai quý.
Lưu ý quan trọng: Hai bảng cần có cùng số cột và cấu trúc giống nhau. Nếu cột không khớp, VSTACK sẽ báo lỗi. Đảm bảo tiêu đề cột và thứ tự dữ liệu nhất quán trước khi gộp.
Tạo danh sách sản phẩm bán chạy nhất
Một ứng dụng thực tế khác là theo dõi sản phẩm bán chạy. Nếu bảng dữ liệu có tên sản phẩm (cột A), số lượng bán (cột B), và doanh thu (cột C) từ A2:C100, bạn có thể tạo nhiều top lists khác nhau.
Top 5 theo số lượng bán:
=TAKE(SORT(A2:C100, 2, -1), 5, 2)
Công thức này sắp xếp theo cột 2 (số lượng), lấy 5 hàng đầu, và chỉ hiển thị 2 cột đầu tiên (tên và số lượng). Tham số columns giúp loại bỏ cột doanh thu không cần thiết.
Top 5 theo doanh thu:
=TAKE(SORT(A2:C100, 3, -1), 5)
Công thức này sắp xếp theo cột 3 (doanh thu) và lấy toàn bộ 3 cột cho top 5 sản phẩm.
Cách tiếp cận này đặc biệt hữu ích cho các bảng điều khiển thời gian thực. Thay vì tạo nhiều bảng tổng hợp, một công thức duy nhất tự động cập nhật khi dữ liệu mới được thêm vào.
Xử lý dữ liệu động với Tables
TAKE hoạt động tốt nhất khi kết hợp với Excel Tables thay vì vùng tham chiếu cố định. Chuyển đổi dữ liệu thành Table bằng cách chọn vùng dữ liệu và nhấn Ctrl + T.
Sau khi tạo Table có tên DanhSachBanHang, công thức trở thành:
=TAKE(SORT(DanhSachBanHang, 2, -1), 5)
Lợi ích lớn nhất là công thức tự động mở rộng khi thêm hàng mới vào Table. Không cần điều chỉnh vùng tham chiếu A2:B50 thành A2:B60 khi dữ liệu tăng lên. Excel tự động nhận diện phạm vi mới.
Ngoài ra, sử dụng tên Table giúp công thức dễ đọc và bảo trì hơn. So với OFFSET phức tạp trong các phiên bản Excel cũ, TAKE với Tables đơn giản hơn rất nhiều.
Kết hợp TAKE với FILTER để lọc và xếp hạng
Đôi khi bạn cần top results từ một nhóm cụ thể. Ví dụ top 3 nhân viên khu vực miền Bắc trong bảng có cột Khu Vực (cột C).
=TAKE(SORT(FILTER(A2:C50, C2:C50="Miền Bắc"), 2, -1), 3)
FILTER trích xuất chỉ các hàng có khu vực là Miền Bắc. SORT sắp xếp kết quả lọc theo cột doanh số. TAKE lấy 3 hàng đầu tiên. Công thức này tạo ra bảng xếp hạng động theo điều kiện.
Cách này thay thế hoàn toàn các bước phức tạp: lọc thủ công, sao chép sang sheet khác, sắp xếp, rồi chọn top records. Một công thức duy nhất xử lý toàn bộ quy trình.
Hạn chế và giải pháp thay thế
Một hạn chế của TAKE là chỉ lấy được các hàng hoặc cột liên tiếp. Không thể lấy hàng 1, 3, 5, 7 mà bỏ qua hàng 2, 4, 6. Nếu cần chức năng này, hãy dùng CHOOSEROWS hoặc CHOOSECOLS.
Đối với Excel 2019 hoặc các phiên bản cũ hơn không hỗ trợ TAKE, bạn có thể dùng OFFSET làm giải pháp thay thế. Tuy nhiên công thức OFFSET phức tạp hơn đáng kể: =OFFSET(A2, 0, 0, 5, 2) so với =TAKE(A2:C10, 5, 2). OFFSET cũng là hàm volatile nên có thể làm chậm workbook khi dùng nhiều.
Tự động hóa báo cáo với TAKE
Hàm TAKE giảm kích thước file và thời gian tính toán so với các phương pháp truyền thống. Thay vì duy trì nhiều bảng sao chép với VLOOKUPs phức tạp, một công thức TAKE với SORT tự động làm mọi thứ. File dashboard của tôi giảm từ 15MB xuống 4MB sau khi thay thế các công thức cũ bằng TAKE kết hợp SORT và FILTER.
Công thức cập nhật tức thì khi dữ liệu nguồn thay đổi. Không cần nhấn F9 để làm mới hoặc chạy macro. Đặc biệt hữu ích cho các báo cáo hàng ngày hoặc dashboard thời gian thực kết nối với Power Query hoặc nguồn dữ liệu bên ngoài.
